第4章
git restore 文件名:当还没有提交到Index时,撤销当前做的修改,working directory, index, object database当前一样;想象与git add相反
git restore --staged 文件名:当把修改提交到Index后,撤销所做的修改,index, object database一样,working directory不一样;想象与git commit相反
git rm 文件名:将文件从index和working directory中移除掉,注意,如果是untracked的文件,可以不通过git命令删除,直接用linux的rm命令删除即可;如果对tracked的文件用linux的rm删除,则会有点问题,可以执行git add -u 文件名来更新一下index,因为你刚刚直接删除文件后index中的没有删除,所以要更新一下。也就是说,git rm只用于tracked的文件。
git mv 文件名a 文件名b:将文件从文件名a改为文件名b,也只用于tracked的文件。
git commit --amend -m "新的注释说明":修改所在分支的最后一次提交的信息,注意点:只能修改最后一次提交的;只能当index没有东西的时候执行,不然会把你在index暂存的一起给提价了,因为这个命令的原理是把object database中的内容复制到index,然后再做一次提交,覆盖掉上一次的提交,与上一次提交的元数据里面就只有注释信息的差异,时间、提交人这些都不会改变。
git branch -m(--move) 新的分支名:将当前的分支名改为新的分支名;git branch -m 老的分支名 新的分支名:不管你现在在哪个分支,将老的分支名修改为新的分支名
head:代表当前分支的最后一次的提交。head~1代表父亲提交节点,head~2代表父亲的父亲提交节点,以此类推。head~1与head~等价。如果当前处在合并分支的节点,则它会有两个父亲节点,则head^1代表第一个父亲,即proposer,head^2代表第二个父亲,即proposee。有了这个便利的写法,就可以用在git switch, git diff, git reset等上面。
git reset 之前的某一提交节点:撤销改变到之前的某一个节点,这个节点可以任意。常用的有3个flag,--soft:object database变为你的参数节点的内容,working directory和index变为当前节点的内容,你还有反悔的机会(再提交就相当于反悔了);--mixed(这是默认选项):object database和index变为你的参数节点的内容,working directory变为当前节点的内容,你也还有反悔的机会(add一次,提交一次就相当于反悔了);--hard:直接回到你的参数节点的内容,三个区域的内容都为你的参数节点的内容,这次就没有反悔的机会了。
git revert head:用于退回到上一次提交的状态。这个命令本质上又多出了一条提交记录,只是回到了上一次提交的状态,跟git reset区别还是挺大的,这个命令不会擦除历史提交,而git reset会。
标签:index,Head,git,head,Git,提交,分支,节点,First From: https://www.cnblogs.com/tan-cong/p/16990361.html