Git 在做拉之前先把所有的事情都做了,为什么?

Git 在做拉之前先把所有的事情都做了,为什么?,git,git-pull,git-commit,Git,Git Pull,Git Commit,当我在一家分公司工作时,我会有一些我正在更改的文件。我的一位同事告诉我,他推动了一项变革,我应该采取这项变革来解决眼前的问题。如果我不提交我的更改,git不会让我拉。即使我修改的所有文件都没有更新 我想知道为什么会出现这种情况,如果可能的话,有没有办法避免这种情况?git pull本质上是先获取,然后合并。合并通常要求工作目录处于干净状态;他们这样做是为了你的安全: 警告:不鼓励在未提交更改的情况下运行git merge:虽然可能,但它会使您处于一种在发生冲突时很难退出的状态。() 以及: 如果

当我在一家分公司工作时,我会有一些我正在更改的文件。我的一位同事告诉我,他推动了一项变革,我应该采取这项变革来解决眼前的问题。如果我不提交我的更改,git不会让我拉。即使我修改的所有文件都没有更新


我想知道为什么会出现这种情况,如果可能的话,有没有办法避免这种情况?

git pull
本质上是先获取,然后合并。合并通常要求工作目录处于干净状态;他们这样做是为了你的安全:

警告:不鼓励在未提交更改的情况下运行git merge:虽然可能,但它会使您处于一种在发生冲突时很难退出的状态。()

以及:

如果任何远程更改与本地未提交的更改重叠,则合并将自动取消,工作树将保持不变。通常,最好在使用git stash提取或隐藏工作顺序的任何局部更改之前获取它们。()


我相信纯
git合并
中的签入实际上比
git拉取
中的签入更为宽容,因此您可能希望先尝试获取,然后手动合并。但是最好先把东西藏起来。

你能再添加一些信息吗,例如,你是否配置了分支在拉入时被重设基础或合并?你可以做
git-stash;git-pull;git stash pop
我还没有配置任何东西。只是一个简单的分支和结帐。我知道我可以藏起来。我想知道是否有更有效的方法,你必须隐藏或提交。你不能用脏的工作目录拉。我会投票支持JoshRagem的评论作为答案。这是为什么呢,还是“这就是它的写作方式”?