转自: https://segmentfault.com/q/1010000000181403
http://blog.csdn.net/waterforest_pang/article/details/9762863
git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下:
去自己的工作分支
$ git checkout work
工作....
提交工作分支的修改$ git commit -a
回到主分支$ git checkout master
获取远程最新的修改,此时不会产生冲突$ git pull
回到工作分支$ git checkout work
用rebase合并主干的修改,如果有冲突在此时解决$ git rebase master: (分工尽量明确,少造成多人编辑同一个文件的情况)
回到主分支$ git checkout master
合并工作分支的修改,此时不会产生冲突。$ git merge work
提交到远程主干$ git push
这样做的好处是,远程主干上的历史永远是线性的。每个人在本地分支解决冲突,不会在主干上产生冲突。
当项目进行到里程碑节点的时候,打tag:
打标签
git tag -a 0.1.3 -m “Release version 0.1.3″
详解:git tag 是命令
-a 0.1.3是增加 名为0.1.3的标签
-m 后面跟着的是标签的注释
打标签的操作发生在我们commit修改到本地仓库之后。完整的例子
git add .
git commit -m “fixed some bugs”
git tag -a 0.1.3 -m “Release version 0.1.3″
分享提交标签到远程服务器上
git push origin master
git push origin --tags
–tags参数表示提交所有tag至服务器端,普通的git push origin master操作不会推送标签到服务器端。
删除标签的命令
git tag -d 0.1.3
删除远端服务器的标签
git push origin :refs/tags/0.1.3