Git 使用规范流程

Git 使用规范流程

团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。
否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。

第一步:拉取代码
  • 普通取代码
    $ git clone git@code.aliyun.com:bingtuan/xxx.git

  • 指定分支maindev取代码
    $ git clone -b maindev git@code.aliyun.com:bingtuan/xxx.git

第二步:创建分支

首先,每次开发新功能,都应该新建一个单独的分支。
1. 获取开发分支的最新代码
$ git checkout maindev
$ git pull

2.新建一个开发分支xxfeature_20180829
$ git checkout -b xxfeature_20180829

第三步:提交分支commit

分支修改后,就可以提交commit了。
$ git add --all
$ git status
$ git commit --verbose

  • git add 命令的all参数,表示保存所有变化(包括新建、修改和删除)。从Git 2.0开始,all是 git add 的默认参数,所以也可以用 git add . 代替。
  • git status 命令,用来查看发生变动的文件。
  • git commit 命令的verbose参数,会列出 diff 的结果。也可以使用git commit -m "xxxxxx" 直接commit,不会有以下第四步。
第四步:撰写提交信息

提交commit时,必须给出完整扼要的提交信息,下面是一个范本。

#
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch xxfeature_20180829
# Changes to be committed:
#       new file:   html/git_bingtuan_use.html
#
# ------------------------ >8 ------------------------
# Do not touch the line above.
# Everything below will be removed.
diff --git a/html/git_bingtuan_use.html b/html/git_bingtuan_use.html
new file mode 100755
index 0000000..f7fc981
--- /dev/null
+++ b/html/git_bingtuan_use.html
...
第五步:与主干同步

分支的开发过程中,要经常与开发主分支保持同步。
$ git fetch origin
$ git rebase origin/maindev

  • git pullgit fetch都是从远程获取最新版本到本地,但git fetch不会自动merge;
  • git rebasegit merge都有可能产生冲突,但是解决的方法不一致;

rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用git-add命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:
$ git rebase --continue
这样git会继续应用(apply)余下的补丁。
在任何时候,你可以用--abort参数来终止rebase的行动,并且xxfeature_20180829 分支会回到rebase开始前的状态。
$ git rebase --abort

merge的过程中,也许会出现冲突(conflict),此时Git会merge完成后会列出结果,Auto merge or conflict文件,此时需要解决冲突,解决完之后使用以下命令重新commit;
$ git add git_bingtuan_use.html
$ git commit -m "conflict fixed"
以下冲突示例,解决的过程中需要注意不要误删其他同事代码

团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。
<<<<<<< HEAD
每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。.
=======
否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。
>>>>>>> xxfeature_20180829

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,此时修改请注意不要误删代码,此时只需要被认为需要留下的即可,修改结果如下:

团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。
否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。
第六步:推送到远程仓库

提交commit后,就可以推送当前分支到远程仓库了。
$ git push origin xxfeature_20180829
如果本地reset或者合并commit等其他的操作,导致head指向变更,可以在push后加–force强制推送。

第七步:发出Merge Request

登录到code.aliyun.com发起Merge Request到maindev,然后需要相关人士进行代码review,确认可以合并到maindev。

第八步:上线流程
  • 测试环境从maindev拉取测试代码;
  • 预发需要将代码merge到master分支,预发与生产环境只允许在master分支;
  • 上线完成后以master分支的代码checkout一个release_vx.x.x分支(x.x.x相关规则参考自己的项目)。最终将release_vx.x.x分支分支推送到远端仓库。
第九步:修复线上bug

以master分支代码checkout出hotfix_20180829,修改代码后参考第六步,第七步,第七步中发起Merge Request到master。上线完成后将该部分修改代码分别merge到maindev和相关release_vx.x.x分支。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值