2017-07-27 62 views
1

我想獲取上次提交中提交的對象上的名稱,然後嘗試壓縮所有這些文件。我已經有了存檔命令,它將採取這些文件並壓縮它們。 以下命令將壓縮分支中的所有文件。如何獲取最新提交中提交的對象的名稱Git

git archive -o update.zip HEAD 

,但如果我能以某種方式獲取命令來獲取在最後COMMITED對象名單提交我可以結合這兩個命令,按照下圖僅壓縮這些對象。

git archive -o update.zip HEAD $(COMMAND TO GET NAME) 

在此先感謝所有的幫助!

回答

1
git diff --name-only HEAD^ HEAD 

其實,這適用於任意兩個之間提交任何DIFF:

git diff --name-only master test 
git diff --name-only 4.2.1 staging 
git diff --name-only ea43c77 HEAD 
# etc ... 

注:此方法不會讓你修改區分/添加文件和刪除/重命名的文件。

你可以嘗試--name-status選項,這將在每個文件名前加上一個A, M or D

git diff --name-status <commit1> <commit2> 

你會再需要一點額外的處理的,這個列表分成「這些文件應加到zip壓縮文件「,並且」這些文件應該從目標目錄中刪除「。


如果你的目的是要將此差異的修改,還可以生成一個補丁文件,並將其應用在目標目錄:

# inside your repo : 
git diff -p HEAD^ HEAD > update.patch 

# in your target directory : 
patch update.patch 
+0

有沒有什麼辦法,我可以得到一個列表對象名稱從測試分支合併到主? –