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

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

官网文档

Git标签

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

  3. 三个blob对象 [保存文件快照]

  4. 一个树对象 [记录目录结构和blob对象索引]

  5. 一个提交对象 [包含树对象指针和所有提交信息]

  6. 创建分支

  7. git branch newbranch

  8. git checkout -b branchname 创建一个分支,并切换到该分支上面

  9. HEAD特殊指针,指向当前所在的本地分支

  10. 分支切换

  11. git checkout branchname

  12. 分支切换,git会重置工作目录

  13. 分支切换会改变工作目录的内容,git会把该分支上最后一个提交快照给予当前的工作目录

  14. git commit提交之后当前分支自动向前移动

  15. 分支合并

  16. git merge branchname

  17. 冲突解决,必须选择由=====分割的上部分内容或者下部分内容

  18. git mergetool可视化合并工具

  19. 查看当前分支列表

  20. git branch 带有*星号表示当前所处的分支

  21. git bracnh -v 查看每一个分支的最后一次提交

  22. git branch --merged 查看已经合并了的分支

  23. git branch --no-merged查看没有合并的分支

  24. 分支管理

  25. 长期分支

    1. 保留完全稳定的代码
  26. 特性分支 [短期分支]

    1. 实现单一的功能所需
    2. 紧急修复
  27. 远程分支

    1. git ls-remote origin显示远程分支的完整列表
    2. 远程跟踪分支
      1. 是远程分支状态的引用
      2. 不能外部移动的本地分支 <有网络操作时候会自己移动>
      3. git fetch origin同步远程服务器数据到本地 [就是抓取本地没有的远程服务器数据]
  28. 变基

  29. 回顾,git merge的三方合并

    1. 分别合并的两个分支
    2. 一个两者最近的公共祖先
  30. git rebase origin 将某一个分支上的修改移到另一个分支上

  31. 基变的原理

    1. 先找出两个分支的最近公共祖先
    2. 对比当前分支和最近公共祖先的提交历史
    3. 提取修改的补丁作为临时文件
    4. 当前分支指针转移到合并数据的分支上
    5. 把临时文件一次应用
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐