Git - 忘记切换分支



在开始我的项目之前,我忘了切换到一个新分支,现在我需要将我的更改推送到一个新分支(不是主分支),以便另一个分支来审查我的工作。我的作品是精炼的,但保存在我当地的大师中。

如何将更改移动到新分支中,以便在推送时不会弄乱主分支,而是创建一个新的远程分支?

首先,由于您已经完成了本地主分支的所有工作,因此请创建一个指向尖端或本地主分支的新功能分支。

$ git checkout -b newfeature master

然后保持主服务器在服务器中的位置(远程)

$ git checkout master
$ git reset --hard origin/master

在与主节点相同的点创建一个新分支。

签出主节点,并将当前分支硬重置为要快退到的提交。

我不确定发生了什么,但是当我按照 KurzedMetal 的 git 命令进行操作时,它并没有给我想要的结果。

因此,除了重新进行更改之外,我没有其他选择,尽管在硬重置回远程主服务器以及导出更改的文件之前已经进行了备份。导出和备份都毫无价值,因为它们包含的内容与我的本地存储库完全相同,因此我的更改丢失了。我原本以为两者都会改变。

幸运的是,在开始解决推送问题之前,我已经隐藏了更改。
注意:硬重置后不会删除新创建的文件。

以下是我的修复步骤:

  1. 完成更改(仍在主控中)
  2. 远程主服务器中提取新更改并修复任何冲突
  3. TortoiseGit -> Stash save .输入消息以将其与其他存储区分开来 -> 确定
  4. TortoiseGit -> Show log .选择最新的母版,然后右键单击并选择Reset,然后Hard option -> Ok
  5. TortoiseGit -> Create Branch .输入名称并选中框 Switch to new branch -> 确定
  6. TortoiseGit -> Stash list .选择您保存的藏匿处 -> 确定
  7. 现在,您将看到不同文件的列表。对于每个文件,比较差异并将更改再次应用于新重置的文件
  8. 完成后,右键单击本地文件夹。您应该看到上面的Git Commit -> "BranchName" ... TortoiseGit,选择第一个
  9. 确认要提交的文件,然后输入配件描述 -> 确定
  10. 现在您已准备好push. TortoiseGit -> Push,请检查本地分支是否为您选择的名称。如果不是,那么您忘记在 5 中切换分支。并且必须从 6 继续。

我希望这将帮助其他人。要记住的事情:当您开始新功能/非次要更改时切换到新分支

最新更新