不太有条理,踩坑过程随时记录

使用笔记

  1. workflow可以参看1

  2. 文件结构如图

  3. git resetgit revertgit checkout的区别

  • 功能描述2

    CommandScopeCommon use cases
    git resetCommit-levelDiscard commits in a private branch or throw away uncommited changes
    git resetFile-levelUnstage a file
    git checkoutCommit-levelSwitch between branches or inspect old snapshots
    git checkoutFile-levelDiscard changes in the working directory
    git revertCommit-levelUndo commits in a public branch
    git revertFile-level(N/A)
  • commit级别改动3

headindexwork dirwd safe
reset –softREFNONOYES
resetREFYESNOYES
reset –hardREFYESYESNO
checkoutHEADYESYESYES
  • file Level级别改动3
headindexwork dirwd safe
resetNOYESNOYES
checkoutNOYESYESNO

“head”一列中的“REF”表示该命令移动了HEAD指向的分支引用,而“HEAD”则表示只移动了HEAD自身。 特别注意 “wd safe” 一列,YES表示不会动你在work dir的修改,NO代表会动你在work dir的修改

  1. 关于git rebase[^5]
    1. 用来合并多个commit为一个完整commit,保持整洁
    2. 用来将某一段commit粘贴到另一个分支上
    3. 注意:团队合作的话,不要rebase任何已经提交到公共仓库中的commit

Tips

  1. 实现一个功能,或者写完一个函数就提交一个commit,方便描述和管理
  2. 不要做任何备份(stash),你会在本地仓库建立几何倍数的本地仓库,直到自己无法维护为止4
  3. 善用.gitignore,眼不见心不烦

VS Code插件

  1. Git History可视化查看版本历史,方便比较和回退

其他实用网站资料

  1. xirong/my-git: Individual collecting material of learning git(有关 git 的学习资料)
  2. Git 教程 | 菜鸟教程

Reference


  1. 深入理解学习Git工作流 - xirong - 博客园 ↩︎

  2. git的撤销操作:reset、checkout和revert - SegmentFault 思否 ↩︎

  3. git的reset和checkout的区别 - SegmentFault 思否 ↩︎

  4. Git 使用指南 培养使用Git的好习惯 - 简书 ↩︎