Git使用规范

Author Avatar
llp 11月 24, 2016
共计 740 字  |   预计阅读 3 分钟  

自定义的一套Git使用规范,感谢超哥,沿用至今。

开发方式

使用fork + pull request的开发流程。

初始配置

首先将自己的公钥加入到github中

fork 主仓库代码后clone 下来

添加公共仓库到remote里, 名字命名为upstream

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# clone fork 仓库代码
git clone your_fork_ssh_src
# 添加远程仓库到remote 里
git remote add upstream public_ssh_src
# 查看remote
git remote -v
origin your_fork_ssh_src (fetch)
origin your_fork_ssh_src (push)
upstream public_ssh_src (fetch)
upstream public_ssh_src (push)

分支使用

git 鼓励多用分支,所以我们每天开发的新功能建议使用分支来区分,不要所有功能都放在一个分支上开发,分支命名规则如下:

  1. 新功能命名: feature-xxx
  2. bugfix命名: bugfix-xxx

这样能解决一个问题,比如你开发新功能到一半,然后突然让你去修复一个紧急bug,如果你开发新功能的时候使用了feature分支,你只需要把的修改提交或者放到stash里就行,然后从master上切分支修复bug就行了,如果你没有切分支,那就很尴尬了。

master分支只用做更新远程master,每次开始工作前的第一条命令应该是:

1
2
3
# 切换到master分支,并且把最新的代码同步下来
git checkout master
git pull --rebase upstream master

计划今天要做的事和需要发布的内容,建好相应的分支:

1
2
3
4
5
# 新建feature分支
git checkout -b feature-xxx
# 新建bugfix 分支
git checkout -b hotfix-xxx

coding…

如何将代码合并到公共代码库

功能开发完成后,你只需要push到github,然后在github上提pull request到公共仓库的master就行。

需要的配置:

1
2
3
4
5
6
git config -e
# 然后添加如下代码到文件末尾
# push 的时候之后将当前的分支push到远程,不会push所有分支
[push]
default = current

push 代码:

1
2
3
4
git push
# 注意你本地可能会无法push,这时候你需要明白你本地代码是否
# 是最新的,确定的话只需要使用 git push -f将代码提交到远端

合并提交历史和修改commit msg:

功能开发完成后,你的提交历史也许会很乱,这个时候你需要使用rebase命令整理提交历史和commit msg:

1
git rebase -i commit_id

注意: 使用rebase 命令会改写历史,所以rebase操作一定是在本地操作,如果你的代码已经push到远程并且和别人协作了就一定不能进行rebase操作了。(目前我们不会出现这个问题)

多人协作问题(为后期做准备)

多人协作需要将其中一个人的feature分支作为主要分支来进行开发。

1
2
3
4
5
6
7
8
9
10
11
# 添加协作人的remote
git remote add company company_ssh_src
# fetch分支下来
git fetch company feature-xxx:feature-xxx
# commit 以后先pull rebase
git pull --rebase company feature-xxx
# push
git push company feature-xxx:feature-xxx

总结

需要熟悉的命令有remote, pull, push, rebase, fetch, checkout, stash