首先,在开发服务器上,您需要从git服务器获取提交列表,如下所示:
git fetch origin master (or whatever branch you need)
那么有几个选择来实现你想要的:
樱桃选择第一个提交 – 这只是简单地从另一个分支/ repo中“选择”所提交的提交,并将其应用到您当前的本地分支.它可以是非常有用的,但应谨慎使用(见下文).
git cherry-pick
在这种特殊情况下,你可以做到
git cherry-pick FETCH_HEAD^ (gets commit before the HEAD of what's been fetched)
或者,拉一切,然后做一个硬复位到你想要的提交(在这种情况下,就是刚刚在HEAD之前).硬复位有效地将您的本地分支回退到所选择的提交中,将所有文件的状态更改为当时的状态(因此在这种情况下,文件B将被删除或返回到之前的任何一个提交,取决于它以前是否存在).
git pull
git reset --hard HEAD^ (or git reset --hard )
我更喜欢第二个选择,因为樱桃采摘可以有一些敲击效果,如果你不小心.我相信它会为提交创建一个新的哈希,所以樱桃挑选的提交和原始提交不一样.我恐怕现在没有时间阅读这个,并确切地确定了什么是陷阱,但如果您决定使用它,我强烈建议您自己调查.
编辑 – 另一个解决方案(考虑到这是一个实时服务器,并且文件B在任何时候都不能在服务器上显示)是执行以下操作:
git fetch origin master
git checkout FETCH_HEAD^
这将从repo中获取所有提交的内容,然后在您取得的内容之前,将您的本地回购清单提交给HEAD.这里唯一的不足之处在于,您将处于“分离头”的状态,必须在本地创建一个新的分支,但这不是一个大问题.