2011-02-09 53 views
38

如果我已經對一個大文件進行了多組更改,是否可以使用git將它們分成單獨的提交?將多個更改分解爲與git單獨提交?

+0

的可能的複製[如何分割提交到Git的小提交?](http://stackoverflow.com/questions/2118042/how-to-split-a-commit-into-smaller-commits-with-git)。 – 2013-07-14 19:34:24

+2

另外,還不清楚這些更改是否已經提交。如果他們已經承諾過多次提交,那麼「rebase - interactive」就是要走的路。如果沒有,`git add --patch`是你應該考慮的選項之一。 – 2013-07-14 19:36:00

回答

64

您想要git add --patch,這將允許您選擇要進行哪些更改。

+4

爲什麼downvote? git add -i如果你想要的是選擇hunks,那麼它是過度殺毒,因爲你從-i菜單中選擇的第一個選項是'p'(或5),所以你可能會直接跳到它 - 補丁。 – 2011-02-10 12:25:18

16

是的,你可以 - 使用git add -i來選擇你想要爲每個提交階段選擇哪些區塊。您可以通過運行git help add並滾動到「交互模式」來獲取文檔。

1

Williams answer是完全有效的。但有時手工操作更容易。例如,如果您在提交之前做出的更改之前意外更新了一些包含大量文件的第三方庫。使用git add -p(與--patch相同),您需要瀏覽所有這些文件。因此,在這種情況下,它是方便多了,只是階段,你要提交的文件,並做了所有的其他變化第二承諾:

> git add /path/to/your/file.txt 
> git commit -m "my commit message" 
[master a0c5ea6] my commit message 
1 file changed, 2 insertions(+), 1 deletion(-) 
> git add --all 
> git commit -m "updated library xyz" 
相關問題