如何在git中以部分而不是整个文件的形式添加新文件?

时间:2018-06-28 06:05:45

标签: git

我已经有一些文件的特定存储库。现在,我创建了一个新文件,但其中包含一些代码块,我想从中创建不同的提交。

$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 -pgit add -i,但它们并没有达到我的预期。可以这样做吗?

P.S:这是一个用例,更多的是试图理解Git,而不是实际的用例。我知道一个明显的答案是,首先编写要在第一个补丁中包含的代码,然后提交,然后再为另一个补丁编写代码,然后再提交。但是,如果您编写了一个文件,可能需要用不同的审阅者来审阅文件的不同部分,而不是让他们去看代码的其他部分,而只是让他们查看打算由他们审阅的内容,则可能会出现用例。因此,将其视为对Git的查询。

1 个答案:

答案 0 :(得分:3)

将文件设置为跟踪文件,而不添加对索引的更改

git add --intent-to-add b.c

请参阅:Start tracking a file in Git without adding to to the index

然后将文件拆分为大块

使用git add -pgit add -e