Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么git不能将无冲突的更改自动合并到本地修改的文件中?_Git_Merge - Fatal编程技术网

为什么git不能将无冲突的更改自动合并到本地修改的文件中?

为什么git不能将无冲突的更改自动合并到本地修改的文件中?,git,merge,Git,Merge,定期执行git pull,我注意到命令有时会以如下错误结束 Your local changes to the following files would be overwritten by merge: app/Ribbon.xaml Please, commit your changes or stash them before you can merge 在这个特殊的例子中,我在本地修改了这个文件中的一行,并且它在存储库中的新版本也有一行发生了更改-没有冲突,没有重命名,没有行结

定期执行git pull,我注意到命令有时会以如下错误结束

Your local changes to the following files would be overwritten by merge:  
app/Ribbon.xaml  
Please, commit your changes or stash them before you can merge
在这个特殊的例子中,我在本地修改了这个文件中的一行,并且它在存储库中的新版本也有一行发生了更改-没有冲突,没有重命名,没有行结尾的更改,没有子模块。因此,在这种情况下,我希望git能够自动合并更改,而无需git提交或git隐藏。。。 我知道git能够自动合并更改—它通常会这样做,但在这种情况下不会

问题是:什么可能阻止git将无冲突的更改自动合并到本地修改的文件中

我想,我的问题中可能遗漏了一些数据。如果是,请告诉我还需要检查什么。
[27.JUN.2012 14:15]根据答案中的提示,git的正常政策是拒绝将任何更改合并到本地修改的文件中。考虑到这一点,我将把问题重新表述为如何使git能够自动将更改合并到本地修改的文件中?

我认为这是git的自然行为。因为您的文件没有暂存或提交,git并不真正知道您想对该文件做什么。git最好拒绝拉取,而不是猜测您对文件的意图。我通常在拉取之前将未提交和未老化的更改隐藏起来,然后在拉取之后应用隐藏。

Git处理其存储库中的文件,位于项目根目录下的.Git/目录下

Git在执行拉取和合并时使用此存储库进行比较

在您的情况下,Git足够聪明,可以注意到您已经做了更改,但没有添加或提交这些更改,因此Git将无法处理这些更改

您会得到消息,即使更改在不同的代码区域中,因为您还没有将文件添加到git,git也不知道是否会有冲突。。。直到git“看到”该文件。如果您使用git添加文件,然后git提交文件,这样文件就在存储库中,那么git就可以对其进行“处理”,如果更改位于不同的区域,那么它就可以进行您希望看到的自动合并

所以它给出了这个信息

你的选择是:

添加并提交本地文件,然后git可以进行合并

隐藏本地更改以将其保存在一边,然后提取新的服务器文件

使用当前更改创建分支-使用签出,然后切换回主分支并使用重置


好吧,根据我过去基于SVN的经验,在这种情况下,我只给git留下一个选项:将更改合并到一个修改过的未提交文件中,并将其保留在那里。GIT可能会考虑哪些其他选择?放弃更改?顺便说一句,当本地修改的文件在远程repo中没有更新版本时,git并不太在意。。。虽然一般来说你是对的:git只能对提交的文件合并更改,或者开发人员必须在隐藏文件方面做手脚。好吧,你当然是对的,尽管我希望git在处理本地修改的文件时更聪明一些:更多地使用git,你也会在git中发现一些不错的优点: