1

我刚刚帮助我团队中的一位开发人员修复了一个 git 提交,该提交以某种方式在他的本地 repo 中被修改了。你可以从下面的 Git Extensions 截图中看到,11 小时前他做了一个提交,他认为这包括了他所有的更改。他今天早上发现,他的文件系统上的工作副本中缺少一堆文件。在 repo 中查看,这些在提交“master 上的未跟踪文件”中。在玩了一些分支和合并之后,我把它们放回了主分支,现在一切似乎都很好。

关于他在创建这个场景的过程中发生了什么的任何想法?这些文件不在 .gitignore 中——您在下面看到的 .gitignore 签入是试图让 silverstripe-cache 文件夹内容被忽略。

我们是这里的新手,非常感谢您的帮助。

Git 回购历史

4

2 回答 2

1

“master 上未跟踪的文件”不在任何提交中,即它们仅存在于您的文件系统中,并且您从未告诉 git 跟踪它们。为了解决这个问题,对所有要添加到不完整提交的人执行“git add”,然后执行“git commit --amend”(假设要修改的提交仍然是您当前签出的分支点) .

于 2012-04-18T17:11:37.010 回答
0

从分支的外观(提交消息左侧的点和线)看来,提交“master 上的未跟踪文件”似乎不是在与其他提交相同的分支上进行的。

您必须进一步回顾历史,以检查“主”分支的历史中是否确实存在分叉。

盲目猜测这是如何发生的:

  • 第一次提交是从另一台机器完成的,推送到中央仓库,但你的同事忘记拉(或认为他有,但有一个奇怪的错误消息),
  • git checkout <branch>并且git checkout -b <branch>具有完全不同的含义,并且可能会使新用户感到困惑-我花了一两个惊喜才发现;)。
于 2012-04-19T11:37:45.333 回答