Discuss / Git / BUG分支-我的理解

BUG分支-我的理解

Topic source

当前情况:此时有两个分支,master和dev,dev编辑到一半,并未成功,所以不能提交。但此时master有一个bug需要马上去修复,但因为dev无法提交,所以用stash保存现场。转去master去把bug修复完后。转到dev中,用指令dit stash pop恢复现场。然后指令git merge master,将master中修复的bug同步到dev的分支中。 因为git关注的是文件的变化,而不是文件的本身替换,所以当master的bug不和dev中编辑的内容冲突的时候,git merge master并不会提示冲突提醒。如果恰巧master中的bug和dev中修改的内容冲突了,即会有提醒(但并不是冲突提醒,因为当前只是在dev分支中修改了内容,但并没有add和commit)。如下 Chensons-MacBook-Pro:Git Chenson$ git merge master Updating b7ccea4..beac9aa error: Your local changes to the following files would be overwritten by merge: test1.txt Please, commit your changes or stash them before you can merge. Aborting

所以,此时我的solution是将在dev分支中修改的内容add和commit后,将master中修复的bug merge到dev中,此时会有冲突提醒。 Chensons-MacBook-Pro:Git Chenson$ git merge master Auto-merging test1.txt CONFLICT (content): Merge conflict in test1.txt Automatic merge failed; fix conflicts and then commit the result. Chensons-MacBook-Pro:Git Chenson$

马小问题

#2 Created at ... [Delete] [Delete and Lock User]

修复bug后,checkout到dev开发分支,应该先merge master 然后再 git stash pop 恢复dev开发现场。因为,如果向你说的先恢复现场的话,此时dev 还是没提交状态,是不可以merge master的(合并时会有提示),这时候就要先提交dev,再merge master ,这样的话和最初就直接提交dev没什么区别了。


  • 1

Reply