git 版本控制的一些命令


git add .  暂存区的目录树会更新,同时将工作区修改或新增的内容写到了对象库一个新对象,该对象的ID被记录在暂存区的文件索引中,工作区后续的add 和 暂存区后续的commitf都更新到这个id对应的对象中

git commit 暂存区的目录树写入对象库,head指向新的暂存区的那个目录树。(简单理解:将暂存区的内容更新到对象库中,并且会备份一个该对象,用HEAD指向这个备份)

git checkout -- 文件名  撤销工作区中文件尚未提交的修改。  实质:只是将暂存区的内容覆盖到了工作区。

git rm --cached 文件名  会将暂存区的指定文件删除,工作区不受影响

git reset HEAD 会将HEAD指向的备份全部重写到暂存区,工作区不受影响

git checkout HEAD . 或 git checkout HEAD 文件名 会HEAD的覆盖到工作区和暂存区。所以工作区没有commit内容会被清除

-------对比


git diff   用于工作区与暂存区的比较
git diff HEAD 或 git diff master 用于工作区与 HEAD比较
git diff --cached 或 git diff --cached HEAD  用于与暂存区与HEAD比较

-----重置   HEAD游标的控制


git reset HEAD^  将HEAD指向的目录树恢复到暂存区,工作区不影响  

git reset --soft HEAD^  工作区和暂存区不改变,但是引用向前回退一次。  可以实现多次提交合并为一次提交

git reset --hard HEAD^   或 git reset --hard 9e8a761  将游标指向上次提交或任意一次提交,同时工作区也会跟着被覆盖

重置后,重置后的版本之后的版本id就不能在提交历史中看到,
可以git reflog 查看版本的变化,查到重置版本后的版本号

git reset -- filename   或 git reset  仅将全部文件或指定文件撤出暂存区,相当于 git add 的反向操作

 

-----取消跟踪并保存文件在本地

git rm --cached readme1.txt    删除readme1.txt的跟踪,并保留在本地。

git rm --cached xxDir    删除xxDir的跟踪,并保留在本地。

使用该命令后,.gitignore文件中被配置的路径才会生效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值