Git学习总结(四)

比较暂存区和HEAD所含文件的差异

要想比较暂存区和HEAD文件的差异,可以使用下面的命令:

git diff --cached
git diff --staged

这里的HEAD是指,最后一次的commit

比较工作区和暂存区所含文件的差异

git diff    # 比较的是工作区和暂存区(所有文件)的区别
git diff -- readme.md   # 指定文件

第一个命令比较的所有命令的差异

第二个是指定文件的差异

如何让暂存区恢复成HEAD一样的状态

git reset HEAD      # 暂存区恢复成HEAD

让工作区的文件恢复成暂存区

git checkout -- index.html

当文件添加到暂存区中,又对文件进行了修改。但是,修改后不满意,使用上面的命令,即可恢复成暂存区的状态。

取消暂存区部分文件的修改

上面将暂存区恢复成HEAD一样的状态,但是,基本上是所有文件都恢复了,要想恢复一部分文件,可以使用如下命令。

git reset HEAD -- c.txt


后面文件可以拼接多个。

消除最近的几次提交

git reset 有三个参数
       --soft  #这个只是把HEAD指向的commit恢复到你指定的commit,暂存区工作区不变
       --hard  #这个是把HEAD,暂存区,工作区都修改为你指定的commit的时候的文件状态
       --mixed #这个是不加时候的默认参数,把HEAD,暂存区修改为你指定的commit的时候的文件状态,工作区保持不变

根据上面三个命令,可以根据自己的需求,随意使用。

案例:领导说,你这个设计还没之前的好,然后,你回去就立马把这个东西恢复成之前的样子。但是后面领导发现,其实设计的也是别有意蕴。决定采纳。这时的你,不是肠子都悔青了么?没关系,git还是提供后悔药这个功能的。

git reflog   #查看命令历史, 记录每次的命令。
git reset --hard commit_id #然后进行你想找回的commit

所以说上面的命令不仅可以恢复,还能找回,这就是git智能的地方。

比较不同提交文件的差异

现在基本上都是分支开发,主干合并的开发模式。所以,你想比较一下别人分支上的文件,和自己分支上的文件有哪些区别,则可以使用下面的命令。

git diff master v2.0  #比较分支中所有文件
git diff master v2.0 -- 文件名  #比较分支中的指定文件


如果想比较两个commit之间的差异,就使用下面的命令:

git diff commit_1 commit_2  # 比较commit中所有文件
git diff commit_1 commit_2 -- 文件名  #比较commit中的指定文件

删除文件

删除文件的命令很简单,就和文件重命名一样

git rm 文件名

基于堆栈开发

什么叫堆栈开发呢?这个名字是我自己的定义的。意思就是,在不影响整个项目环境的情况下。对某个文件进行调整。
可以理解为临时修复线上的bug。命令如下:

git stash  #存放在不影响工作区的环境
git stash list  #查看,相当于堆栈
git stash apply #拿出内容,并放入工作区,但是在堆栈中还存在。
git stash pop  #拿出内容,同时堆栈中的也消失。
git stash pop stash@{2} #如果stash内容多,可以按序号取出指定的


上面图片展示的就是,将当前的工作区放入stash中,然后list命令可以查看stash中存放了哪些东西。
此时,暂存区的空间是干净的。现在对某个文件进行修改,然后提交到暂存区。然后将stash中的文件拿出来进行比对。

如何指定不需要git管理的文件

这个就是对.gitignore文件的使用了。至于怎么使用,通过下面给出的链接了解吧。

https://blog.youkuaiyun.com/xmyzlz/article/details/8592302

将git仓库备份

想将git备份到本地,也很容易,就几个命令

--bare表示不带工作区的仓库
git clone --bare /d/git/gitrunning/.git one.git  #哑协议做备份
git clone --bare file:///d/git/gitrunning/.git two.git  #智能备份
git remote -v  #查看是否有远端
git remote add two file:///d/git/back/two.git  #与远端仓库关联
git push two #将本地的东西提交到远端
git push --set-upstream two master  #将本地的分支推送到远端

我不过是一条鱼 在深海沉溺
你的声音使我着迷
于是我拨开海底丛生的荆棘
妄想一触你的身影
直到光明消失殆尽
直到连摆尾的力气都失去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值