2015-06-12 23 views
0

我使用Atlassian SourceTree來使用git存儲庫。我應該使用哪個git特性來將大提交(推送和反轉)分成更小的提交?

我在所期望的和不希望有的變化混雜在一起的時候犯下了大的承諾。 我通過提交併推送反向提交來回滾它。

現在我想從那個大提交中提取所需的更改,並將它們作爲較小的提交提交,或者甚至可以是較小提交的序列。

哪個SourceTree或git功能最適合這個? 我想這應該是其中之一:櫻桃挑選,補丁,合併或反向提交與這3個功能之一。

我看着Break a previous commit into multiple commitsGit Cherry-pick vs Merge Workflow,他們很接近,但不直接回答我的問題。

回答

2

第一個git cherry-pick -n你原來的提交使用-n沒有提交。這會讓你在你的工作目錄中進行所有更改,但是沒有添加到索引中,也沒有提交。

然後選擇要提交的每個文件,可選擇git add -igit add -p選擇要添加的文件/補丁。

提交您選擇在一次提交中提交的任何內容,然後重複,直到所有更改都處於期望的提交中。