2016-12-30 7 views
2

私はディレクトリを作成し、内部にいくつかのファイルを作成し、gitを初期化し、それらのファイルを追加して最終的にすべてをコミットするLuaスクリプトを作成しています。しかし、をLuaの中から使用する方法はありませんが(効果はありません)、git initディレクトリ、git addいくつかのファイル、そして最後にgit commit -a -m "message"という作業ディレクトリが上記ディレクトリです目的のディレクトリ。git init、add、別のディレクトリからコミットする

編集:-Cありがとうございます。不思議に思う人のために、os.executeへの呼び出しが終了した後、cdが "リセット"します。したがって、os.execute("cd mydir"); os.execute("git init");は期待どおりに動作しません。それを動作させるには、os.execute("cd mydir; git init;");を使用してください。 -CIに関するコメントでヒントに従うことにより

+0

ので、Gitのレポは、LUAスクリプトの場所のサブディレクトリにあります。あれは正しいですか? –

+0

@ Code-Apprenticeまさに。 – user6245072

+0

[この質問](http://stackoverflow.com/questions/3769137/use-git-log-command-in-another-folder)は 'git log'に固有ですが、' --git-dir 'フラグは他のコマンドでも機能します。 –

答えて

3

がやった:

git init newStuff 
Initialized empty Git repository in c:/fw/git/initTest/newStuff/.git/ 

をGitのレポを作るために(私はすでに作成していた)DIR newStuffに

をそれから私は、newStuffに2つのファイルを追加しましたそれを使用して親から-C

git -C newStuff/ status 
On branch master 

Initial commit 

Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

     new1 
     new2 

nothing added to commit but untracked files present (use "git add" to track) 

私は新しいファイルを参照してください。今、それらを追加してコミット:シェル上

git -C newStuff/ add . 
git -C newStuff/ status 
On branch master 

Initial commit 

Changes to be committed: 
    (use "git rm --cached <file>..." to unstage) 

     new file: new1 
     new file: new2 

git -C newStuff/ commit -m"initial" 
[master (root-commit) bfe387b] initial 
2 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 new1 
create mode 100644 new2 
2

例:

#!/bin/sh 
dirPath=some/dir/path 
mkdir -p $dirPath 
touch $dirPath/newFile 
git init $dirPath 
git -C $dirPath add . 
git -C $dirPath commit -a -m "Initial commit" 
git -C $dirPath log 
関連する問題