我们是一个开发团队,使用 git 作为版本控制系统。我向本地分支添加了一些更改,并将其推送到我的本地和远程development
分支。 另一位开发人员在将他的内容合并到远程开发时,发现了我的更改。但是我的更改错误地被该开发人员删除了,他将更改推送到远程development
分支。
当我将远程更改合并到我的本地development
分支时,我丢失了添加的文件,该文件已被其他开发人员删除。
当我删除了更改时,我已经将分支重置为提交。重置后,我发现了更改,但我无法将其推送或合并到我的development
分支。我不想重置master
分支。
请帮忙,我应该怎么做才能覆盖对本地和远程开发分支的本地更改,以便再次添加丢失的文件。
git reflog
可以在这里为您提供帮助。
您的朋友应该在强制推送之前,使用reflog
在他的计算机上检索他的development
分支的状态。
在reflog
菜单中,对于您的每个状态,都会有关联的提交哈希。他应该checkout
一个新的分支,比如说development-copy
,使用development
分支的状态哈希,就像他git push -f
development
之前一样。现在,他应该看看development-copy
上的git log
,并从他想要添加到development
的所有提交中创建一个补丁,然后将补丁发送到您的计算机,您可以在其中apply
补丁。