将结帐转换为主人

时间:2012-10-16 00:10:57

标签: git

我需要git的一些帮助。我现在的“大师”有一些问题,所以我从一段时间后检查一个我知道有用的版本。

$ git checkout <hash>

我们称之为“上一个”。然后我对“previous”进行了编辑,并按照我想要的方式工作。然后我提交并将“previous”推到了git repo。当然,在回购时,“大师”仍然是老问题的“大师”。我想我要做的就是将计算机上的“previous”(使用新编辑)转换为“master”,然后将其推送到repo。我怎么做?我已经阅读rebase并尝试过,但这不起作用。我收到错误消息“无法重新绑定:您有未分级的更改。”

4 个答案:

答案 0 :(得分:3)

据推测,您使用git checkout <hash>所做的就是获得一个新的独立头部。

(可选)保留错误主文件的引用(称为oldmaster):

git branch oldmaster master

删除主参考:

git branch -D master

使您当前的工作分支(分离的HEAD)成为新的主分支。

git checkout -b master

然后,提交您的更改(可能在需要时添加新文件之后):

git commit ...

答案 1 :(得分:1)

我不确定你必须在“主人”中走多远,但你可以一直git revert <hash>回到你分支的那一点。这将“撤消”所有提交,而不会丢失历史记录。

这篇文章可能会对您有所帮助:Revert multiple git commits

答案 2 :(得分:0)

也许尝试运行git checkout master; git status;并查看您是否确实在主分支中有未分级的更改。如果是这种情况,只需在您的rebase之前提交或者隐藏这些更改。您还应验证是否已在上一个分支上成功提交了更改。

答案 3 :(得分:0)

回归主分支的一种简单方法是使用reset:

git checkout master
git reset --hard <hash>

然后你的分支将通过一些提交落后于原始主人。修复:

git push origin master -f

这将强制降低当前位置之前的提交。