Git分支 Merging状态解决

文章目录

  • 遇到冲突
  • 如何解决冲突
    • 你不会把事情搞砸
    • 什么是一个合并冲突
    • 解决冲突要做到哪一步

遇到冲突

git冲突在这两天有些频繁,在git pull合并代码的时候,就发生冲突,而且反复执行发现还是存在冲突,后来发现了一个状态–Merging。
解决方法

git reset --hard head

该命令是回退版本信息,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

如何解决冲突

你不会把事情搞砸

首先你应该记住,你总是可以撤销一个合并操作,并且返回到冲突发生之前的状态。也就是说,你永远有机会放弃并重新开始。

如果你已经掌握了一些关于其它的版本控制系统的使用经验,例如 Subversion ,你可能会很难过。因为在 Subversion 中处理冲突是被大家公认极为复杂而繁琐的。这也就是为什么我们要使用 Git 的原因。简单地说,它在这方面的工作原理是完全不同于 Subversion 的。Git 能够在合并过程中顾及到很多方方面面的东西,从而为你创造一个比较简单的方案来解决可能出现的冲突。

当然,冲突只会妨碍你自己的工作,它是不会涉及到整个团队的项目仓库。这是因为在 Git 中,冲突只可能发生在开发人员的本地计算机上,而不是在远程服务器上。

什么是一个合并冲突

在 Git 中,“合并(merging)” 是在形式上整合别的分支到你当前的工作分支的操作。你需要得到在另外一个上下文背景下的改动(这就也就是我们所提到过的,一个有效的分支应该是建立在一个上下文工作背景上的),并且合并它们到你的当前的工作文件中来。

作为你的版本管理系统,Git 所带来的最伟大的改善就是它让合并操作变得非常轻松简单。在大多数情况下,Git 会自己弄清楚该如何整合这些新来的变化。

当然,也存在极少数的情况,你必须自己手动地告诉 Git 该怎么做。最为常见的就是大家都改动了同一个文件。即便在这种情况下,Git 还是有可能自动地发现并解决掉这些冲突。但是,如果两个人同时更改了同一个文件的同一行代码,或者一个人改动了那些被另一个人删除了的代码,Git 就不能简单地确定到底谁的改动才是正确的。这时 Git 会把这些地方标记为一个冲突,你必须首先解决掉这些冲突,然后再继续你的工作。

解决冲突要做到哪一步

  • 解决自已遇到的冲突。
  • 分析冲突出现的原因,是自己分支上的冲突,还是存在其他分支上存在冲突。对于自己未改动过但出现冲突的内容要提高警惕。
  • 及时沟通交流,发现冲突发生的原因,并找到解决方案。
  • 与领导沟通,并执行解决方案。

感谢大神们的分享:

https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/merge-conflicts
https://blog.csdn.net/Android_Amelia/article/details/49612631
https://www.jianshu.com/p/db345b4c5344
https://www.liaoxuefeng.com/wiki/896043488029600/900004111093344

你可能感兴趣的:(工具)