如何合并在GIT中修改的文件

时间:2015-03-26 12:41:53

标签: git merge

我是Git版本控制工具的新手。以前我在使用SVN。

如果我们有一个文件a.php,它对第50行号有一些修改,并且在另一个分支中对于已提交的同一文件的第500行号有变化。我们如何在不隐藏更改或使用git checkout --patch的情况下合并两个分支?

在SVN中,我们只是执行一个命令&s; svn update a.php'。而在这里,我们将不得不执行三个命令。 git stash,git merge branchname,git stash apply。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您当前在一个分支上进行了对第50行进行更改的提交,并且您有一个并行分支,其中包含对第500行进行更改的提交,并且您希望合并这两个分支,则运行{{1 }}。这有效地将并行分支合并到当前分支中。

由于2次提交中的更改位于文件的单独行中,因此合并将由Git自动完成,没有任何冲突。

答案 1 :(得分:1)

在Git中,您总是在合并之前提交。我们的想法是在合并时永远不会在工作区中有任何修改过的文件。这是SVN的主要功能之一:在Subversion中,您未提交的更改将与其他人合并。结果有时是不可预测的。最可预测的事情是,解决svn update留下的混乱总是需要做很多工作。

在Git中,分支非常非常便宜。它实际上很便宜,你在创建它时几乎没有注意到。

所以你总是承诺一切。然后你说"我想在那里合并那个提交" (通常通过向Git提供包含提交的分支的名称)。

出了什么问题?没问题,Git可以毫无疑问地恢复以前的状态(与Subversion不同),因为之前的状态已经提交到存储库。

现在有些人认为线性历史非常有价值,以至于他们觉得必须牺牲这个特征。这通常不是真的或导致它解决的更多问题。当你从Git开始时,这样做特别危险。 rebase是一项复杂且有时很危险的操作,不适合初学者。

这就是我建议从一个简单的工作流程开始的原因:

  • 承诺你的工作。
  • 拉(将自动合并)
  • 如果出现问题:撤消(见下文)
  • 运行测试
  • 如果一切顺利,请按

相关:

相关问题