比方說,我們有一個文件有5個補丁,4個補丁修改了文件內容並添加了新的行。但是我們仍然可以將單個補丁5應用於git樹。爲什麼?因爲我認爲行號已經改變,所以行內容不再匹配。 git如何確定我做了哪些改變?通過改變的三線環境?我不認爲這是合理的。git如何處理幾個補丁中的一個?
順便說一句,如何生成一個數字零補丁像[補丁0/5]?看來格式補丁只能從0001生成。
比方說,我們有一個文件有5個補丁,4個補丁修改了文件內容並添加了新的行。但是我們仍然可以將單個補丁5應用於git樹。爲什麼?因爲我認爲行號已經改變,所以行內容不再匹配。 git如何確定我做了哪些改變?通過改變的三線環境?我不認爲這是合理的。git如何處理幾個補丁中的一個?
順便說一句,如何生成一個數字零補丁像[補丁0/5]?看來格式補丁只能從0001生成。
通過三行上下文的變化?
這是如何git apply
描述它:
確保至少
<n>
行之前和每次更改後周圍的上下文匹配的。
當存在較少的周圍環境線時,它們都必須匹配。
所以,是的,即使線路號改變,背景仍是確定補丁應適用與否的關鍵。
至於編號方面,我沒有測試,但是看的git format-patch
command的--start-number
選項可幫助:
--start-number <n>
開始編號的補丁在
<n>
而不是1
爲什麼你覺得它不合理?另見'patch'命令。 – torek
@VonC因爲如果上下文有多處出現,或者上一個補丁創建了上下文,那麼幾乎不應用補丁5的結果將是錯誤的。 – dspjm