Git 冲突解决 (合并二:逻辑冲突)

两个用户修改了同一文件的同一区域,则在合并的时候回遇到冲突而导致合并过程中断。这是因为Git不能越俎代庖地替用户做出决定,而是把决定权交给用户。下面是合并冲突实验:

用户一在MySQLPDO.class.php 文件第8行写入一行代码;

commit -m "conflict test";

git push

用户二在MySQLPDO.class.php 文件第8行写入一行代码;

commit -m "conflict test";

git push

报错:

git pull  (git pull = git fetch + git merge) 报错:

git status 查看文件处于未合并(冲突)状态,因为这个文件在两个不同的提交中做了修改。

版本库暂存区则会记录冲突文件的多个不同版本,可以使用git ls-files命令查看:(在下面的输出中,每一行分为四个字段,前两个分别是文件的属性和SHA1哈希值。第三个字段是暂存区编号,当合并冲突发生后,会用到0以上的暂存区编号。这三个副本实际上是提供冲突解决工具,用于实现三向文件合并的。

cat chapter_2/MySQLPDO.class.php (特殊标识<<<<<<<和=======之间的是当前分支所更改的内容。特殊标识>>>>>>>和=======之间的内容是所合并的版本更改的内容也就是本实验中的user1更改并提交的内容)

冲突解决:( 解决办法就是 user1 和 user2 商议将冲突部分代码更改为合适的内容,如果完全采取user2的代码,则不用更改,直接 add , commit , 然后 push 就 OK ) ;

猜你喜欢

转载自blog.csdn.net/geeksoarsky/article/details/89063355