[英]Use git hooks to create an archive of files
我想創建一個包含回購中某些文件的zip文件,然后添加並提交回購中已經存在的文件。
我已經將precommit
提交更改為:
#!C:/Python34/python.exe
import tarfile, os
os.chdir("C:\project\directory")
with tarfile.open("archive.tar.gz", "w:gz") as f:
for name in ["file", "names"]:
f.add(name)
它創建了文件,但是我不知道如何將它們添加到提交中。
我嘗試做subprocess.Popen("git add .")
,但是它沒有subprocess.Popen("git add .")
文件。
請注意,該掛鈎稱為pre-commit
,而不是precommit
。
如果我使用以下代碼創建一個名為.git/hooks/pre-commit
:
#!/usr/bin/python
import os
import subprocess
import tarfile
print 'Adding files to archive.'
with tarfile.open("archive.tar.gz", "w:gz") as f:
for name in ["file1", "file2"]:
f.add(name)
print 'Adding archive to commit.'
subprocess.call(['git', 'add', 'archive.tar.gz'])
並將一些文件添加到存儲庫:
$ echo hello world > file1
$ echo this is a test > file2
$ git add file1 file2
然后提交更改:
$ git commit -m "added some files"
我懂了:
Adding files to archive.
Adding archive to commit.
[master (root-commit) 38e33dd] added some files
3 files changed, 2 insertions(+)
create mode 100644 archive.tar.gz
create mode 100644 file1
create mode 100644 file2
看一下提交,我看到:
$ git log -1 --name-only
commit 38e33dd5ba14d1bfe427b50cce37489259fd00c4
Author: Lars Kellogg-Stedman <lars@example.com>
Date: Fri Jun 20 09:02:31 2014 -0400
added some files
archive.tar.gz
file1
file2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.