2015-01-21 40 views
0

我有一個master分支,並且爲我的日常工作簽出了一個名爲test_branch的新分支。我在test_branch中做了很多冗餘的「git commit」,所以在test_branch中有很多歷史提交日誌。當我將test_branch合併到master時,不希望將這些歷史記錄合併到主文件中。如何才能合併僅源文件?如何在使用「git merge」時僅合併沒有提交日誌的更改?

+0

你是什麼意思的「提交日誌」? – 2015-01-21 06:39:23

+0

@ Noufal Ibrahim我的意思是我在test_branch中做了很多「git commit」,其中很多都沒用,所以我不希望在我的主分支中顯示此提交歷史記錄。我只是想合併源代碼 – ctxrr 2015-01-21 06:41:53

回答

3

你這樣做:

git checkout master 
git merge --squash test_branch 

這給你一個大師新版本,並承諾當這會不會是一個合併。

+0

之間的更改我想要什麼,謝謝 – ctxrr 2015-01-21 07:08:59

+0

請理解這樣做的含義以及在執行此操作之前兩個案例中項目變更的歷史記錄。 – 2015-01-21 07:41:24

+0

請注意,這與在存儲庫根目錄中執行'git checkout master'和'git checkout test_branch - .'完全相同。 – 2015-01-21 10:47:48

0

git merge命令合併提交。它不合並文件。 test_branch上的開發路徑將成爲您項目歷史的一部分。如果您對此不滿意,您應該在該分支上執行rebase -i並編輯以清理歷史記錄,以便看起來像您想要的,然後合併分支。如果您不關心歷史記錄,可以使用git merge --squashtest_branch上的所有提交壓縮爲對主文件的單個提交。然而,這將破壞細密的歷史,並不會真正爲你帶來任何好處。

許多版本控制系統認爲一個分支是與主開發線完全分離的東西,而且主分支在合併之後唯一可以看到的就是合併本身。使用git,由於其分支的輕量級特性,分支合併到您的主分支的發展歷史也將可見。

相關問題