1,删除文件
情况一:只删除工作目录filename——rm <filename>
- rm只删除工作目录filename,如果filename暂存过,则暂存区filename不会被删除
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo '1111' > a.txt
dang@DFLubuntu:~/testproject$ ls -l
总用量 4
-rw-rw-r-- 1 dang dang 5 11月 17 22:29 a.txt
dang@DFLubuntu:~/testproject$ rm a.txt
dang@DFLubuntu:~/testproject$ ls -l
总用量 0
dang@DFLubuntu:~/testproject$ echo '1111' > a.txt
dang@DFLubuntu:~/testproject$ ls -l
总用量 4
-rw-rw-r-- 1 dang dang 5 11月 17 22:29 a.txt
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ rm a.txt
dang@DFLubuntu:~/testproject$ ls -l
总用量 0
dang@DFLubuntu:~/testproject$ git status -s
AD a.txt
dang@DFLubuntu:~/testproject$
情况二:只删除暂存区filename——git rm --cached <filename>
- 工作目录的filename已经暂存,rm –cached 就能将暂存区该filename直接删除
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo "11111" > a.txt
dang@DFLubuntu:~/testproject$ ls -l
总用量 4
-rw-rw-r-- 1 dang dang 6 11月 17 22:13 a.txt
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git rm --cached a.txt
rm 'a.txt'
dang@DFLubuntu:~/testproject$ git status -s
?? a.txt
dang@DFLubuntu:~/testproject$
情况三:删除工作目录和暂存区filename——git rm -f <filename>
- 工作目录的filename已经暂存,将强制同时删除工作目录和暂存区filename
- 另一种方法是先
rm <filename>
再git add <filename>
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo '1111' > a.txt
dang@DFLubuntu:~/testproject$ git status -s
?? a.txt
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git rm -f a.txt
rm 'a.txt'
dang@DFLubuntu:~/testproject$ git status -s
dang@DFLubuntu:~/testproject$
变更包括增、删、改。
2,撤销工作目录文件变更
方法一:系统快捷键或 IDE 快捷键
- 工作目录的filename尚未暂存
方法二:git restore <filename>
- 工作目录的filename暂存后发生变更,restore 就能将工作目录该filename重新存储为变更前工作目录该filename
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo '1111' > a.txt
dang@DFLubuntu:~/testproject$ git status -s
?? a.txt
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$ echo '2222' >> a.txt
dang@DFLubuntu:~/testproject$ git status -s
AM a.txt
dang@DFLubuntu:~/testproject$ git diff
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$ git restore a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$
方法三:git checkout -- <filename>
- 工作目录的filename暂存后发生变更,checkout – 就能将工作目录该filename检出为变更前工作目录该filename
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo '1111' > a.txt
dang@DFLubuntu:~/testproject$ git status -s
?? a.txt
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$ echo '2222' >> a.txt
dang@DFLubuntu:~/testproject$ git status -s
AM a.txt
dang@DFLubuntu:~/testproject$ git diff
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$ git restore a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$
3,撤销文件暂存
方法一:git rm --cached <filename>
- 工作目录的filename发生变更且已经暂存,rm –cached 就能将暂存区该filename直接删除。其实就是通过删除来实现撤销。
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo "11111" > a.txt
dang@DFLubuntu:~/testproject$ ls -l
总用量 4
-rw-rw-r-- 1 dang dang 6 11月 17 22:13 a.txt
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git rm --cached a.txt
rm 'a.txt'
dang@DFLubuntu:~/testproject$ git status -s
?? a.txt
dang@DFLubuntu:~/testproject$
方法二:git restore --staged <filename>
- 自上次提交来,工作目录的filename发生变更且已经暂存,restore就能将暂存区该filename重新存储为上次提交后暂存前的老版本
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo '1111' > a.txt
dang@DFLubuntu:~/testproject$ git status -s
?? a.txt
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git diff --staged
diff --git a/a.txt b/a.txt
new file mode 100644
index 0000000..5f2f16b
--- /dev/null
+++ b/a.txt
@@ -0,0 +1 @@
+1111
dang@DFLubuntu:~/testproject$ git commit -m '第一次提交a.txt' a.txt
[master (根提交) c588f67] 第一次提交a.txt
1 file changed, 1 insertion(+)
create mode 100644 a.txt
dang@DFLubuntu:~/testproject$ git status -s
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$ git diff --staged
dang@DFLubuntu:~/testproject$ echo '2222' >> a.txt
dang@DFLubuntu:~/testproject$ git status -s
M a.txt
dang@DFLubuntu:~/testproject$ git diff
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
M a.txt
dang@DFLubuntu:~/testproject$ git diff --staged
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$ git restore --staged a.txt
dang@DFLubuntu:~/testproject$ git status -s
M a.txt
dang@DFLubuntu:~/testproject$ git diff --staged
dang@DFLubuntu:~/testproject$ git diff
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$
方法三:git reset HEAD <filename>
- 自上次提交来,工作目录的filename发生变更且已经暂存,reset就能将暂存区filename重置为为上次提交后暂存前的老版本
dang@DFLubuntu:~$ mkdir testproject
dang@DFLubuntu:~$ cd testproject
dang@DFLubuntu:~/testproject$ git init
已初始化空的 Git 仓库于 /home/dang/testproject/.git/
dang@DFLubuntu:~/testproject$ echo '1111' > a.txt
dang@DFLubuntu:~/testproject$ git status -s
?? a.txt
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
A a.txt
dang@DFLubuntu:~/testproject$ git diff --staged
diff --git a/a.txt b/a.txt
new file mode 100644
index 0000000..5f2f16b
--- /dev/null
+++ b/a.txt
@@ -0,0 +1 @@
+1111
dang@DFLubuntu:~/testproject$ git commit -m '第一次提交a.txt' a.txt
[master (根提交) c588f67] 第一次提交a.txt
1 file changed, 1 insertion(+)
create mode 100644 a.txt
dang@DFLubuntu:~/testproject$ git status -s
dang@DFLubuntu:~/testproject$ git diff
dang@DFLubuntu:~/testproject$ git diff --staged
dang@DFLubuntu:~/testproject$ echo '2222' >> a.txt
dang@DFLubuntu:~/testproject$ git status -s
M a.txt
dang@DFLubuntu:~/testproject$ git diff
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$ git add a.txt
dang@DFLubuntu:~/testproject$ git status -s
M a.txt
dang@DFLubuntu:~/testproject$ git diff --staged
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$ git reset HEAD a.txt
重置后取消暂存的变更:
M a.txt
dang@DFLubuntu:~/testproject$ git status -s
M a.txt
dang@DFLubuntu:~/testproject$ git diff --staged
dang@DFLubuntu:~/testproject$ git diff
diff --git a/a.txt b/a.txt
index 5f2f16b..4f142ee 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
1111
+2222
dang@DFLubuntu:~/testproject$
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/98074.html