我在一个文件中提交了一些更改,已添加(但未提交)。该文件在当前目录中有其他更改,不会提交。 但是在实际提交之前,我需要编辑一些即将提交的更改。明确?我是这么想的!
» git status
On branch dev
Your branch is ahead of 'origin/dev' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: myfile <-- I need to edit this
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: myfile <-- I do not care about this (for this specific commit)
所以,在实际提交之前,我想改变分阶段的变化。 git commit -i
让我手动编辑补丁。我可以以某种方式直接在分阶段的更改中使用此功能吗?
解决此问题的另一种方法是隐藏非分段更改,编辑工作目录中的文件并添加这些更改。但我的印象是,当我解开时,我会发生冲突。
答案 0 :(得分:0)
这似乎正是为git add -p
所做的。它允许您分别选择和添加文件的片段。您可以继续编辑文件,然后输入命令git add <file path> -p
。这将打开您的默认git编辑器,并允许您选择要进行提交的更改。
Git会自动拆分您可以添加的摘要(通过按y
),而不是添加(按n
)或进一步拆分为单独的摘要(按{{1} })。
谷歌搜索给了我link这似乎解释了它是如何工作的以及如何使用它。
当然,隐藏你当前的变化也是一种选择,但正如你所说,这可能导致冲突,这些冲突之后必须解决。但是,如果你在弹出藏匿之前提交并推送了其他更改,那么这不应该造成任何问题(除了消耗的时间)。
答案 1 :(得分:0)
如果我说对了,情况是:
您有一个文件xxx
,并且上演了一些内容,例如:
line 1
line 2
此外,您已在此文件中添加了更多内容但未上演,例如:
line 3
line 4
您不想添加到舞台上。
现在,您要编辑分段内容,例如删除line 2
。
如果我的描述正确,git reset -p
是您所需要的。