我有两个分支,即master和开发在一个GitHub库。我正在做我所有的开发在开发分支显示。
git branch development
git add *
git commit -m "My initial commit message"
git push -u origin development
现在我想将开发分支上的所有更改合并到主分支中。我目前的方法是:
git checkout master
git merge development
git push -u origin master
请让我知道我所遵循的程序是否正确。
就我个人而言,我的方法与您的类似,在提交返回到master时增加一些分支和一些压缩。
我的一个同事不喜欢如此频繁地切换分支,而是停留在开发分支上,并从开发分支执行类似于以下内容的内容。
git fetch origin master
git merge master
git push origin development:master
第一行确保他拥有自上次更新本地存储库以来提交给master的所有上游提交。
第二步将这些更改(如果有的话)从master导入到开发中
第三个将开发分支(现在与master完全合并)推到origin/master。
我可能把他的基本工作流程搞错了,但这是它的主要要点。
对于那些不懂树枝的同学,从头到尾给你们讲解。
基本的主/主分支开发逻辑是:您只在另一个分支上工作,所以您只使用主/主分支与另一个准备合并的分支合并。
你开始以这样的方式创建一个新分支:
在您的本地目录克隆存储库(或创建一个新的存储库):
$ cd /var/www
$ git clone git@bitbucket.org:user_name/repository_name.git
创建一个新分支。它将包含主分支存储库的最新文件
$ git branch new_branch
将当前git分支更改为new_branch
$ git checkout new_branch
像往常一样进行编码、提交……
$ git add .
$ git commit -m “Initial commit”
$ git push # pushes commits only to “new_branch”
当这个分支上的任务完成时,与“master”分支合并:
$ git merge master
$ git checkout master # goes to master branch
$ git merge development # merges files in localhost. Master shouldn’t have any commits ahead, otherwise there will be a need for pull and merging code by hands!
$ git push # pushes all “new_branch” commits to both branches - “master” and “new_branch”
我还推荐使用Sourcetree App来查看变更和分支的可视化树。