1

假设我使用以下命令创建了一个空的 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 reset”,因为我没有在所有合并之前提交。

4

2 回答 2

3

git init && git commit --allow-empty -m 'Initial commit.'一个不错的作弊方法是在设置存储库时做一个,这HEAD至少可以缓解不存在的症状。

但是由于您已经获取了所有遥控器,因此您不需要为了创建一个新的空/不相关的分支而删除存储库,如果这更多的是您正在寻找的:

git symbolic-ref HEAD refs/heads/new-branch

然后,当您提交/合并任何内容时HEAD,git 将为您填写新分支。一旦你有另一个现有的分支,你就可以硬重置 master 或做任何其他你想玩弄它们的技巧。

于 2012-10-02T14:00:06.130 回答
0

我认为这个线程:Checkout old commit and make it a new commit提供了一些可能性。在合并之前签出以前的提交之一或重置到该点。如果发生多次提交,我将首先在合并之前查找 SHA 值并使用该值。

于 2012-10-02T13:42:49.690 回答