【问题标题】:Git - Forgot to switch branchGit - 忘记切换分支
【发布时间】:2012-04-26 13:48:06
【问题描述】:

我在开始我的项目之前忘记切换到新分支,现在我需要将我的更改推送到新分支(不是主分支),以便其他人审查我的工作。我的工作已经完成,但保存在我当地的主人那里。

如何将我的更改移动到新分支中,这样当我推送它时不会与主分支混淆,而是创建一个新的远程分支?

【问题讨论】:

  • 你已经完成了所有的工作吗?如果是这样,它只是一个提交还是一系列提交?
  • 我相信,而且会是一个系列。

标签: git windows-7 tortoisegit


【解决方案1】:

首先,既然您已经完成了本地 master 分支的所有工作,请创建一个指向 tip 或本地 master 的新功能分支。

$ git checkout -b newfeature master

然后将主服务器留在服务器中(远程)

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

【讨论】:

  • 我只使用 GUI(Git Bash 给我错误)。我做了“创建分支”并选择了“HEAD”,“[]切换到新分支”没有被选中。然后我打开日志,选择最新的主条目并选择“重置”,然后选择“硬”。查看文件,我发现我的更改消失了,但是当我切换到新分支并要求查看“差异”时,什么也没有出现!他们不应该在那里吗?
  • @Kim 我不确定您在 GUI 中做了什么,无论您在哪里执行这些步骤,这些步骤都有效,您一定跳过了一个步骤。如果您只使用 GUI,我真的很难为您提供帮助,我几乎没有使用 git gui 的经验,因为我讨厌 Tk 界面。请记住,分支和标签只是指向提交的指针,git 实际上在垃圾收集之前不会删除任何内容。如果您在执行此步骤时丢失了任何更改,您可以查看 git relog 以恢复您之前的提交。
  • 不使用结帐来创建分支,你可以只做一个git branch newfeature然后你只需要做git reset --hard origin/master
【解决方案2】:

在与你的 master 相同的位置创建一个新分支。

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

【讨论】:

    【解决方案3】:

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

    因此,尽管在硬重置回 remote master 以及导出更改的文件之前进行了备份,但我没有看到其他选择,只能重新进行更改。导出和备份都毫无价值,因为它们包含与我的本地存储库完全相同的内容,因此我的更改丢失。我曾预计 both 不会改变。

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

    以下是我的修复步骤:

    1. 完成您的更改(仍在 master 中)
    2. remote master 拉取新更改并修复任何冲突
    3. TortoiseGit -> Stash save。输入一条消息以将其与其他存储区分开 -> 好的
    4. TortoiseGit -> Show log。选择最新的master,然后右键选择Reset,然后Hard option -> Ok
    5. TortoiseGit -> Create Branch。输入名称并勾选@​​987654327@ -> 好的
    6. TortoiseGit -> Stash list。选择您保存的存储 -> 好的
    7. 现在您会看到不同文件的列表。对于每个文件,比较差异并将更改再次应用于新重置的文件
    8. 完成后,右键单击本地文件夹。你应该看到TortoiseGit上方的Git Commit -> "BranchName" ...,选择第一个
    9. 确认要提交的文件,然后输入合适的描述 -> 好的
    10. 现在您已准备好pushTortoiseGit -> Push,检查本地分支是否是您选择的名称。如果不是,那么您忘记在 5 中切换分支。必须从 6 继续。

    我希望这对其他人有所帮助。要记住的事情:当你开始一个新功能/非小改动时切换到一个新分支

    【讨论】:

    • git stash 仅在您没有提交任何内容并且您声明您已经提交多次时才有效。
    • 我说I believe。你可以猜到,我对使用存储库还是很陌生。另一方面,我得到了Git Bash 的工作——我所要做的就是使用cd 命令导航到我的repo 文件夹,因为Git Bash 显然没有在我的repo 文件夹中启动,因此它没有隐藏的“git”文件夹来检查反对。
    • 如果您想使用 git 感觉流畅,我建议您阅读 online Pro Git book,它很短,有简洁的图表表示 git 如何查看您的数据并且易于理解。当我开始时,它对我帮助很大。
    猜你喜欢
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2010-09-06
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多