我正在配置TeamCity服務器,我需要知道如何識別在單次推送中提交的所有文件。確定推進中的所有提交
例:
- 用戶提交1:
- file1.c中
- file2.c中
- 用戶commig 2:
- file1.c中
- fileX.c
- fileY.c
我需要組中的所有這些文件,以1建立這種 「推」 命令。有一個git命令來做到這一點?
謝謝。
我正在配置TeamCity服務器,我需要知道如何識別在單次推送中提交的所有文件。確定推進中的所有提交
例:
我需要組中的所有這些文件,以1建立這種 「推」 命令。有一個git命令來做到這一點?
謝謝。
您可以顯示git的日誌,並與結果工作:
列表中的最後一次提交:
git log --name-status -p -1
result:
commit d1bc9d55024e4e3e6acc087ba223bd7951b555fa
Author: unknown <johndoe>
Date: Wed Oct 7 16:20:27 2015 -0300
task1000 commit message here...
M file1.c
M file2.c
現在,列出所有的消息 「task1000」 承諾:
git log --name-status --grep="task1000"
result:
commit d1bc9d55024e4e3e6acc087ba223bd7951b555fa
Author: unknown <johndoe>
Date: Wed Oct 7 16:20:27 2015 -0300
task1000 commit message here...
M file1.c
M file2.c
commit 998a74eaa752f6c98c32ec9a412b219afb7cc891
Author: unknown <johndoe>
Date: Wed Oct 7 16:19:56 2015 -0300
task1000 more one commit for this task..
M file1.c
M fileX.c
M fileY.c
現在你必須使用這個結果。
您需要關注服務器中的每一次提交。
您可以使用
$ git diff --name-only <your commit range>
例如,
$ git diff --name-only HEAD~3..HEAD
config/sidekiq.yml
deploy/before_migrate.rb
deploy/before_restart.rb
可以在post-receive
鉤使用(如said in the docs)如下:
#!/usr/bin/env ruby
$oldrev = ARGV[1]
$newrev = ARGV[2]
`git diff --name-only #{$oldrev}..#{$newrev} > listing.txt`
如果你'混帳fetch'然後'git merge',git將顯示所有在該合併中更改的文件的列表(對於所有提交的提交合並)。這有幫助嗎? – Lee
你需要知道已更改文件的總集合嗎?或者當有多個這樣的提交時,具體哪些文件被每次提交更改? – Wolf
@Wolf,我需要知道已更改文件的全部集合。 – Beetlejuice