1

いくつかのgitタスクを自動化するツールをまとめていますが、「gitcommit」がユーザー名とパスワードの入力を求める問題が発生しています。git add、rm、status okはできますが、コミットできません。これはRuntime.exec()、Javaからgitviaを実行しています。

Runtime.getRuntime().exec("git " + cmd, new String[0], mDir);

私の現在のテストはMSWindowsです。コマンドラインからgitcommitを実行すると、問題なく動作します。呼び出しを介して実行している場合にのみ、exec()ユーザー/パスワードの入力を求められます。

以前にgitconfig--globalを実行して、ユーザー名とパスワードの両方を設定しました。

それで、なぜそれは私を促しているのですか?

--2/13を追加

これは、リモートリポジトリを使用せずに、ローカルgitディレクトリを使用します。さて、これがGITが私に報告している正確なエラーメッセージです:git commit -F-

 *** Please tell me who you are.

 Run

   git config --global user.email "you@example.com"
   git config --global user.name "Your Name"

 to set your account's default identity.
 Omit --global to set the identity only in this repository.

致命的:電子メールアドレスを自動検出できません('Cougar @ COUGAR-HOUSE。(none)'を取得しました)

4

2 に答える 2

1

HOME 環境は Java ランタイムに設定されていますか? そうでない場合、git はグローバル .gitconfig ファイル (通常は %HOME%.gitconfig) の場所を認識できません。

于 2013-02-11T15:42:24.090 に答える
0

パスワードconfigureは使用されgitないため、コマンドラインで機能するわけではありません. より可能性が高いのは、パスワードなしでサーバーにアクセスできるように SSH キーを設定したことです。これはコマンドラインでは機能しますが、環境が異なるため、Java exec から実行すると機能しない可能性があります。

環境のデバッグを試すことができますが、Windows で何をする必要があるかわかりません。または、構成を試すこともできますcore.askpassgit configマニュアルページから:

    core.askpass
    Some commands (e.g. svn and http interfaces) that interactively ask for a
    password can be told to use an external program given via the value of this
    variable. Can be overridden by the GIT_ASKPASS environment variable. If not
    set, fall back to the value of the SSH_ASKPASS environment variable or,
    failing that, a simple password prompt. The external program shall be given a
    suitable prompt as command line argument and write the password on its
    STDOUT.
于 2013-02-11T16:13:00.600 に答える