git 更新和衝突解決簡單流程
git 更新和衝突解決簡單流程如下:
流程如下:
1.0) 建立分支branch1並切換過去
git checkout -b branch1
git branch #檢視是否順利切換過去
1.1)在branch1下修改檔案後新增並遞交到快取區
遞交前可使用git status檢視哪些檔案作了更新。
以上命令打印出的提示資訊:
# On branch branch1
# Changes not staged for commit:
# (use "git add <file> ..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: demo_top.v
以上提示資訊說明了:
a)當前所在分支為branch1
b) 提示demo_top.v 被修改了。可以使用git add命令提交修改。或使用"git checkout --
demo_top.v"命令放棄修改,即恢復回修改前的內容。
確定修改後遞交更新:
git add 檔名
git commit 檔名 -m “註釋說明”
1.2)切換回master
git checkout master
git branch
1.3) 從git更新,其他團隊成員可能對同一個檔案的相同行作了更新,從而可能在以下1.4步產生衝突
git pull
使用git pull的作用:
- 獲取最新的資料
- 發現衝突,並和其他團隊成員溝通可能存在哪些問題,經協商後解決衝突
1.4) git merge branch1 或git merge --no-ff branch1
提示資訊:
Auto-merging design/rtl/demo_top.v
CONFLICT (content): Merge conflict in design/rtl/demo_top.v
檢視檔案demo_top.v, 發現標註了衝突行。
建議使用git merge --no-ff branch1 #即保留分支痕跡,no-ff表示no fast forward,即在刪
除分支後,仍保留修改資訊。所謂的fast forward,即直接修改Master的HEAD指標,未修改整合master和branch1分支,故速度很快,但缺點是刪除branch1時無法保留branch1的修改資訊。
1.5) 僅在master分支下改掉檔案中的衝突,並重新遞交到master分支的快取區。
在master 分支,修改demo_top.v, 新增並遞交到快取區
git add demo_top.v
git commit demo_top.v -m "master conflict correction"
提示資訊:
fatal: cannot do a partial commit during a merge
解決方法:
git commit demo_top.v -i -m "master conflict correction" #即獨立遞交demo_top.v
或
git commit -a -m "master conflict correction"
建議挨個確認衝突,獨立遞交每一個修改
不需要在branch1下修改衝突並遞交。原因為:在master下已通過git merge合併了branch1下的修改,而且合併後,可刪除branch1。
1.6)push到遠端,保證其他團隊成員可獲得最新的修改。
git push origin master #若第一次push,使用git push -u origin master