背景:
使用代碼管理工具是軟件開發(fā)人員的必備技能鼠次。進(jìn)入一家公司央串,工作流程一般都是: 使用git工具clone公司代碼到本地---》commit 自己代碼到git本地倉(cāng)庫(kù)--》push提交到git倉(cāng)庫(kù)的代碼到公司代碼分支---》pull 從公司代碼分支的新增代碼到本地倉(cāng)庫(kù); 只要遵循提交代碼前先pull代碼,一般就不會(huì)出問題唬涧;但是一些新手就很怕代碼沖突問題儡毕,正如墨菲定律說的一樣乙帮,怕什么來什么,往往一提交就代碼沖突俏拱,搞的自己戰(zhàn)戰(zhàn)兢兢暑塑。同樣的問題也困擾了我一段時(shí)間,今天剛好有時(shí)間锅必,索性徹底把git問題搞明白事格,順便記錄一下,希望也能幫到其他朋友.
準(zhǔn)備工作:
安裝git及Tortoise Git搞隐;
Tortoise Git 常用操作:
1. 從遠(yuǎn)程倉(cāng)庫(kù)拉去代碼到本地:
? ? ? ? ? ? 1.1 新建文件夾GitDemo存放從遠(yuǎn)程倉(cāng)庫(kù)拉取的代碼驹愚;
? ? ? ? ? ? 1.2 復(fù)制遠(yuǎn)程倉(cāng)庫(kù)代碼地址:
?????????????1.3 鼠標(biāo)右擊 “Git Clone...";
?????????????1.4 拉取代碼到本地:
????????????1.5? 點(diǎn)擊 ”O(jiān)K“,出現(xiàn)如下日志即是拉取代碼成功劣纲,如果需要用戶名和密碼驗(yàn)證逢捺,驗(yàn)證即可.
2. 分支相關(guān)操作:?
? ? ? ? 2.1 創(chuàng)建分支:鼠標(biāo)右擊,選擇“Create Branch..."
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?填寫分支名稱,點(diǎn)擊“OK”即可:創(chuàng)建名為demo-dev的分支
? ? ? ? ? ? ? ? ? 2.2??切換分支:鼠標(biāo)右擊癞季,選擇“Switch/Checkout..."
????????????????????????????????選擇要切換的分支劫瞳,點(diǎn)擊“OK”:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?此時(shí)在本地代碼倉(cāng)庫(kù),鼠標(biāo)右擊就會(huì)看到已經(jīng)切換到demo-dev分支:
? ? ? ? ? ? ? ? ? ? 2.3 刪除分支:鼠標(biāo)右擊绷柒,選擇“Switch/Checkout..."
? ? ? ? ? ? ? ? ? ????????? 選中要?jiǎng)h除的分支志于,右擊,刪除即可:
? ? ? ? ? ? ? ? ? ? 2.4 分支代碼提交:在本地代碼倉(cāng)庫(kù)辉巡,鼠標(biāo)右擊
? ? ? ? ? ? ? ? ? ? ? ? 將確認(rèn)要提交的代碼選中恨憎,并添加提交注釋,即可提交:
2.4 分支代碼合并及沖突處理:
????????a.修改demo-dev分支文件并提交:
? ? ? b. 創(chuàng)建并切換到demo-test分支, 對(duì)相同的文件進(jìn)行修改,并提交:
? ? c.? ?分支合并及沖突處理: 合并demo-dev分支到demo-test分支
? ? ? ? ? ? 1)先將代碼分支切換到合并后的主目標(biāo)分支(demo-test)
? ? ? ? ????2) 在本地代碼倉(cāng)庫(kù)钥组,鼠標(biāo)右擊输硝,光標(biāo)移到“TortoiseGit",點(diǎn)擊"Merge..."
? ? ? ?3) 選擇將要被合并的分支(demo-dev),點(diǎn)擊“OK”:
? ? ? ? 4)如果兩個(gè)分支都修改了同一個(gè)文件程梦,則會(huì)產(chǎn)生代碼沖突,? 因?yàn)間it不知道要保留哪個(gè)分支的修改点把,這個(gè)就需要用戶手動(dòng)處理沖突。
????????????????????????點(diǎn)擊“Resolve”跳轉(zhuǎn):
? ? 5) 解決沖突:沖突文件已被全部列出
? ? ? ? ? ? 雙擊沖突文件屿附,跳轉(zhuǎn)到?jīng)_突處理頁(yè)面: 左上側(cè)為被合并分支文件, 右上側(cè)為將要合并到的分支文件郎逃,下部為合并后的最終文件的內(nèi)容.
? ? ? ? ? ? 解決沖突時(shí),可以點(diǎn)擊界面頂部菜單欄的"Next difference" 或"Next conflict"讓光標(biāo)移動(dòng)到下一沖突處挺份,方便處理褒翰,知道這兩處變?yōu)榛疑豢牲c(diǎn)擊時(shí),即沖突被處理完;
? ? ? ? 沖突處理完后匀泊,將文件修改為已處理:
? ? ? ? 在沖突窗口文件列表中优训,文件已消失:
? ? ? ? 6) 沖突完全處理后,再提交一次代碼即可.