git实践经验总结

作者: coderWen | 来源:发表于2016-03-28 10:25 被阅读1358次

分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:


分支推送策略

但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?

  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
    总之,就是在Git中,分支完全可以在本地自己藏着玩,是否推送,视你的心情而定!

合并分支历史信息遗留问题

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
如果要保留需要在合并时加上--no-ff参数
git merge命令用于合并指定分支到当前分支(意思在合并前需要切换到主分支)
如,
git merge dev (普通合并)
git merge --no-ff -m "merge with no-ff" dev (保留分支信息合并)

查看分支详细情况命令
git log --graph --pretty=oneline --abbrev-commit


冲突解决:

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:

Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

需要解决冲突然后保存

多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

按本管理

发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

附录

廖雪峰Git教程

相关文章

  • git实践经验总结

    分支策略 在实际开发中,我们应该按照几个基本原则进行分支管理:首先,master分支应该是非常稳定的,也就是仅用来...

  • git回顾

    # git经验总结 目录: 1.安装git 2.配置git 3.helloworld 4.关联到GitHub 5....

  • git 实践(一) pull的使用

    git 实践(一) pull的使用git 实践(二) push的使用git 实践(三) 建立关联分支 前言 工作中...

  • Git 基础实践

    Git基础实践 配置 SSH vs Http(s) git configgitlab/github中的git co...

  • git操作

    git规范 Git 使用规范流程 团队中的 Git 实践 Git: 教你如何在Commit时有话可说 Git工作流...

  • 电动车充电器控制器维修经验总结 本人亲自实践记录

    电动车充电器控制器故障维修经验总结 本人亲自实践记录 电动车维修经验总结<一>电动车全车没电。 怎样处理 (1)检...

  • Guava Cache最佳实践

    项目中经常使用Guava Cache,根据经验总结了一些最佳实践。 示例代码 快速有效的使用示例如下: 最佳实践 ...

  • 助益性的人际关系

    罗杰斯从多年的实践经验总结出,只要为当事人提供有用的人ji

  • Git实践

    1.概念:untracked:没有被add过的新文件。not staged:add过的文件,但再次修改没有add,...

  • Git实践

    转载 :作者 [zhangwang] @(前端开发)[Git|工具]以前也看过一些关于git的视频,可是觉得自己一...

网友评论

    本文标题:git实践经验总结

    本文链接:https://www.haomeiwen.com/subject/wvejlttx.html