Git:合并前提交?

时间:2014-01-04 18:43:14

标签: git git-merge git-commit

我被建议在运行git pull之前提交所有更改并合并。是否有意义 ?如果我在提交更改之前运行pullmerge 并在合并之后提交,该怎么办?

4 个答案:

答案 0 :(得分:12)

提取之前提交总是可取的 - 你应该考虑收藏你的工作。

更好的方法是考虑您的临时区域。理想情况下,在尝试合并远程更改之前,您希望它是干净的(请记住,git pull = git fetch + git merge)。

git commit一种实现此目的的方式,但它会改变您的历史记录 - 如果您担心将您的回购协议保持在持续工作状态,则会污染它。

另一方面,

git stash是为这样的用例而构建的。

  

如果要记录工作目录和索引的当前状态,但想要返回干净的工作目录,请使用git stash。

来源:http://git-scm.com/docs/git-stash

您的工作流程看起来像这样:

$ git stash
$ git pull origin master
$ git stash pop stash@{0}

这样可以在没有问题的情况下执行拉动,在应用您的存储时会发出警告,但是会发生冲突。

答案 1 :(得分:3)

未提交的更改总是很糟糕:

  • 您的更改是好的,然后提交
  • 或者他们很糟糕,然后丢弃它们。

git完全不知道未提交的更改。因此,如果出现任何问题,git无法以任何方式帮助您,如果出现问题,您可能会失去工作。

如果您只是确保在进行任何git操作(例如拉动情况)时没有任何未提交的更改,则可以避免许多问题。

答案 2 :(得分:1)

如果您尝试合并已修改的文件的更改,git将拒绝执行此操作。这就是为什么先提交是一个好主意。如果你不按顺序执行,它将合并正常(如果你更改的文件没有涉及任何其他正在合并的提交),或者什么都不会发生,git会告诉你你的合并无法完成。

答案 3 :(得分:1)

如果你在提取之前做了提交,那么如果拉/合并出现问题,可以回到那一点。你不必这样做,只是好的做法。