簡體   English   中英

使用git hooks創建文件檔案

[英]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.

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