git - 为什么 git 会暂存我 checkin 的文件,这些文件是在 merge 中拾取的,但我没有触及?

标签 git branching-and-merging

我第一次体验将别人的更改与 Git merge (而不是我自己以微不足道的方式克隆/推送。)我使用了 git pull ,冲突解决的基本过程是很简单,那一点似乎工作得很好。

不过,我对所看到的有点困惑。我确信这是一个非常简单的问题。但是为什么在我从主服务器中提取并 merge 某人的更改后,它显示这些文件在我的分支中“暂存”......即使我根本没有触及这些文件?

例如:另一个人在项目中添加了一个全新的PNG。当我执行 git status 操作时,该 PNG 显示为“已添加”。我没有执行 git add , merge 会自动将其放在那里。一切是否真的正常工作,并且这不会看起来像是来自我的提交?当我提交和推送时,会出现某种 diff 魔法吗?

最佳答案

请记住, pull 只是获取 + merge 。

您需要提交 merge 。这会导致所谓的“merge 提交”。 merge 提交将以您的最新修订版和您刚刚提取的修订版作为父级。这些文件显示为已暂存,因为它们将包含在 merge 提交中。

尝试运行git commit,然后查看生成的历史记录,例如: gitk

您可以阅读有关 merge 的更多信息,例如 Git Book .

关于git - 为什么 git 会暂存我 checkin 的文件,这些文件是在 merge 中拾取的,但我没有触及?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11925278/

相关文章:

git - 在 git merge 时总是忽略某个提交

git - Dockerhub 自动构建多个私有(private)仓库

git - 用户是否可以使用 API 通过在 github 上的提交找到我的电子邮件/姓名?

Git merge 比较 from 到 含义

git - 有没有更好的方法来完成组合重置、 checkout 、 cherry-pick 、 checkout 、 rebase ?

linux - 如何在 GIT 中处理这个 merge 问题

svn - 使用 GIT 修订版进行版本控制

php - 将 .htaccess 路由到 GitHub

Git rebase local vs git pull --rebase origin

git - 修补程序后 merge Git Flow 功能分支?