Big*_*ies 6 git branching-strategy
我现在正在为我的一个项目使用Git,我喜欢它.
但是,因为我是唯一一个在我的项目上工作的人,所以我用过的唯一命令就是
git status
git add .
git commit -m 'message here'
git push origin master
Run Code Online (Sandbox Code Playgroud)
我很久以前就已将项目推向远程(我使用Capistrano进行部署),一切都很顺利.
现在我想改变网站的设计,但保持逻辑不变.我猜我需要创建一个新分支(让我们称之为newdesign).
我想知道的是:如果我正在newdesign分支机构工作,并且我在分支中看到了一个错误,master我怎么能修复bug master然后将该bugfix集成到newdesign分支中,以便后者成为与实际逻辑保持同步?
jub*_*0bs 27
这是一个经典案例,您可以利用Git分支机构.这是您应该使用的工作流程.
假设您创建了一个develop源自的分支,master并且您已在该分支上进行了一些提交:

突然间,你意识到你需要快速修复一个bug master; master您应该创建一个短命的错误修复分支,而不是直接使用它,以便将错误修复任务与您的master分支隔离开来:
git checkout master
git checkout -b bugfix
Run Code Online (Sandbox Code Playgroud)

在bugfix分支上进行一次提交(或更多)以解决问题后,

你应该确保一切正常(运行测试等).如果您对代码的状态感到满意,请将其bugfix合并到master:
git checkout master
git merge bugfix
Run Code Online (Sandbox Code Playgroud)

在该阶段,您可以将您的(现在已修复)master分支推送到远程,并删除bugfix分支:
git push origin master
git branch -d bugfix
Run Code Online (Sandbox Code Playgroud)
现在,集成最新的变化master为develop,你基本上有两种选择.
合并master到develop,通过运行:
git checkout develop
git merge master
Run Code Online (Sandbox Code Playgroud)

另外,底垫develop之上master,通过运行:
git checkout develop
git rebase master
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,您的develop分支现在都将包含错误修复程序,您可以继续处理它.