GIT how to reset without a commit
假设我使用以下命令创建一个空的git repo:
1 | # git init |
然后我开始添加远程存储库:
1 2 3 | # git remote add remote1 ........ # git remote add remote2 ........ # git remote add remote3 ........ |
号
和提取:
1 | # git fetch --all |
最后,我将需要的所有远程分支合并到本地回购中:
1 2 3 | # git merge remote1/branchX # git merge remote2/branchY # git merge remote3/branchZ |
。
现在,假设我必须在所有合并之前重置本地回购;自然的解决方案似乎只是创建一个新的空存储库。但问题是:获取我的远程存储库需要很长时间(几个小时),所以我想避免再次感染。
我不能执行"Git重置",因为在所有合并之前没有提交。
一个不错的欺骗方法是在设置存储库时执行
但是,由于您已经获取了所有的远程设备,因此您不需要为了创建一个新的空/不相关的分支而炸掉存储库,如果这更符合您的需求:
1 | git symbolic-ref HEAD refs/heads/new-branch |
然后,当您提交/合并EDOCX1上的任何内容时,git将为您填写新的分支。一旦你有了另一个现有的分支,你就可以硬重置master或者做任何你想耍的花招。
我认为这个线程:签出旧的提交并使其成为新的提交提供了一些可能性。在合并之前签出一个以前的提交,或者重置到该点。如果发生了mutliple提交,我将首先在合并之前查找sha值并使用该值。