提出这个问题的方法可能不止一种,因此这里是对该问题的描述。我当时正在做 master 工作,并提交了一些东西,然后决定暂停这项工作。我备份了一些提交,然后从开始我的垃圾工作之前分支出来。实际上,这工作得很好,我现在有一个不同的分支作为我的主要开发分支。我想知道如何改变事情,所以我再次在 master 上工作,但它没有我的垃圾工作,并且说工作在不同的分支上。

可以通过一些方式询问/解决这个问题:如何将我的 master 分支重命名为其他分支,然后将其他分支重命名为 master ?如何备份 master,然后使我过去备份的所有提交都位于不同的分支上?

感谢您的所有(快速)回答!他们都很好。

有帮助吗?

解决方案

除了其他评论之外,您可能会发现 -m (移动)切换到 git-branch 很有帮助。您可以将旧的 master 重命名为其他名称,然后将新分支重命名为 master:

git branch -m master crap_work
git branch -m previous_master master

其他提示

我认为您应该考虑采用不同的开发策略来防止出现此类问题。对我来说最有效的方法是永远不要直接在我的主分支上进行开发。无论我做出什么更改,我总是为新代码创建一个新分支:

git checkout -b topic/topic_name master

从那里,我可以将更改推送到公共存储库:

git push pu topic/topic_name

或者最终将其合并回我的主分支:

git checkout master && git merge topic/topic_name

如果您确实需要返回到较旧的时间点并将其设置为您的主控,您可以将当前分支重命名为其他名称,然后签出旧版本作为您的主控:

 git branch -m master junk
 git co -b master old_sha1_value

开始 master, ,创建一个名为 in-progress, ,然后重置 master 到较早的提交。

$ git branch in-progress
$ git reset --hard HEAD^

这相对容易:

git checkout -b fake_master master # fake_master now points to the same commit as master
git branch -D master               # get rid of incorrect master
git checkout -b master real_master # master now points to your actual master
git checkout master                # optional -- switch on to your master branch

这将一步将您的主人设置为任意一点:

git checkout -B master new_point
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top