我刚刚帮助我的团队中的开发人员修复了一个git提交,该提交以某种方式在他的本地仓库中被提取。您可以从下面的Git Extensions截图中看到,11个小时前他做了一个提交,他认为包含了他所有的更改。他今天早上发现虽然他的文件系统上的工作副本中遗漏了一堆文件。在回购中看,这些是在提交“主要的未跟踪文件”。经过一些分支和合并之后,我把它们带回了主分支,现在看起来很好。
关于他在提交创建此场景期间发生的事情的任何想法?这些文件不在.gitignore中 - 您在下面看到的.gitignore签名是尝试忽略silverstripe-cache文件夹内容。
我们很高兴来到这里,所以感谢你的帮助。
答案 0 :(得分:2)
“master上未跟踪的文件”不在任何提交中,即它们只存在于您的文件系统中,并且您从未告诉git跟踪它们。为了修复那些你想要添加到不完整提交的那些“git add”,然后执行“git commit --amend”(假设提交被修改仍然是你当前检出的分支指向的那个)
答案 1 :(得分:0)
从分支的外观(提交消息的左边的点和行),看起来提交“master上未跟踪的文件”不是在与其他提交相同的分支上进行的。
您需要在历史记录中进一步查看是否确实在“主”分支的历史记录中存在分叉。
盲目猜测这是如何发生的:
git checkout <branch>
和git checkout -b <branch>
具有完全不同的含义,它可能会让新用户感到困惑 - 我花了一两个惊喜才发现;)。