【问题标题】:fix 'unbroken' code with git commit and revert (my stupid way)?用 git commit 修复“完整”代码并恢复(我的愚蠢方式)?
【发布时间】:2011-10-29 01:00:40
【问题描述】:

我正在处理branch A,突然一切都崩溃并停止工作。我想我可能会破坏我的代码中的某些内容,所以我committed 我的更改并从branch A 创建了新的branche B 以将其作为备份。然后我revert 分支A 到最后一个工作提交,并开始尝试修复任何可能的错误。后来我意识到服务器有问题而不是我的代码。所以我删除了分支A 并继续在branch B 工作。 我这样做是因为我不是 git 专家,所以我用我的一点知识来解决问题。我相信应该有比我的“非常愚蠢”的方法更容易、更聪明、更合适的方法来解决这样的问题:) 有什么建议吗?

【问题讨论】:

  • 这有什么愚蠢的?与许多 Git 工作流程一样,实现它的方法不止一种,但您选择的方式对我来说似乎并不愚蠢或复杂。

标签: git branch revert


【解决方案1】:

您可以再次将 A 分支重置为上一个工作提交,

git checkout branch_A
git reset --hard last_working_commit_id  

将“完整”的代码从 B 合并回 A 分支,

git merge branch_B

然后删除 B 分支并继续使用 A 分支。

git branch -d branch_B

【讨论】:

    【解决方案2】:

    您的工作方式没有任何问题。在 Git 中,分支实际上只是指向提交的指针,当您创建更多提交时,指针会随着您移动到最后一次提交。鉴于此,除了名称之外,您的原始分支 A 和当前分支 B 之间没有区别。

    既然您已经删除了分支 A,您可以根据需要将分支 B 重命名为分支 A:

    git branch -m branch-b branch-a
    

    【讨论】:

    • +1 这可能是更好的解决方案,我的更复杂。
    • 非常感谢,这就是我现在所做的。但 Lukas 的回答正是我正在寻找的,因为我要求的是替代我所做的事情。
    猜你喜欢
    • 2011-07-16
    • 2015-07-11
    • 2016-01-05
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    相关资源
    最近更新 更多