前言
最近从 SVN 转到 Git, 在这里总结两个新手向 Git 工作流, 帮助从 SVN 过渡到 Git, 等下面两个流都玩6之后, 就可以尝试更"高端"的
集中式工作流
核心: 只存在一个分支 master
特点: 和 SVN 的流几乎一样
成员首次拉取项目
$ git clone <url>
成员将本地提交推送到中央仓库
$ git push origin master
如果本地和远程存在分歧, Git会拒绝操作, 这时我们拉取, 同时变基
$ git pull --rebase origin master
如果存在冲突, 会输出如下信息CONFLICT (content): Merge conflict in <some-file>
手动修复冲突, 同时随时用 git status 命令查看冲突文件
$ git status
修复冲突之后
$ git add <file>
$ git rebase --continue
重复这个过程, 直到没有任何冲突, 推送到远程
$ git push origin master
如果你搞不定冲突, 或者搞砸了, 不要惊慌, 执行下面的命令, 退回到 git pull --rebase 之前的状态
$ git rebase --abort
功能分支工作流
核心: 存在一个主分支 master, 开发新功能和bug修复都新开一个分支, 使用 pull request 的方式并入主分支
特点: 简单的分支和 pull request
新建一个分支
$ git checkout -b feature master
// 上面一句等于下面两句
$ git branch feature master
$ git checkout feature
在这个分支中修改提交...
$ git status
$ git add
$ git commit
将分支同步到中央仓库
$ git push -u origin feature
功能开发完成后, 在项目页面发起 pull request (merge request)
确认可以合并时, 合并, 删除本地和远程功能分支
$ git branch -d feature
$ git push origin --delete feature