【问题标题】:how to create appropriate branch for this case如何为这种情况创建适当的分支
【发布时间】:2019-07-24 02:26:54
【问题描述】:

假设我正在处理 2 个任务。我为 task1_base 创建了一个分支,为 task1_work 创建了一个分支。 task1_base 分支不会改变,task1_work 会改变。我完成了对 task1_work 的更改并提交了。现在我需要处理task2。所以我创建了一个分支task2_base和task2_work,它们都是基于task1_work的。我完成了对 task2_work 的更改并提交了。现在事情变得越来越复杂:我意识到我必须在 task1_work 分支上进行更多更改,所以我进行更改并提交。由于我的 task2_work 取决于 task1_work 上的更改,因此我会将 task2_work 重新设置为 task1_work。但是 task2_base 呢?我试图将其重新设置为 task1_work 但不能,因为 task2_base 分支上没有提交。我不得不使用合并功能。但是合并会使历史不干净。有没有办法将 work2_base 重新设置为 work1_work?

【问题讨论】:

    标签: git branch rebase


    【解决方案1】:

    您应该将分支(指针)移至 task1_work:

    git branch -f task2_base task1_work
    

    然而,我脑海中浮现的问题是:你为什么要保留那些 base 分支?

    【讨论】:

    • 基础分支用于代码审查。例如,一旦我在 task2_work 分支中提交了我的更改,审阅者可以根据 task2_work 和 task2_base 之间的差异来审查我的更改。这有意义吗?
    • 其实我只是尝试了命令:git branch -f task2_base task1_work,但它没有按预期工作。我在 task1_work 中所做的更改没有出现在 task2_base 中。所以我们将不得不进行合并?
    • 这毫无意义。在运行该特定命令后,task1_wok 和 task2_base 指向完全相同的版本。
    • 如果它们指向相同的修订版,那么它们将具有相同的内容,对吗?但是在我运行命令之后,我看到了 task1_work 的变化,但没有看到 task2_base 的变化。
    • 他们指向同一个版本吗? git rev-parse task1_work task2_base 的输出是什么?它应该是相同的修订 ID
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 2017-06-06
    • 1970-01-01
    • 2013-12-13
    • 2013-08-25
    • 2012-01-21
    • 1970-01-01
    相关资源
    最近更新 更多