git reset  (不写使用默认参数mixed)

  • --hard:重置位置的同时,直接将 working Tree工作目录index 暂存区repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。

  • --soft:重置位置的同时,保留working Tree工作目录index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。

  • --mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。

 

git rebase

一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作。

总结:不管当前分支是否只有自己在使用,在rebase之后,需要强制推送到远端分支时,使用  git push --force-with-lease origin feature  参数来保证分支安全

 

git checkout [HEAD^, commitId]

移动HEAD指针到指定的提交版本。

  • HEAD是指当前的快照,这个命令主要配合reset--hard,--mixed--solf三个参数对对本次的修改进行处理
  • HEAD~1指回退一个快照,可以简写为HEAD~
  • HEAD~2指回退两个快照
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐