我注意到,将修改后的文件添加到 git 中的暂存区并再次更改文件,然后在没有添加的情况下进行提交后,没有错误也没有警告。工作文件中的最新更改已提交。最初添加到舞台中的内容是否被丢弃了?
$ git init
Initialized empty Git repository in /tmp/test/.git/
/tmp/test (master)
$ git config --global user.name "Your Name"
/tmp/test (master)
$ git config --global user.email "you@example.com"
/tmp/test (master)
$ echo A > my.txt
/tmp/test (master)
$ git add my.txt
/tmp/test (master)
$ git commit -m '1st' my.txt
[master (root-commit) c804a96] 1st
1 file changed, 1 insertion(+)
create mode 100644 my.txt
Run Code Online (Sandbox Code Playgroud)
此时 my.txt 已提交为“A”
/tmp/test (master)
$ echo B >> my.txt
/tmp/test (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: my.txt
no changes added to commit (use "git add" and/or "git commit -a")
/tmp/test (master)
$ git diff
The file will have its original line endings in your working directory
diff --git a/my.txt b/my.txt
index f70f10e..35d242b 100644
--- a/my.txt
+++ b/my.txt
@@ -1 +1,2 @@
A
+B
/tmp/test (master)
$ git add my.txt
Run Code Online (Sandbox Code Playgroud)
此时工作文件有额外的“B”并已添加到暂存中
/tmp/test (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: my.txt
/tmp/test (master)
$ git diff
/tmp/test (master)
$ git diff --cached
diff --git a/my.txt b/my.txt
index f70f10e..35d242b 100644
--- a/my.txt
+++ b/my.txt
@@ -1 +1,2 @@
A
+B
/tmp/test (master)
$ git diff HEAD
diff --git a/my.txt b/my.txt
index f70f10e..35d242b 100644
--- a/my.txt
+++ b/my.txt
@@ -1 +1,2 @@
A
+B
/tmp/test (master)
$ echo C >> my.txt
Run Code Online (Sandbox Code Playgroud)
此时“C”已添加到工作文件中,但未添加到暂存中
/tmp/test (master)
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: my.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: my.txt
/tmp/test (master)
$ git diff --cached
diff --git a/my.txt b/my.txt
index f70f10e..35d242b 100644
--- a/my.txt
+++ b/my.txt
@@ -1 +1,2 @@
A
+B
/tmp/test (master)
$ git diff
diff --git a/my.txt b/my.txt
index 35d242b..b1e6722 100644
--- a/my.txt
+++ b/my.txt
@@ -1,2 +1,3 @@
A
B
+C
/tmp/test (master)
$ git commit -m '2nd' my.txt
[master 4f574dc] 2nd
1 file changed, 2 insertions(+)
Run Code Online (Sandbox Code Playgroud)
此时提交已完成,无需“添加”
/tmp/test (master)
$ git status
On branch master
nothing to commit, working tree clean
/tmp/test (master)
$ git diff
/tmp/test (master)
$ git diff --staged
/tmp/test (master)
$ git diff HEAD
/tmp/test (master)
$ cat my.txt
A
B
C
Run Code Online (Sandbox Code Playgroud)
来自https://git-scm.com/docs/git-commit的文档:
\n\n\n\n
\n- 通过将文件列为
\ncommit命令的参数(不带 --interactive 或 --patch 开关),在这种情况下,提交将忽略索引中暂存的更改,而是记录列出的文件的当前内容(必须是已知的) git);
(强调我的 \xe2\x80\x94 phd)
\n| 归档时间: |
|
| 查看次数: |
856 次 |
| 最近记录: |