0


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

一、管理修改

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 直接删除。

标签: git github

本文转载自: https://blog.csdn.net/qyqyqyi/article/details/128693239
版权归原作者 qyqyqyi 所有, 如有侵权,请联系我们删除。

“git管理修改、撤销修改和删除文件”的评论:

还没有评论