合并commits

合并commits

含义和概念

自动合并 : git merge 不需要git commit
手动合并 (提交): 当自动合并发生冲突时,手动解决冲突,再进行分支合并 需要git add && git commit
放弃合并 : git merge --abort

合并发生冲突

  • 当对一行有两次不同的修改的时候,就会产生冲突
  • 这时需要操作者自己手动做出选择

git图形化界面 插件

特殊情况

1.head 领先于feature 此时的合并是空操作
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

关于git add

1. add + . 全部暂存
  1. add 添加的是文件改动,而不是文件名

查看日志

  • git log
  • q 退出

查看详细日志 git log -p
查看简要统计信息 git log --stat
查看当前的commit git show
查看任意一个 git show commitId
查看commit中的文件 git show commitId 文件名

查看代码改动

  • 改动 区别

git diff --stages(暂存区和本地仓库) 暂存区和上一条提交的区别
git diff 工作目录和暂存区的区别
git diff head 工作目录和本地仓库最新提交的区别 (head可以更改为commitId,可以和任意一次提交之前的区别(改动))

rebase ,merge

什么是rebase? 作用是什么?

  • 变基 改变基础
  • 作用:从分支合并到主分支(相当于将分支复制到主分支上,不是合并)
  • 命令

1. 合并 git chchkout master && git merge branch1
  1. 变基 git checkout branch1 && git rebase master

merge与rebase异同

相同点
  • 当前分支,包含了所有的历史commit
不同点

merge只增加一个commit rebase 新增多个
merge合并的是一个效果 rebase直接在后边粘贴,始终是一条线


本文链接:【原创】认识git(3) - http://myags.cn/index.php/18.html

版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 拾穗儿's 所有,未经允许不得转载!
最后修改:2020 年 04 月 19 日 02 : 51 PM
如果觉得我的文章对你有用,请随意赞赏