gitpro之基础撤回操作

checkout

  • git checkout branchName 切换分支
  • git checkout -b newBranch 创建并切换分支
    等同于
git branch newBranch 
git checkout newBranch

checkout的作用机制是改变.git/HEAD文件夹ref的指向。打开文件可以看到HEAD的内容直接就是版本号了。切换到某个版本之后你做的所有事情都不会被保存,除非你重新切到最新的master。

  • git checkout checkout某个版本出来,如果在当前做了变更,就不会变化。可以不加file,那就不是只变这个文件了。
    当单独checkout出某个文件的旧版本之后,他的状态会变成modified,这个时候可以重新提交他来进行一次类似于revert to version的操作。同样,使用git checkout HEAD file可以让它回到最新状态。

WARNING: checkout到某个版本会导致当前已经commit的文件完全消失,然后完全地退到那个版本,没有任何挽救的机会。
质疑上述:git checkout master就可以跑到最新

git revert

git revert 直接丢弃某个提交,然后重新commit。
想回退最新的一个commit,直接执行git revert HEADHEAD代表着最新的版本。

git reset

  • git reset file让stage区的文件回滚到和head一样的版本,working space的文件不会动到,也就是说这是一个undo add。可以不加file,那就回滚整个stage里的文件。
  • git reset --hard相当于svn的revert。把工作区和暂存区全部回到head版本。
    以下的操作最好不要做,反正svn里面也没有。
  • git reset 把暂存区的文件reset到某个commit
  • git reset --hard同理,把工作区也给覆盖了
    不要reset已经已交过的commit

git clean

清除untracked文件。

  • git clean -n 查看什么会被clean
  • git clean -f -f代表着force,也就是执行clean操作。被.ignore标记的文件不会被clean。
  • git clean -f 单纯地clean某个文件夹
  • git clean -df 移除untracked文件夹和文件
  • git clean -xf 暂时搞不明白,说是会同时删除git平时会igonre的文件

你可能感兴趣的:(gitpro之基础撤回操作)