git管理修改、撤销修改和删除文件

3 篇文章 0 订阅

一、管理修改

git管理的是修改,而不是文件。修改可以是新增一行、删除一行、添加某些字符、删除某些字符、删除文件或新建文件等。

  • 现在我们修改文件sample.txt,然后使用git add命令将文件提交至暂存区:

vim sample.txt
cat sample.txt
git add sample.txt
git status
  • 可以看到添加了“git tracks changes”这一行,然后再次对文件sample.txt进行修改,然后使用git commit进行提交:

vim sample.txt
cat sample.txt
git commit -m "git tracks changes"
git diff
git status
  • 再次修改的文件内容最后一行添加了一个单词"of"。提交后使用git diff查看本地库和工作区的区别,发现第二次修改的内容并没有被递交到本地库。使用git status命令发现,本地库的文件被修改了,但是还没有提交到暂存区。想要将第二次修改也提交到本地库,需要使用git add命令首先将其交到暂存区,然后使用git commit命令。


二、撤销修改

2.1未add时

上面第二次修改还没有使用git add命令交到暂存区,此时我们想要放弃在工作区的修改,该如何做呢

  • 其实上面使用git status后,git告诉我么git restore 命令会将工作区的文件恢复到上一次 commit 的时候这个文件的样子。

git restore sample.txt
cat sample.txt
  • 可以看到,工作区的文件sample.txt恢复到了上一次commit的样子。即git restore 命令的作用是在 git add 之前,放弃工作区中对文件的所有修改。

2.2已add时

如果已修改的文件已经使用git add命令提交到了暂存区,但是我想要放弃暂存区的修改,该如何做呢。

  • 首先我们先对文件sample.txt进行修改,然后使用git add命令提交到暂存区:

vim sample.txt
cat sample.txt
git add sample.txt
git status
  • 使用git status命令后,git告诉我们git restore --staged 命令可以放弃暂存区的内容。

  • 可以发现,工作区的内容没有变,只是使用git status命令后发现文件sample.txt的状态变为没有git add之前的状态了。即git restore --staged 命令的作用是将 git add 的文件变成 git add 之前的状态。

  • 如果此时还想放弃工作区的内容,就再使用git restore 命令。

2.3已commit时

已经使用git commit命令提交到本地库的文件

  • 想要恢复到git add时的状态可以使用git reset --soft HEAD

  • 想要恢复到git add之前的状态可以使用git reset --mixed HED 或者git reset HEAD

  • 想要恢复到没有修改之前的状态可以使用git reset --hard HEAD


三、删除文件

删除文件也是修改的一种。

  • 现在我们先创建一个新文件test.txt,然后使用git add和git commit提交到本地库:

touch test.txt
git add test.txt
git commit -m "add test.txt"
  • 这时候,我们将文件test.txt删除掉,再查看本地库的状态:

rm test.txt
git status
  • git告诉我们可以是使用git rm 将文件删除:

git rm test.txt
git stauts
  • 文件被成功删除了。


四、总结

1.只有使用git add命令交到暂存区的文件,才能再使用git commit提交到本地库。

2.git restore 命令的作用是在 git add 之前,放弃工作区中对文件的所有修改。

3.git restore --staged 命令的作用是将 git add 的文件变成 git add 之前的状态。

4.已经使用git commit命令提交到本地库的文件:

  • 想要恢复到git add时的状态可以使用git reset --soft HEAD 。

  • 想要恢复到git add之前的状态可以使用git reset --mixed HED 或者git reset HEAD 。

  • 想要恢复到没有修改之前的状态可以使用git reset --hard HEAD 。

5.想要删除掉已经提交到本地库的文件,可以使用git rm 直接删除。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qyqyqyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值