我需要应用补丁但是:
git pull
,然后执行修补程序的脚本。我必须应用补丁,然后将我的修补程序应用于该补丁。git pull
(对以下文件的本地更改将被合并覆盖)通常我会:
git -fetch
git reset --hard
问题是git -fetch
无效:
git log | head
和
git log origin | head
具有相同的输出,尽管原始存储库是4次提交(当我执行git status
时git知道)。
我正在尝试做什么(TL; DR):
我想从远程存储库中获取我的最后一次提交,以便我可以在之后进行硬重置。
答案 0 :(得分:1)
我建议提供更多数据,并显示清晰的命令和错误消息。对于你的问题,人们只能给你一个概念性答案,这对你来说可能是也可能不够。
什么应该有效:
git reset
返回代码的合并前状态。git pull
重新合并。git add .
,git commit -m blah
,git push
命令。一定会没问题,虽然你会有一个已经应用了合并的中间状态,但代码并没有工作。在我看来,这不是问题 - 至少,不是在开发分支上。如果你需要在一个统一的提交中做所有事情,你可以使用cherry-pick和rebase(首先我喜欢更好,但其他人喜欢rebase)。
如果你确实做了改变,它可能会使事情变得更有问题,虽然这是意见问题(我非常反对rebase,但其他人有不同意见)。
答案 1 :(得分:1)
我的错误其实很简单。显示日志的正确命令是:
git log origin/branchname
然后我确认git fetch
工作正常。
然后我做了:
git reset origin/branchname --hard
它工作得更好。
一个简单的git reset
只会将代码设置为最后一次本地提交,当我想要最后一个远程提交时。