恢复到git分支

时间:2014-01-13 14:00:58

标签: git tortoisegit

我正在使用TortoiseGit,我想回到三天前最后提交的分支的末尾。我很难重置几次,但由于我不熟悉git,我冒险做一些愚蠢的事情,并且会感激帮助。

在这里看图像:

enter image description here

'master'目前设置为1月10日17:40:56的版本。这是我希望最新版本在本地和远程的地方。 (此图中有一些文字被修改)。

但是,我发现origin/HEADorigin/master是在1月13日(今天)11:04:01制作的版本。

为了清楚起见,我想恢复到绿色分支的末尾,并使该版本成为主版本。我该怎么办才能到达那里?

请说我是否需要提供更多信息......

2 个答案:

答案 0 :(得分:0)

您应该能够右键单击master引用的提交,选择push,然后选择“force”选项,以便将您的主人push --force放到遥控器上。
( “Force Overwrite Existing Branch (May discard changes)”)

确保使用相同的远程仓库与其他人进行通信,因为您将更改其他人可能已经从中获取的历史记录。

http://joelabrahamsson.com/PageFiles/215/1664_1998.jpg

答案 1 :(得分:0)

我对你的问题有部分答案。我不知道tortoisegit那么图中的黑线和红线是什么?我想绿色是master分支。这是当地回购的图片吗?您当前的分支名称是什么?

在命令行/终端窗口上使用git,您可以执行以下操作。

您可以将HEAD移至任何提交。为简洁起见,我们可以说SHA of Jan 10th 17:40:56提交是c。如果这是您的提交历史记录/日志。

a----b----c----d----e <-- master branch 
                    ^
                    HEAD

因此,执行git checkout c时应将HEAD设置为您希望保留后续提交的位置。

a----b----c----d----e <-- master branch 
          ^
          HEAD

这称为detached州。如果你git branch,它会这样说。你可以从这一点继续做新的提交,但由于它们没有被任何分支引用,git可以垃圾收集它们。

或者,如果您要删除提交de并将HEAD移至c,请执行git reset --hard c。如果您希望在此处进行de更改,但将HEADmaster分支移至c,请执行git reset --soft c。您会看到de作为git status中提交的更改。

相关问题