如何在SourceTree中将本地仓库重置回原点/主仓?

时间:2015-10-01 00:49:38

标签: git

我的本​​地回购在遥控器之前。在SourceTree视图中,我的本地仓库(顶行)位于远程之前,或者“origin / master”(第二行)位于9次提交之前。

这是通过git状态确认的: 您的分支在9次提交之前领先于“origin / master”。   (使用“git push”发布您的本地提交) 无需提交,工作目录清理

但是,我不想只是做一个git push,因为我想把我的9个提交放在分支或功能上。

具体来说,我想: - 将本地安装重置为origin / master - 添加从主服务器中分离出来的新功能或分支 - 提交我的更改 - 推动功能分支

我对第一步感到困惑:将我的本地重置为原点/主人。 我相信rebase会从命令行执行此操作,但我如何在SourceTree中执行此操作?

我已经搜索了这个主题并且回答了建议'git push',但是我想要从SourceTree中的新功能分支进行推送。

感谢。

2 个答案:

答案 0 :(得分:2)

由于你没有推动任何东西,这将使它有点容易。请注意,我没有使用任何UI工具,因为我更熟悉命令行。

git reset HEAD~9
git checkout -b <branch-name>
git add .
git commit

reset引入了混合模式重置;你不会丢失任何你的工作,但它会将你的主分支的头指针移回9提交。

如果你的工作应该在哪里;也就是说,现在应该在自己的分支上工作,那么你应该强制推动你的主分支,从而覆盖历史。要小心:如果其他任何人已经将他们的工作从主人的提示中剔除,他们将不得不改变他们对新分支的工作。

答案 1 :(得分:0)

首先,如果您想保留当前的更改并将其设置为远程分支,请执行以下操作:

git commit -a -m "Save all my work on this branch"
git branch saveThisFeature

(您可以将分支命名为btw)

然后,如果要将主分支重置为最后一次推送,则需要执行此操作:

git fetch origin
git reset --hard origin/master

然后,您可以通过以下方式查看您所在的主分支或切换到saveThis分支:

git checkout saveThisFeature

以下是-a和-m git选项的快速说明:

-m将更改提交到head(但尚未提交到远程存储库)

-a提交您使用git add添加的所有文件,并提交自那时以来您已更改的所有文件