git rebase/reset小计
http://www.cnblogs.com/kym/archive/2010/08/12/1797937.html
git rebase,顧名思義,就是重新定義(re)起點(base)的作用,即重新定義分支的版本庫狀態(tài)。要搞清楚這個東西,要先看看版本庫狀態(tài)切換的兩種情況:
舉個例子來說吧!假設我們的項目初期只有一個master分支,然后分支上作過兩次提交。這個時候系統(tǒng)只有一個master分支,他的分支歷史如下:
master0(初始化后的版本)
 ||
 v
 master1(第一次提交后的版本)
 ||
 v
 master2(第二次提交后的版本)
 這個時候,我們可以通過git reset將master分支(工作目錄、工作緩存或者是版本庫)切換到master1或者master0版本,這就是前面所說的第一種情況。
 假設我們這里把master分支通過git reset回溯到了master1狀態(tài)。那么這個時候系統(tǒng)仍然只有一個master分支,分支的歷史如下:
master0(初始化后的版本)
 ||
 v
 master1(第一次提交后的版本)
然后,我們在這里以master1為起點,創(chuàng)建了另一個分支test。那么對于test分支來說,他的第一個版本test0就和master1是同一個版本,此時項目的分支歷史如下:
master0(初始化后的版本)
 ||
 v
 master1(第一次提交后的版本)===test0(test分支,初始化自master分支master1狀態(tài))
這個時候,我們分別對master分支、test分支作兩次提交,此時版本庫應該成了這個樣子:
master0(初始化后的版本)
 ||
 v
 master1===test0==>test1===>test2
 ||
 v
 master2===>master3
首先,我們切換到master分支,然后運行下面的命令,即可實現(xiàn)我們的要求:
| 1 | git rebase test | 
這個時候,git做了些什么呢?
此外,rebase還能夠讓你修訂以前提交,這個功能日后再說。
總結
以上是生活随笔為你收集整理的git rebase/reset小计的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Spring与Struts2整合的两种解
- 下一篇: Mysql日期和时间函数大全
