2012-10-10 61 views
2

是否有任何簡單的方法來獲取GitHub(在GitHub上)版本哈希與Python代碼?我想用它來處理我的軟件在github上的'dev'版本的版本控制。可能通過Python代碼提取git repo修訂哈希值?

+1

GutHub或Git倉庫? http://stackoverflow.com/questions/5694389/get-the-short-git-version-hash – tMC

+0

對不起,我不明白,我的意思是git倉庫(我把它們存儲在github上)。 –

回答

1
from subprocess import Popen, PIPE 

gitproc = Popen(['git', 'show-ref'], stdout = PIPE) 
(stdout, stderr) = gitproc.communicate() 

for row in stdout.split('\n'): 
    if row.find('HEAD') != -1: 
     hash = row.split()[0] 
     break 

print hash 
1

是否這樣?

import subprocess 
ref = subprocess.check_output(""" 
    git 2>/dev/null show-ref | awk '/refs\/heads\/master/{print $1}' 
""", shell=True) 
print ref 

適應它,如果你有超過master

+0

通過python。通過'Popen'運行'git'命令並在python中解析輸出。 – tMC

+0

查看我的帖子,添加了python代碼 –

+0

無需將其管理到awk。只需從'Popen'對象中讀取'stdout'並在Python中解析文本即可。 Python作爲字符串處理非常好! – tMC

9
def git_version(): 
    from subprocess import Popen, PIPE 
    gitproc = Popen(['git', 'rev-parse','HEAD'], stdout = PIPE) 
    (stdout, _) = gitproc.communicate() 
    return stdout.strip()