2012-03-21 7 views
5

現在の作業ディレクトリを変更せずに、gitでファイルを追加してコミットしたいとします。これは可能ですか?現在の作業ディレクトリを変更せずにファイルを追加するにはどうすればよいですか?

> pwd 
/tmp 

> git --git-dir=/tmp/git_test/.git init 
Initialized empty Git repository in /tmp/git_test/.git/ 

> ls /tmp/git_test 
commit1 

> git --git-dir=/tmp/git_test/.git add /tmp/git_test/commit1 
fatal: '/tmp/git_test/commit1' is outside repository 

> git --git-dir=/tmp/git_test/.git add commit1 
fatal: pathspec 'commit1' did not match any files 

(gitの-Aを追加するには、ディレクトリを--gitするというよりも、引数、現在の作業ディレクトリを使用しているようだ)

+0

'(cd/tmp/git-test; git add commit1)'を実行すると、外側のシェルは、 ''内部ですべてを実行するサブシェルを生成する前と同じディレクトリに残ります。 (...) '。 –

+0

スタックオーバーフローの別の場所での回答:http://stackoverflow.com/questions/1386291/git-git-dir-not-working-as-expected – dnw

答えて

12

あなたがオプション逃した:--work-treeを。リポジトリ外にいる場合は、両方のそれと--git-dirを提供する必要があります。

--work-tree=<path>

は作業ツリーへのパスを設定します。現在の作業ディレクトリに対する絶対パスまたはパスにすることができます。これはGIT_WORK_TREE環境変数とcore.worktree設定変数(詳細はgit-config(1)のcore.worktreeを参照)を設定することによっても制御できます。

+0

ありがとう!これはまさに私が望んでいたものです。 – dnw

+0

これが正解であれば、@ Jefromiにクレジットを与え、正解とマーク(「チェック」)してください。 –

+1

@FlakDiNenno新しいユーザーを教育することは確かに良いですが、この質問は2歳で、1年半でOPは見られませんでした。 – Cascabel

関連する問題