GIT 定制分支的一个开发策略


问题 如何fork一个项目代码,并跟踪建立自己的分支?

这个问题实际上比较常见,比如我在使用一个开源软件,在使用中有一些自己的定制开发,需要动些代码以满足我的需求,当软件进行升级以后,如何升级自己在使用中的系统呢?一个笨办法是将源代码下载下来后,在里面重新进行适用自己的修改,显然,这是一个费时费力的过程。本文试图探讨一个合适的方案解决这个问题。

blackfriday 这个项目为例,进行下面的工作。

1、 首先,fork一份到自己的空间,https://github.com/hebl/blackfriday。 2、在本地计算机上clone一个本地代码树。

git clone git@github.com:hebl/blackfriday.git

3、分支策略,master分支是hebl/blackfriday.git的主分支,origin分支跟踪原始的russross/blackfriday分支,再建立一个自己的功能分支 custom

建立本地功能分支:

git checkout -b custom

切回主分支,并建立对原始分支的跟踪:

git checkout master
git remote add source git@github.com:russross/blackfriday.git

拉回原始分支的最新版本,并且合并原始的主分支到本地主分支:

git fetch source
git merge source/master

上述步骤可以经常用来更新主分支到最新版本。

切换到功能分支,进行开发,开发结束后,可以提交到版本库,需要与主版本库合并的时候,只需要在master分支上fetch source, merge source/master,和在功能分支上merge master即可。