1. ホーム
  2. ジャワ

Jgitでのgit操作時に発生する問題点

2022-02-24 16:21:10

I. JGitの有効なリンク

JGitはsshとhttp(s)の2つの方法でgitリポジトリをリンクしています。 https://www.codeaffine.com/2014/12/09/jgit-authentication/

II. ブランチ切り替えの際に発生する問題

1.org.eclipse.jgit.api.errors.NoHeadException: 未作成のブランチからチェックアウトできません

2.プルパーミッションが不足している

git.pull().call

質問です。

org.eclipse.jgit.api.errors.TransportException: http://igit.xxxx.com/xxx/platform/xxxx: 認証が必要だが、CredentialsProviderが登録されていない

回避策 ユーザー名とパスワードを設定する 

setCredentialsProvider(usernamePasswordCredentialsProvider)というメソッドを追加しました。

つまり、git.pull().setCredentialsProvider(usernamePasswordCredentialsProvider).call() ということです。

3.パスワード変更後の再クローンコードのパーミッションが足りない(windows7 OS)

理由:gitクライアントの前回操作

解決策:gitの設定ファイルをリセットする

コマンド:git config --system ---unset credential.helper

操作画面:gitbash

リセット後、再クローン引き、正常

4.org.eclipse.jgit.api.errors.RefNotFoundException: Ref 4.0.5_PCIM2.5 を解決できません。

ローカルリファレンスがない

5. 警告: 保護されていない秘密鍵ファイル! 

秘密鍵のパーミッションを700に変更 chmod 700 id_rsa

参考URLです。 http://www.01happy.com/ssh-unprotected-private-key-file/

6. リモートが予期せずハングアップした  

権限設定に問題がある

7. 認証エージェントへの接続を開くことができませんでした。

ssh-add bash

8.Caused by: org.eclipse.jgit.errors.TransportException: [email protected]:xxx.git: 認証に失敗
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:191)
    org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:140)にて。
    at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:280)
    at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:170)
    at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:138)
    org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:124)にて。
    at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1271)
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:244)

原因:com.jcraft.jsch.JSchException: Auth fail
    at com.jcraft.jsch.Session.connect(Session.java:519)
    at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:145)

9.fatal: 'http://xxx.git/'にアクセスできません。要求された URL はエラーを返しました。403

8. デフォルト以外の秘密鍵を使用した後、ssh getを使用してコードを取得することができません。

<テーブル

$ git clone [email protected]:xxx.git
xxx'にクローンする...
そのようなIDはありません。/c/Users/xxx/.ssh/id-rsa: そのようなファイルまたはディレクトリはありません。
[email protected]。パーミッションが拒否されました (publickey)。
fatal: リモートリポジトリから読み取れませんでした。

正しいアクセス権を持っていることを確認してください
というメッセージが表示され、リポジトリが存在することが確認できます。

理由:jgitのデバッグ中に別の秘密鍵が使用され、sshが変更されたため。

回避策: ssh に自分の秘密鍵を追加します。

ssh-add ~/.ssh/id_rsa