git - 我怎样才能在 master 上修复错误并将其集成到我不太稳定的分支中?

标签 git branching-strategy

我目前正在为我的一个项目使用 Git,我喜欢它。

但是,因为我是唯一一个在我的项目上工作的人,所以我一直使用的唯一命令是

git status
git add .
git commit -m 'message here'
git push origin master

我很久以前就把这个项目推到了远程(我用 Capistrano 进行部署),一切都很好。

现在我想更改网站的设计,但要保持逻辑完整。我猜我需要为此创建一个新分支(我们称之为 newdesign)。

不过,我想知道的是:如果我在 newdesign 分支上工作,并且我在 master 分支中看到一个错误,怎么能我修复了 master 上的错误,然后将该错误修复集成到 newdesign 分支中,以便后者与实际逻辑保持同步?

最佳答案

这是一个可以利用 Git 分支的经典案例。这是您应该使用的工作流程。

假设您创建了一个源自 masterdevelop 分支,并且您在该分支上做了一些提交:

enter image description here

突然,你意识到master 上有一个错误,一个你需要快速修复的错误。与其直接离开 master 工作,不如创建一个短期的 bug-fix 分支,将错误修复任务与 master 隔离开来> 分支机构:

git checkout master
git checkout -b bugfix

enter image description here

bugfix 分支上进行一次(或多次)提交以修复问题后,

enter image description here

您应该确保一切正常(运行测试等)。当您对 bugfix 上的代码状态感到满意时,将其 merge 到 master 中:

git checkout master
git merge bugfix

enter image description here

在那个阶段,您可以将您的(现已修复)master 分支推送到远程,并删除 bugfix 分支:

git push origin master
git branch -d bugfix

现在,要将 master 上的最新更改集成到 develop 中,基本上有两种选择。

  1. 通过运行将 master merge 到 develop 中:

    git checkout develop
    git merge master
    

enter image description here

  1. 或者,在 master 之上 rebase develop,运行:

    git checkout develop
    git rebase master
    

enter image description here

无论哪种情况,您的 develop 分支现在都将包含修复,您可以继续在 develop 上工作。

关于git - 我怎样才能在 master 上修复错误并将其集成到我不太稳定的分支中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25933056/

相关文章:

git - 如何在循环中运行 svn update 以将提交导入到 git?

git - 在 Jenkins 中,如何将项目 check out 到特定目录(使用 GIT)

新精简团队的 Git 分支策略

Git 分支仍然与 master 在同一行

Git 推/pull 路径不适用于运行 msysgit + cygwin sshd 的 Windows 源

windows - Jenkins 没有从 Windows 凭据管理器中检测到 GIT 凭据

git - 将 Git 子模块转换为子树后 merge 错误

git - 如何为发布流程配置 GitVersion?

Git:测试两个功能分支的组合

svn - 选择分支策略来满足我们的部署需求