?目錄
SourceTree簡介
git merge使用教程
git rebase使用教程
一、SourceTree簡介
SourceTree 是 Windows 和Mac OS X 下免費的 Git 和 Hg 客戶端,擁有可視化界面,容易上手操作。同時它也是Mercurial和Subversion版本控制系統(tǒng)工具。支持創(chuàng)建、提交、clone、push、pull 和merge等操作。
附上兩圖
倉庫目錄:

新版的工作窗口,也是走扁平化風格

基本的操作就不多說了,說下sourcetree新手偶爾會遇到的坑,就是賬號設置。

sourcetree=>preferences=>network這里有賬戶信息,可以多賬戶。
第一次clone的時候賬號密碼如果寫過可以來這里修改,windows版本好像略坑爹,
可以直接remove賬號,重新clone一次。
二、git merge教程

上面有兩種merge方式,一種是from log,一種是fetched,筆者一般用后者,可以直接直觀和其它分支合并


合并完之后一般會有沖突,怎么處理沖突呢?
1.簡單粗暴的方法:

假如我當前分支在develop分支,現(xiàn)在merge jack分支出現(xiàn)了這個沖突,
Resolve Using 'Mine',就是當前這出現(xiàn)沖突的整個文件以develop分支這邊的為準,
也就是整個文件處理后就是和develop分支一樣。
Resolve Using 'Theirs',就是以jack分支的文件為準。
這樣做顯然有點low
2.直接處理沖突代碼

用subline打開這個沖突的文件,可以看到>>>>分割的兩塊代碼,這兩塊代碼就是沖突的地方咯,下面的就是develop分支的代碼,這里我是在jack分支合并develop分支,所以第一塊代碼就是jack分支的代碼,那幾個很low的漢字就是我打的,制造沖突。
這樣我們就可以根據(jù)我們需要來刪掉那一部分或者微調(diào),然后把三處>>>刪掉,
沖突就處理完了。
三、git rebase教程
以前遇到commit寫錯總是使用git reset --soft回退到之前的狀態(tài),再commit后push -f強推到遠程庫,能夠覆蓋掉之前的commit。
現(xiàn)在想想也是很low的做法,git rebase 可以幫你搞定這個問題。
好了,隨便提交了幾個

工作中,我們可能不小心寫錯commit,例如上面那個 “測試 git rebase”我寫錯了,我想改一改,怎么辦呢?
1.(打開terminal)
git rebase -i 233d7b3( 這個commit是在我們要修改的commit前一個)
git rebase -i 233d7b3
然后就進入下面這里:

這里就是我們熟悉的vi,按i進入insert模式,
我們是要修改,所以改成
reword 345c70f 測試 git rebase
?? ? esc : wq 保存退出

i進入insert模式,修改commit內(nèi)容,esc ?: wq 保存退出。
最后害得強push
git push --force
那么我們要如何合并幾個commit呢?
和上面類似,我們首先
git rebase -i f290515(我們要合并的commit的前一個)

pick 766f348 dsfdsf
squash 233d7b3 sdfdsf
squash 345c70f 測試 git rebase
我們可以這樣修改 ?將后面兩個改成squash,就是合并到第一個上去
如果沒有沖突就可以看到這個界面

保存退出
最后git push -f
rebase和merge有什么區(qū)別呢
我們可以看下其他人寫的
http://www.itdecent.cn/p/cca69cb695a6
#相關文章
產(chǎn)品經(jīng)理的技術修養(yǎng)-序言
1、李大仁來深創(chuàng)業(yè)-互聯(lián)網(wǎng)介紹
