我正在使用TortoiseGit,我想回到三天前最后提交的分支的末尾。我很难重置几次,但由于我不熟悉git,我冒险做一些愚蠢的事情,并且会感激帮助。
在这里看图像:
'master
'目前设置为1月10日17:40:56的版本。这是我希望最新版本在本地和远程的地方。 (此图中有一些文字被修改)。
但是,我发现origin/HEAD
和origin/master
是在1月13日(今天)11:04:01制作的版本。
为了清楚起见,我想恢复到绿色分支的末尾,并使该版本成为主版本。我该怎么办才能到达那里?
请说我是否需要提供更多信息......
答案 0 :(得分:0)
您应该能够右键单击master引用的提交,选择push,然后选择“force
”选项,以便将您的主人push --force
放到遥控器上。
( “Force Overwrite Existing Branch (May discard changes)
”)
确保使用相同的远程仓库与其他人进行通信,因为您将更改其他人可能已经从中获取的历史记录。
答案 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可以垃圾收集它们。
或者,如果您要删除提交d
和e
并将HEAD
移至c
,请执行git reset --hard c
。如果您希望在此处进行d
和e
更改,但将HEAD
和master
分支移至c
,请执行git reset --soft c
。您会看到d
和e
作为git status
中提交的更改。