我已经有一些文件的特定存储库。现在,我创建了一个新文件,但其中包含一些代码块,我想从中创建不同的提交。
$git status
On branch bar
Your branch is up to date with 'bar'.
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: a.c
Untracked files:
(use "git add <file>..." to include in what will be committed)
b.c
我想从文件 b.c 创建两个提交,每个提交中包含不同的代码。
现在,如果我执行git add b.c
或类似操作,它将直接将 b.c 移至暂存目录。
我尝试使用git add -p
和git add -i
,但它们并没有达到我的预期。可以这样做吗?
P.S:这是一个用例,更多的是试图理解Git,而不是实际的用例。我知道一个明显的答案是,首先编写要在第一个补丁中包含的代码,然后提交,然后再为另一个补丁编写代码,然后再提交。但是,如果您编写了一个文件,可能需要用不同的审阅者来审阅文件的不同部分,而不是让他们去看代码的其他部分,而只是让他们查看打算由他们审阅的内容,则可能会出现用例。因此,将其视为对Git的查询。
答案 0 :(得分:3)
将文件设置为跟踪文件,而不添加对索引的更改
git add --intent-to-add b.c
请参阅:Start tracking a file in Git without adding to to the index
然后将文件拆分为大块
使用git add -p
或git add -e
。