git 是否在合并中更改未修改和未提交的文件?

Does git change unmodified and uncommited files in merge?

有没有可能在取git pull的时候,一个没有在本地修改过,也没有在本地提交过的文件,修改自动合并,然后提交修改,可能会破坏一个文件,然后推送是我做的吗?

如果远程上有较新的版本,则文件当然会在本地更改。

但是除非我进行了本地修改,否则该文件不应该与拉取后远程上的文件相同吗?没有任何分支机构参与这些交易。

我相信我只是看到了这件事,但不明白这怎么可能。通过合并导致相对于远程 (origin/master) 修改未修改和未提交的文件的条件是什么?

Is it possible that when taking git pull, a file that has not been modified locally and has not been committed locally, changes in automatic merge

Git pull 是 2 个命令的别名:git fetch && git merge 因此当您从服务器拉取代码时可能会合并。 但是你提到你没有修改代码,所以应该不会有任何冲突,因为不需要对这个文件应用任何本地更改。

如果文件在合并过程中被更改,您当然可以提交、推送和破坏您的构建,但问题仍然存在 - 谁修改了文件并更改了它。


如何跟踪文件更改

git bisect

检查文件何时更改

git blame

检查谁更改了给定行(给定行的最后更新)

git log

git log -p <path/to/file/file> 将显示给定文件的所有日志条目。


git diff

请注意,git-diff 可能会显示在合并提交中更改的文件,即使该文件未被合并的本地提交在本地更改。您应该查看合并提交和与本地提交合并的远程提交之间的差异,以查看远程文件是否在这些事务中实际更改。