我的本地回购在遥控器之前。在SourceTree视图中,我的本地仓库(顶行)位于远程之前,或者“origin / master”(第二行)位于9次提交之前。
这是通过git状态确认的: 您的分支在9次提交之前领先于“origin / master”。 (使用“git push”发布您的本地提交) 无需提交,工作目录清理
但是,我不想只是做一个git push,因为我想把我的9个提交放在分支或功能上。
具体来说,我想: - 将本地安装重置为origin / master - 添加从主服务器中分离出来的新功能或分支 - 提交我的更改 - 推动功能分支
我对第一步感到困惑:将我的本地重置为原点/主人。 我相信rebase会从命令行执行此操作,但我如何在SourceTree中执行此操作?
我已经搜索了这个主题并且回答了建议'git push',但是我想要从SourceTree中的新功能分支进行推送。
感谢。
答案 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添加的所有文件,并提交自那时以来您已更改的所有文件