本文共 1727 字,大约阅读时间需要 5 分钟。
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的作用: - 获取最新的数据 - 发现冲突,并和其他团队成员沟通可能存在哪些问题,经协商后解决冲突假定我们先不做git pull,而是先做1.4的git merge branch1,则有很大几率报出以下错误:
fatal: no commit specified and merge.defaulttoupstream not set.
解决办法就是严格遵循先1.3 后1.4的顺序。
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转载地址:http://uksoi.baihongyu.com/