svn冲突解决方法

产生冲突后的这几个文件,:

test1.txt.mine---这个文件是A用户在版本1中做了修改要提交的文件。它的内容是:版本1内容+A用户的修改

test1.txt.r1----这个文件是A用户最初的版本1的test1.txt。它的内容是:版本1内容

test1.txt.r2----这个文件时svn服务器中test1.txt的最新版本,这里既是B用户提交后的版本2。它的内容是:版本1内容+B用户的修改

产生冲突代码如下:

<<<<<<< .mine

333333338888888888888=======

3333cccccccccc3333>>>>>>> .r2

<<<<<<< .mine …… =======

    ……之间的代码是我未产生冲突之前修改的代码,

 ======= ………>>>>>>> .r2 这中间……的代码是别人与我冲突代码的部分,

从上面的代码可以看到 cccccccccc是我同事新增的 ,8888888888888是我后增加的。

1.使用revert(回滚)操作(先备份自己修改过的文件),该操作表示用户放弃自己的更新代码,然后直接提交,这个时候你的代码就会使服务器上最新的代码,即B用户提交的新代码,你的代码不会被提交,如下所示

点击ok按钮后 可以看到其他三个文件都自动删掉了,1.txt代码变成如下代码:

3333cccccccccc3333

也就是B用户提交的代码,我自己更新的代码需要自己动手复制进去(从前面备份的文件中复制)即可提交commit。

  1. 假如我现在3.txt产生冲突代码如下:

    <<<<<<< .mine

    333333338888888888888=======

    3333cccccccccc3333>>>>>>> .r16

    通过第一点我们知道,333333338888888888888这个内容是我修改后,未产生冲突之前的内容,3333cccccccccc3333这个代码是A用户提交的代码,从上面得知 A用户新增内容是ccccccc,而我新增的内容是8888888。

    那么第二种解决方法如下:(没看懂,没用过。。。。。。)

                    选择文件->右键Editconficts:这种方法需要冲突双方经过协商之后将代码更改统一之后再提交。不仅解决了冲突而且还保证了代码是正确的,因为只有一方的代码被提交.

如上图所示,红色的部分是冲突代码:theirs表示当前服务器端最新的代码,Mine表示自己修改后的代码,Merged表示合并后的代码。点击红色后右键选择:use this text block就可以将该部分代码作为合并后的代码

接下来再说说由于冲突导致重要代码被覆盖的情况。冲突发生时如果采取的措施不对可能会导致部分代码丢失,如果想要还原之前的代码也很容易。

选择文件->右键选择show log在这里面你可以看见之前提交的所有版本,找到你想要恢复的版本右键选择revert to this version 就可以恢复了.

原文链接:https://www.cnblogs.com/0zcl/p/7309766.html

原文链接:https://blog.csdn.net/liujianwd/article/details/77101611

猜你喜欢

转载自blog.csdn.net/qq_38666502/article/details/81261744