求个Git学习的文章呗。。。。
不要那种教怎么用命令行的文章,那种没用,现用现查都来得及。
我想要的是如何用Git管理好团队,什么时候创建分支?为什么要创建分支?什么时候合并?如果多人需要修改同一个文件的时候,如何合并保证所有人的修改都能被保护好?
3楼 @fengyie007 在哪?
3楼 @fengyie007 我是想说有中文吗?我的E文水平,看个技术文档还凑活,看这种纯描述的东西就没戏了
6楼 @morpheus1984 是啊?我去买本,卓越就有,刚才还忧郁要不要买呢
git其实很简单,但是跟你以前用的东西都不一样,而且很难出现真的代码丢失,多半还是你没弄明白怎么用而已
先努力学明白吧,然后你不会后悔的
我想要的是如何用Git管理好团队,什么时候创建分支?为什么要创建分支?什么时候合并?如果多人需要修改同一个文件的时候,如何合并保证所有人的修改都能被保护好?
公司开发,git一定要搭配gerrit使用, gerrit不仅仅用来做review,还充当了git remote server, CI (搭配Jenkins), 权限管理, Merge, QA, Release等角色。 remote端的branch不要多,有master/dev, stable/release之类的几个就够了, master/dev作为开发主线, stable/release交给QA管理,具体发布的时候在stable/release branch上加git tag.
对于个人的开发端, git branch随便建,鼓励topic branch, 也就是每个bug,每个feature都有自己的branch, 随时commit进local git repo. bug或feature完成了就先rebase成1个commit然后push到gerrit (git push gerrit HEAD:refs/for/master).
至于合并,git的merge从来就不用人去关心,gerrit上的commit如果通过了review, CI test和QA verify, 那么gerrit可以被配置成自动cherry-pick这个commit至主分支。
稍微转变下观念,特别是对branch和merge的理解,几个指导原则:
- branch理解成C的指针, 多用topic branch (git fetch origin && git checkout -b topic origin/master)
- local master branch保持只读,或者不建立local master, 只用origin/master 和git fetch origin, rebase时(git rebase -i origin/master)
- 优先用cherry-pick,少用手动merge
- 随时commit
- push前rebase
- 如果项目包含多个git repo (像Android, Chrome那样级别的)可以用git submodule或repo来管理