​这是个上一篇的笔记 ,个人觉得最好的笔记是官网的,我只是做一个自己的notes​

​​面试备战出征之Git分布版本控制 (一)​​

​官网文档​

文章目录

  • ​​`这是个上一篇的笔记 ,个人觉得最好的笔记是官网的,我只是做一个自己的notes`​​
  • ​​Git标签​​
  • ​​Git别名​​
  • ​​Git分支​​

Git标签

  1. 给历史中的某一个提交打上标签,以示重要
  2. 查看标签
  3. ​git tag​
  4. 正则表达式查询 ​​git tag -l '*v1'​
  5. 查看标签信息 ​​git show tagname​
  6. 创建标签 对当前的提交打上标签
  1. 轻量标签
  1. ​git tag tagname​​ [不需要参数选项指定]
  1. 附注标签
  1. ​git tag -a v1.0 -m "message"​
  1. 对过去的提交打上标签
  2. ​git tag -a tagname 提交的校验码​​ 校验码很长,一般只需要写前五六位字母就可以,基本是唯一的,git可以准确识别到该次提交是哪一个提交
  3. 推送标签到远程git仓库
  4. 因为​​git push​​不会推送标签,你需要新的命令
  5. ​git push origin tagname​​ [推送单个标签]
  6. ​git push origin --tags​​ [推送全部标签到服务器]
  7. 删除本地标签
  8. ​git tag -d tagname​
  9. ​git push origin :refs/tags/tagname​​更新远程仓库标签删除
  10. 检出标签
  11. ​git checkout tagname​
  12. 若检出的标签处于分离头指针状态detached head,则对标签下的内容做更改,再次提交的数据不属于任何分支 <提交无效,需要另外创建分支>

Git别名

  1. 编写配置文件
  1. ​git config --global alias. ci commit​​​ 使用 ​​git ci​
  2. ​git config --global alias. unstage 'reset HEAD --'​​取消别名使用

Git分支

  1. git的提交对象
  1. 作者姓名,邮箱
  2. 提交输入的提示信息
  3. 指向父对象的指针 [首次提交没有父对象,很容易理解啊]
  1. git仓库的五个对象
  2. 三个blob对象 [保存文件快照]
  3. 一个树对象 [记录目录结构和blob对象索引]
  4. 一个提交对象 [包含树对象指针和所有提交信息]
  5. 创建分支
  6. ​git branch newbranch​
  7. ​git checkout -b branchname​​ 创建一个分支,并切换到该分支上面
  8. HEAD特殊指针,指向当前所在的本地分支
  9. 分支切换
  10. ​git checkout branchname​
  11. 分支切换,git会重置工作目录
  12. 分支切换会改变工作目录的内容,git会把该分支上最后一个提交快照给予当前的工作目录
  13. ​git commit​​提交之后当前分支自动向前移动
  14. 分支合并
  15. ​git merge branchname​
  16. 冲突解决,必须选择由​​=====​​分割的上部分内容或者下部分内容
  17. ​git mergetool​​可视化合并工具
  18. 查看当前分支列表
  19. ​git branch​​ 带有*星号表示当前所处的分支
  20. ​git bracnh -v​​ 查看每一个分支的最后一次提交
  21. ​git branch --merged​​ 查看已经合并了的分支
  22. ​git branch --no-merged​​查看没有合并的分支
  23. 分支管理
  24. 长期分支
  1. 保留完全稳定的代码
  1. 特性分支 [短期分支]
  1. 实现单一的功能所需
  2. 紧急修复
  1. 远程分支
  1. ​git ls-remote origin​​显示远程分支的完整列表
  2. 远程跟踪分支
  1. 是远程分支状态的引用
  2. 不能外部移动的本地分支 <有网络操作时候会自己移动>
  3. ​git fetch origin​​同步远程服务器数据到本地 [就是抓取本地没有的远程服务器数据]
  1. 变基
  2. 回顾,​​git merge​​的三方合并
  1. 分别合并的两个分支
  2. 一个两者最近的公共祖先
  1. ​git rebase origin​​ 将某一个分支上的修改移到另一个分支上
  2. 基变的原理
  1. 先找出两个分支的最近公共祖先
  2. 对比当前分支和最近公共祖先的提交历史
  3. 提取修改的补丁作为临时文件
  4. 当前分支指针转移到合并数据的分支上
  5. 把临时文件一次应用