如何在我们的 GOGs 存储库中创建一个旧提交的分支,推送它以创建标签,然后将更改合并到 Master 而不会丢失我们的更改?
How to Create a branch off an old commit in our GOGs repository, push it to make a tag, then merge the change onto Master without losing our changes?
我们的团队在遗留应用程序上工作,规模相对较小,而且对使用 GIT 存储库控制我们的源代码还很陌生。我们没有 Git Master,而且我们真的没有任何方法来组织我们的更改。
因此,我们在成功发布后将一些更改推送到我们的 Master 分支 - 只是发现该版本现在需要一个热修复。
我们不想将我们正在进行的更改推送到下一个版本 - 所以理想情况下我们希望:
- 让一个人从 GOGs 中拉取最后一次提交(带有我们发布的标签)
- 更改代码以修复生产中的错误
- 推出更改并创建标签,以便我们的发布团队可以部署它
- 将该更改合并到我们的 Master 分支,这样我们为下一个版本所做的工作不会丢失,但应用修复的更改
这是我们第一次尝试对代码进行实时修复 - 我看到了一些建议,但其中大部分涉及将其基于尚未推送的开发人员分支。作为一个已经将更改推送到 Master 并希望对旧推送应用修复的团队,我们能做什么?
你描述的基本正确。
- 确定现在正在生产中的提交。假设它是
abc123f
。它也可以是一个与提交相同的标签(提交、分支、标签 - 都是引用。分支是一个移动的目标,但提交和标签是不可变的)。
- 在回购中,检查那个提交
:
git checkout abc123f
- 创建您的修补程序分支:git checkout -b hotfix-branch
- 进行更改、测试并提交。
- 标记你最终的提交并推送标记
- 给发布团队打标签
git checkout master; git fetch --all; git pull
获取最新的 master
git merge hotfix-branch
后跟 git push
将添加修补程序并将其推送到主上游。
请记住,您始终可以使用 git diff
比较分支来检查您的工作并进行验证。我经常这样做,你也应该这样做,因为对你的更改有信心是版本控制的主要好处!
8
我们的团队在遗留应用程序上工作,规模相对较小,而且对使用 GIT 存储库控制我们的源代码还很陌生。我们没有 Git Master,而且我们真的没有任何方法来组织我们的更改。
因此,我们在成功发布后将一些更改推送到我们的 Master 分支 - 只是发现该版本现在需要一个热修复。
我们不想将我们正在进行的更改推送到下一个版本 - 所以理想情况下我们希望:
- 让一个人从 GOGs 中拉取最后一次提交(带有我们发布的标签)
- 更改代码以修复生产中的错误
- 推出更改并创建标签,以便我们的发布团队可以部署它
- 将该更改合并到我们的 Master 分支,这样我们为下一个版本所做的工作不会丢失,但应用修复的更改
这是我们第一次尝试对代码进行实时修复 - 我看到了一些建议,但其中大部分涉及将其基于尚未推送的开发人员分支。作为一个已经将更改推送到 Master 并希望对旧推送应用修复的团队,我们能做什么?
你描述的基本正确。
- 确定现在正在生产中的提交。假设它是
abc123f
。它也可以是一个与提交相同的标签(提交、分支、标签 - 都是引用。分支是一个移动的目标,但提交和标签是不可变的)。 - 在回购中,检查那个提交
:
git checkout abc123f
- 创建您的修补程序分支:git checkout -b hotfix-branch
- 进行更改、测试并提交。
- 标记你最终的提交并推送标记
- 给发布团队打标签
git checkout master; git fetch --all; git pull
获取最新的 mastergit merge hotfix-branch
后跟git push
将添加修补程序并将其推送到主上游。
请记住,您始终可以使用 git diff
比较分支来检查您的工作并进行验证。我经常这样做,你也应该这样做,因为对你的更改有信心是版本控制的主要好处!
8