git使用总结

1.     神器:不懂的用法直接githelp cmd。cmd为你想查看的命令。

2.     从仓库中拉出所有文件

简单理解,等同于不小心把文件全部删除了,只剩下仓库。简单地执行gitreset –hard即可;

3.     git reset的三种模式

要理解reset的模式,先明确git的提交流程:

1.      修改工作树

2.      git add,对当前修改生成快照

3.      git commit,提交当前的修改。

当然,通常情况下,可以用git commit -a,相当于同时做第2、3步。

--soft:不修改工作树中的文件和仓库索引,保留了add生成的快照,只是退回了commit的过程(相当于退回到commit前,add后);

--mixed:不修改工作树,修改了仓库索引,不保留快照,相当于退回了commit和add两个过程;

--hard:修改工作树,相当于所有东西,包括工作树和仓库,原原本本地退回到指定的<commit>

4.     git回退版本——恢复所有文件

由于git 没有svn方便的update to revision功能,所以只能另寻替代功能了。

如果你要干干净净地回到之前某个版本,在此之后的所有提交都不需要保留。那么简单地进行reset即可:

$ git reset --hard <commit>

$ git checkout <commit>

<commit>为你要退回的版本号。但是如果你只是想回去查看一下以前的代码,看完后需要回到最新的HEAD上来,有两种方法:一是reset前先记住当前HEAD的commit号,用gitcheckout命令时也会有提示当前HEAD号的功能。当然这样做有风险,万一忘了HEAD号退不回去了,那就万事over了;二是gitreset前先建一个新的branch,在新branch上随便你折腾,最后删除这个不用的branch即可;推荐用二。

5.     git回退版本——恢复单个文件

因为gitreset在带--hard的情况下不能加目录名,所以此时只能是gitcheckout派上用场了。

丢弃当前所有更改,回到HEAD的版本:

$ git checkout <path>

回到之前的某个版本

$ git checkout <commit> <path>

注意:此时对应文件已被更改,但是已处于被add的状态,所以用gitdiff是看不到其与当前HEAD上对应文件的区别的,除非用gitdiff --cache或执行:

$ git reset

 

这种方法不仅可以回到当前branch的某次提交,也可以将非当前branch的某次提交的文件checkout出来,如:

$ git checkout otherbranch~0 log.txt

~后的数字n表示对应branch的HEAD之前的第n次提交。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值