Git - 忘了切换分支

时间:2012-04-26 13:48:07

标签: git windows-7 tortoisegit

在开始我的项目之前,我忘了切换到新分支,现在我需要将我的更改推送到新分支(而不是主分支),以便其他人审查我的工作。我的作品很精彩,但保存在当地的主人身上。

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

3 个答案:

答案 0 :(得分:12)

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

$ git checkout -b newfeature master

然后离开主服务器,因为它在服务器(远程)

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

答案 1 :(得分:1)

在与主人相同的位置创建一个新分支。

签出主服务器,并将当前分支硬重置为要回退的提交。

答案 2 :(得分:0)

我不确定发生了什么,但当我按照KurzedMetal的git命令时,它并没有给我预期的结果。

所以除了在重新执行远程主控以及导出已更改文件之前已经进行了备份之外,我没有看到除了重新进行更改之外的其他选择。导出和备份都没有价值,因为它们之后包含与我的本地存储库完全相同的内容,因此我的更改丢失。我曾预计两者都会保持不变。

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

以下是我要修复的步骤:

  1. 完成了您的更改(仍在中)
  2. 远程主控中提取新更改并解决所有冲突
  3. TortoiseGit -> Stash save。输入消息以将其与其他存储区分开 - >确定
  4. TortoiseGit -> Show log。选择最新的主数据,然后右键单击并选择Reset,然后选择Hard option - >确定
  5. TortoiseGit -> Create Branch。输入名称并选中Switch to new branch - >框;确定
  6. TortoiseGit -> Stash list。选择已保存的藏匿处 - >确定
  7. 现在您看到了不同文件的列表。对于每个文件,比较差异并再次将更改应用于新重置的文件
  8. 完成后,右键单击本地文件夹。您应该看到Git Commit -> "BranchName" ...上方TortoiseGit,选择第一个
  9. 确认要提交的文件,然后输入拟合说明 - >确定
  10. 现在您已准备好pushTortoiseGit -> Push,检查本地分支是您选择的名称。如果不是,那么你忘了在5中切换分支,并且必须从6继续。
  11. 我希望这会对别人有所帮助。要记住的事项:当您开始新功能/非次要更改时切换到新分支

相关问题