GIT如何在没有提交的情况下重置
假设我用下面的命令创建一个空的GIT仓库:
# git init
然后我开始添加远程存储库:
# git remote add remote1 ........
# git remote add remote2 ........
# git remote add remote3 ........
并提取:
# git fetch --all
最后,我将我需要的所有远程分支合并到本地回购:
# git merge remote1/branchX
# git merge remote2/branchY
# git merge remote3/branchZ
现在,假设我必须在所有合并之前重置我的本地回购; 自然的解决方案似乎是创建一个新的空存储库。 但问题是:取回我的远程存储库需要很长时间(小时),所以我想避免再次反复。
我不能做一个“混帐重置”,因为我没有提交所有合并之前的提交。
一个体面的方式来欺骗这是做一个git init && git commit --allow-empty -m 'Initial commit.'
当你建立仓库时,至少可以减轻不存在HEAD
的症状。
但是由于您已经提取了所有的遥控器,因此如果这更符合您的需求,则无需为了创建新的空/不相关分支而将版本库删除:
git symbolic-ref HEAD refs/heads/new-branch
然后,当你提交/合并HEAD
任何内容时,git会为你填写新的分支。 一旦你有另一个现有的分支,你可以硬重置主人或做任何你想要绕过他们的其他技巧。
我认为这个线程:签出旧的提交,并使其成为一个新的提交提供了一些可能性。 在合并之前签出其中一个之前的提交或重置到该点。 如果发生多重提交,我会首先在合并之前查找SHA值并使用该值。
链接地址: http://www.djcxy.com/p/18855.html