在开始我的项目之前我忘记切换到一个新分支,现在我需要将我的更改推送到一个新分支(不是主分支),以便另一个人审查我的工作。我的工作已经完成,但保存在我当地的主人那里。
我怎样才能将我的更改移动到一个新的分支中,所以当我推送它时不会与主分支混淆,而是创建一个新的远程分支?
在开始我的项目之前我忘记切换到一个新分支,现在我需要将我的更改推送到一个新分支(不是主分支),以便另一个人审查我的工作。我的工作已经完成,但保存在我当地的主人那里。
我怎样才能将我的更改移动到一个新的分支中,所以当我推送它时不会与主分支混淆,而是创建一个新的远程分支?
首先,既然您已经完成了本地 master 分支的所有工作,请创建一个指向 tip 或本地 master 的新功能分支。
$ git checkout -b newfeature master
然后将主服务器留在服务器中(远程)
$ git checkout master
$ git reset --hard origin/master
在与 master 相同的位置创建一个新分支。
签出 master,并将您当前的分支硬重置为您想要回退到的提交。
我不确定发生了什么,但是当我遵循 KurzedMetal 的 git 命令时,它并没有给我想要的结果。
因此,尽管在将硬重置回远程主机以及导出更改的文件之前进行了备份,但除了重新进行更改外,我没有其他选择。导出和备份都毫无价值,因为它们包含与我的本地存储库完全相同的内容,因此我的更改丢失了。我原以为两者都不会改变。
幸运的是,在我开始处理推送问题之前,我已经隐藏了我的更改。
注意:硬重置后新创建的文件不会被删除。
以下是我的修复步骤:
TortoiseGit -> Stash save
. 输入一条消息以将其与其他存储区分开 -> 好的TortoiseGit -> Show log
. 选择最新的master,然后右键单击并选择Reset
,然后Hard option
->确定TortoiseGit -> Create Branch
. 输入名称并选中复选框Switch to new branch
-> 确定TortoiseGit -> Stash list
. 选择您保存的存储 -> 确定Git Commit -> "BranchName" ...
上面TortoiseGit
,选择第一个push
。TortoiseGit -> Push
,检查本地分支是否是您选择的名称。如果不是,那么您忘记在 5 中切换分支,并且必须从 6 继续。我希望这对其他人有帮助。要记住的事情:当你开始一个新功能/非小改动时切换到一个新分支