一般使用以下分支模型来开发项目,能够使得本地 的相关修改基于辅服务器的最新版本,避免冲突。
master
主分支:用于跟服务器同步,永远不要在里头更新,只做:git pull
feature
feature 分支:用于开发某一个feature所建立的新分支
feature/bugfix: 用于fix某一个feature 的bugfix
upstream
upstream/feature 或者 upstream/feature/bugfix:用于整理代码、检测代码并提交到服务器中
以audio driver 模块为例
w@w:~$ git brach
dev/audio/mfd
dev/audio/codec
dev/audio/es305b
dev/audio/pa
dev/audio/jack
dev/audio/pm
dev/audio/codec/fix1
dev/audio/codec/fix2
* master
upstream/audio/codec/fix1
upstream/audio/codec/fix2
实现步骤:
1 建立master 分支
git clone
[email protected]:audio.git
2 建立dev分支
git brach dev/audio/codec master
如需解决bug,则可建立分支 dev/audio/codec/fix1, dev/audio/codec/fix2
3 提交代码
3.1 把远程的master分支拉到本地master分支
git pull origin master:master
3.2 基于最新的开发分支创建一个upstream分支,这里也算是对dev分支的一个备份,确保不会对dev分支进行误操作
git checkout -b upstream/audio/codec dev/audio/codec
3.3 基于最新的master分支重建upstream分支,确保所有的修改都是在master的基础之上,这个时候可能需要Fix up conflicts
git rebase --onto master --root
3.4 提交代码到服务器
git push origin upstream/audio/codec:master
3.5 合并完成后,需要整理好代码,整理本地代码可以用git rebase
git rebase -i commit^
3.6 检查代码可以用git format-patch产生Patch, 如果是linux 内核开发,可用scripts/checkpatch.pl检查
git format-patch -1 commit // 产生Patch
./script/checkpatch.pl --strict xxx.patch // 检查代码是否符合Linux标准风格