我被建议在运行git pull
之前提交所有更改并合并。是否有意义 ?如果我在提交更改之前运行pull
和merge
并在合并之后提交,该怎么办?
答案 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)
如果你在提取之前做了提交,那么如果拉/合并出现问题,可以回到那一点。你不必这样做,只是好的做法。