合并commits
合并commits
含义和概念
自动合并 : git merge 不需要git commit
手动合并 (提交): 当自动合并发生冲突时,手动解决冲突,再进行分支合并 需要git add && git commit
放弃合并 : git merge --abort
手动合并 (提交): 当自动合并发生冲突时,手动解决冲突,再进行分支合并 需要git add && git commit
放弃合并 : git merge --abort
合并发生冲突
- 当对一行有两次不同的修改的时候,就会产生冲突
- 这时需要操作者自己手动做出选择
git图形化界面 插件
特殊情况
1.head 领先于feature 此时的合并是空操作
2.head 落后于featuer 此时的合并是head和master一起跑到feature的commit上 fast-forward 快速前移 : 当远程仓库的commit比本地新时,当你合并时会有此种情况
3.冲突 此时需要先解决冲突,再手动合并
2.head 落后于featuer 此时的合并是head和master一起跑到feature的commit上 fast-forward 快速前移 : 当远程仓库的commit比本地新时,当你合并时会有此种情况
3.冲突 此时需要先解决冲突,再手动合并
feature branching 是什么意思
- 新建一个分支,用于临时修改代码,改bug
- 使用git开展工作的一种方式
当需要新建一个文档(doc)功能,feature branching 的大概工作流程是什么样子的?
- 每个功能新开一个分支,把分支合并到主分支,再删除原来的分支
1.git checkout -b doc
2.写功能
3.自检 ,让团队其让人检查
a.上传远程 git origin doc
b.让同事review 命令:git pull && git checkout doc
4.(正常)提交 命令: git checkout master && git pull && git merge doc
5.删除doc分支 git branch -d doc
6.删除远程doc分支 git push origin -d doc
2.写功能
3.自检 ,让团队其让人检查
a.上传远程 git origin doc
b.让同事review 命令:git pull && git checkout doc
4.(正常)提交 命令: git checkout master && git pull && git merge doc
5.删除doc分支 git branch -d doc
6.删除远程doc分支 git push origin -d doc
关于git add
1. add + . 全部暂存
- add 添加的是文件改动,而不是文件名
查看日志
- git log
- q 退出
查看详细日志 git log -p
查看简要统计信息 git log --stat
查看当前的commit git show
查看任意一个 git show commitId
查看commit中的文件 git show commitId 文件名
查看简要统计信息 git log --stat
查看当前的commit git show
查看任意一个 git show commitId
查看commit中的文件 git show commitId 文件名
查看代码改动
- 改动 区别
git diff --stages(暂存区和本地仓库) 暂存区和上一条提交的区别
git diff 工作目录和暂存区的区别
git diff head 工作目录和本地仓库最新提交的区别 (head可以更改为commitId,可以和任意一次提交之前的区别(改动))
git diff 工作目录和暂存区的区别
git diff head 工作目录和本地仓库最新提交的区别 (head可以更改为commitId,可以和任意一次提交之前的区别(改动))
rebase ,merge
什么是rebase? 作用是什么?
- 变基 改变基础
- 作用:从分支合并到主分支(相当于将分支复制到主分支上,不是合并)
- 命令
1. 合并 git chchkout master && git merge branch1
- 变基 git checkout branch1 && git rebase master
merge与rebase异同
相同点
- 当前分支,包含了所有的历史commit
不同点
merge只增加一个commit rebase 新增多个
merge合并的是一个效果 rebase直接在后边粘贴,始终是一条线
merge合并的是一个效果 rebase直接在后边粘贴,始终是一条线