谢谢你浏览这个问题。
我正在创建一个自动提交更改的脚本。
当某些更改已添加到舞台上时,是否有办法只提交指定文件中的指定行?
例如,
我有一个空白的hoge.txt。
然后,我添加一些行并提交它们。
diff --git a/hoge.txt b/hoge.txt
index e69de29..b3c5a95 100644
--- a/hoge.txt
+++ b/hoge.txt
@@ -0,0 +1,5 @@
+line1
+line2
+line3
+line4
+line5
git status
说:
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: hoge.txt
然后,我添加了一些更多的line0和line6。
diff --git a/hoge.txt b/hoge.txt
index b3c5a95..6006aa3 100644
--- a/hoge.txt
+++ b/hoge.txt
@@ -1,5 +1,7 @@
+line0
line1
line2
line3
line4
line5
+line6
git status
说:
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: hoge.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: hoge.txt
现在,我想只提交没有上演的更改而不进行更改。但是,第1到第5行必须上演。
git status
说:
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: hoge.txt
git diff --cached
说:
diff --git a/hoge.txt b/hoge.txt
index 588aa45..6006aa3 100644
--- a/hoge.txt
+++ b/hoge.txt
@@ -1,2 +1,7 @@
line0
+line1
+line2
+line3
+line4
+line5
line6
答案 0 :(得分:1)
你不能......
“stage”区域的目标是包含下次提交所需的所有文件,因此您无法通过忽略已暂存的文件来提交未提交的文件。
虽然你想做一些奇怪的事情,你可以做的是:
git stash
git add hoge.txt
git commit -m 'myWork'
git stash pop
您将遇到冲突解决,但您将在第一次更改之前进行第二次更改。