移动到 GIT 中的旧分支时如何使用当前工作副本?
How to work with current working copy when moving to old branch in GIT?
我有一个关于 GIT 中最佳实践的问题。想象一下,我创建了一个名为 hotfixes
的分支,并向其添加了一些修复程序,然后将该分支与主分支合并。然后我创建了一些其他分支并将它们与主分支合并。
几周后,我意识到我需要添加更多的修补程序,所以我在本地移动到 hotfixes
分支。然而,由于 master 分支在过去几周内继续进行,我切换到一个较旧的分支,我现在最终拥有一个更旧的本地工作副本。
我如何确保能够在我几周前创建的分支中工作,并且仍然拥有与 master 中相同的当前工作目录?这是使用 rebase
命令完成的还是我必须删除旧分支并重新创建它?
我不知道具体的约定是什么,但如果主版本有重大变化,我倾向于重新合并和分支。这基本上允许我更新分支版本。我倾向于这样做,因为如果有更新被主版本接受,那通常意味着它们正在运行更新。
另一件可能的事情是复制你所做的更改,并在你从更新的主版本创建分支时更改这些文件。
希望这对您有所帮助,也很想知道其他人的建议。
祝你有美好的一天!
The problem is I would like to always use the same branch or at least
the same name "hotfixes"
但是为什么呢?我建议创建一个与修复直接相关的分支,即 hotfix/missing_dll
,将其从当前工作分支(例如 master
)分支出来,并在合并后将其删除。这可确保您始终了解当前工作的最新情况。
如果你真的有连续使用一个分支,你可以在每次重新开始工作时将当前的master
合并到hotfixes
.但是,这将创建丑陋的合并提交,最终将在您的 master
分支中结束。
第一个方法更清晰,更不容易出错。如果您有充分的理由继续使用单个 hotfixes
分支,请详细说明。
编辑:除了其他工作流程,这是在 this 分支模型中完成的。
无论您做什么,重新使用旧的修补程序分支(通过合并或变基)在任何合理的工作流程中都是根本错误的。修补程序分支就像功能分支——您也不会重复使用它们。
完成修补程序并将其合并回主分支后,您只需删除修补程序分支即可。当您创建新的(来自 master
)时,稍后,一切都会好起来的。
顺便说一下,删除 git 中的合并分支根本不会改变历史记录。 git 中的分支只是 "sticky notes" 指向提交。例如,gitk
或 git log --graph --decorate master
仍将无限期地显示实际的分支提交。实际上完全不可能删除在 git checkout -b
和 git merge
.
之间进行的 提交
手册对此进行了详细介绍:https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell
我有一个关于 GIT 中最佳实践的问题。想象一下,我创建了一个名为 hotfixes
的分支,并向其添加了一些修复程序,然后将该分支与主分支合并。然后我创建了一些其他分支并将它们与主分支合并。
几周后,我意识到我需要添加更多的修补程序,所以我在本地移动到 hotfixes
分支。然而,由于 master 分支在过去几周内继续进行,我切换到一个较旧的分支,我现在最终拥有一个更旧的本地工作副本。
我如何确保能够在我几周前创建的分支中工作,并且仍然拥有与 master 中相同的当前工作目录?这是使用 rebase
命令完成的还是我必须删除旧分支并重新创建它?
我不知道具体的约定是什么,但如果主版本有重大变化,我倾向于重新合并和分支。这基本上允许我更新分支版本。我倾向于这样做,因为如果有更新被主版本接受,那通常意味着它们正在运行更新。 另一件可能的事情是复制你所做的更改,并在你从更新的主版本创建分支时更改这些文件。
希望这对您有所帮助,也很想知道其他人的建议。 祝你有美好的一天!
The problem is I would like to always use the same branch or at least the same name "hotfixes"
但是为什么呢?我建议创建一个与修复直接相关的分支,即 hotfix/missing_dll
,将其从当前工作分支(例如 master
)分支出来,并在合并后将其删除。这可确保您始终了解当前工作的最新情况。
如果你真的有连续使用一个分支,你可以在每次重新开始工作时将当前的master
合并到hotfixes
.但是,这将创建丑陋的合并提交,最终将在您的 master
分支中结束。
第一个方法更清晰,更不容易出错。如果您有充分的理由继续使用单个 hotfixes
分支,请详细说明。
编辑:除了其他工作流程,这是在 this 分支模型中完成的。
无论您做什么,重新使用旧的修补程序分支(通过合并或变基)在任何合理的工作流程中都是根本错误的。修补程序分支就像功能分支——您也不会重复使用它们。
完成修补程序并将其合并回主分支后,您只需删除修补程序分支即可。当您创建新的(来自 master
)时,稍后,一切都会好起来的。
顺便说一下,删除 git 中的合并分支根本不会改变历史记录。 git 中的分支只是 "sticky notes" 指向提交。例如,gitk
或 git log --graph --decorate master
仍将无限期地显示实际的分支提交。实际上完全不可能删除在 git checkout -b
和 git merge
.
手册对此进行了详细介绍:https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell