git
git命令
- 初始化一个仓库:
git init
- 查看分支:
git branch
- 将已修改或未跟踪的文件添加到暂存区:
git add [file]
或git add
- 提交至本地仓库:
git commit -m
"提及记录xxxx' - 本地分支推送至远程分支:
git push
- 查看当前工作目录和暂存区的状态:
git status
- 查看提交的日志记录:
git log
- 从远程分支拉取代码:
git pull
- 合并某分支(xxx)到当前分支:
git merge xxx
- 切换到分支xxx:
git checkout xxx
- 创建分支xxx并切换到该分支:
git checkout -b xxx
- 删除分支xxx:
git branch -d xxx
- 将当前分支到改动保存到堆栈中:
git stash
- 恢复堆栈中缓存的改动内容:
git stash pop
git merge和git rebase的区别
- 相同点:都可以从一个分支获取内容然后合并到当前分支
- 不同点:
- git merge 会自动创建一个新的 commit ,如果合并遇到冲突的话,只需要修改后重新commit
- 优点:能记录真实的 commit情况,包括每个分支的情况
- 缺点:会产生很多的commit,过多的commit可能无意义,影响阅读
- git rebase 会合并之前的commit历史
- 优点:简洁提交历史,去掉了merge产生的commit
- 缺点:如果因为合并产生了新的代码问题,不容易定位了,因为覆盖了历史信息
- git merge 会自动创建一个新的 commit ,如果合并遇到冲突的话,只需要修改后重新commit
- 场景:
- 当需要保留详细的合并信息,建议使用git merge,又起是要合并到master上面
- 当发现自己修改某个功能时提交比较频繁,并觉得没有必要记录过多的commit,可以尝试使用git rebase
对gitFlow的理解
gitFlow重点解决的是由于源代码在开发过程中的各种冲突导致开发活动混乱的问题。重点是对各个分支的理解。
master:主分支
develop:主开发分支,平行于master分支
featrue:功能分支,必须从develop分支建立,开发完成以后合并到develop分支
release发布分支,发布的时候用,一般测试时候发现的bug在该分支修复,从develop分支建立,完成后合并回develop以及master分支
hotfix:紧急修复线上bug使用,必须从master分支建立,完成后合并回develop和master分支