Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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_Pull - Fatal编程技术网

为什么git不';不允许在具有未提交更改的文件中进行拉式更改?

为什么git不';不允许在具有未提交更改的文件中进行拉式更改?,git,pull,Git,Pull,我曾多次读到“默认情况下,git pull将拒绝执行涉及任何未提交修改的文件的更新”。我的问题是 工作目录将被工作本地分支的内容填充,对吗 Git不允许在未提交本地修改的文件中提取更改,原因1或2: 这会有风险,而且您可能会丢失未提交的更改 当您在正在处理的本地分支中进行提取和合并时,本地分支和工作目录之间不会发生合并,因此本地分支中更新的文件将覆盖工作目录中的文件 谢谢,原因1是正确的。Git在尝试之前无法知道它是否能够成功合并您拉入的更改和未提交的更改。在正常的合并冲突情况下,这不是问

我曾多次读到“默认情况下,git pull将拒绝执行涉及任何未提交修改的文件的更新”。我的问题是

  • 工作目录将被工作本地分支的内容填充,对吗

  • Git不允许在未提交本地修改的文件中提取更改,原因1或2:

  • 这会有风险,而且您可能会丢失未提交的更改
  • 当您在正在处理的本地分支中进行提取和合并时,本地分支和工作目录之间不会发生合并,因此本地分支中更新的文件将覆盖工作目录中的文件

谢谢,原因1是正确的。Git在尝试之前无法知道它是否能够成功合并您拉入的更改和未提交的更改。在正常的合并冲突情况下,这不是问题,因为所有版本都安全地存储在本地存储库中,因此,如果出现问题,很容易修复或恢复整个操作


当存在未提交的更改时,Git不会将这些更改保存在某个地方。因此,当您引入一些其他更改时,Git只会正确合并那些没有本地更改的文件。

原因2为false?我是说,合并是在远程跟踪分支和本地分支之间完成的,但我认为本地存储库中的文件和工作目录之间不可能发生合并,因为我认为它会覆盖工作目录中的文件,或者只是在工作目录中添加对文件的更改,而不考虑合并的实际情况发送的消息是:“您对以下文件的本地更改将被合并覆盖”