簡體   English   中英

Git創建完整的文件補丁下載/分發?

[英]Git create full file patches to download/distribute?

無論是我瘋了還是沒有人喜歡/喜歡這個功能,但很久以前我曾經使用過sourceforge系統的subversion。 我有能力為提交的提交創建完整的文件補丁。

無論如何我無法弄清楚在git中創建這些,我想要的只是從XX提交更改的文件,只有完整的文件,以便我可以將它們交給某人/只將這些文件上傳到某個位置。

因為它目前正在重新上載整個項目,因為我什么都沒有告訴我改變了什么。 由於我們也在共享的Web主機上,因此無需升級到更昂貴的軟件包就無法在服務器上獲取git。

我試過了

git archive --output=/home/username/temp.zip <commit id>

把所有東西都放進了一個拉鏈很好但是就是這樣,它把所有東西都放了。 還嘗試了格式補丁的變體,但似乎沒有用。

在我的另一個答案中,我似乎誤解了你想要的東西。 git archive可以列出要包含在存檔中的路徑,因此您可以執行以下操作:

git archive -o /tmp/foo.zip HEAD $(git diff --name-only oldcommit HEAD)

但是,如果您的文件名包含令人驚訝的字符,那么它會更安全:

git diff -z --name-only oldcommit HEAD | xargs -0 git archive HEAD -o /tmp/blah.zip --

首先要嘗試的是保存git diff的輸出,這在你的情況下可能就足夠了:

git diff oldcommit > test.patch

如果您從那時起更改了二進制文件,您可以嘗試:

git diff --binary oldcommit > test-with-binaries.patch

在那種情況下,您需要使用git apply來應用補丁。 否則,我將基於oldcommit創建一個新分支,從master執行壓縮合並,提交結果並使用git format-patch生成補丁。 在這個類似的stackoverflow問題的答案中更詳細地描述了該方法(以及針對您的問題的其他幾種解決方案): 如何使用git format-patch將提交壓縮到一個補丁中?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM