問題タブ [gitpython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
843 参照

python - GitHubにプッシュするFabricのホストをどのように定義しますか?

元の質問

スクリプト内のSeleniumテストに続いて撮影したスクリーンショットをアップロードするためにAmazonS3を使用しているPythonスクリプトがいくつかあります。

現在、S3からGitHubを使用するように移行しているため、GitPythonを見つけましたが、実際にローカルリポジトリにコミットしてサーバーにプッシュするためにGitPythonを使用する方法がわかりません。

私のスクリプトは、ワークスペースと同様のディレクトリ構造を構築し、\images\228M\View_Use_Case\1.pngS3にアップロードするときは単純なプロセスでした。

これに似たものはありますかgit add images、それとも私が完全に見逃したGitPythonのbashタイプコマンドのような単純なものがありますか?

ファブリックで更新

そのため、kracekumarの推奨に従ってFabricをインストールしましたが、(GitHub)ホストを定義する方法に関するドキュメントが見つかりません。私のスクリプトは、アップロードを機能させるのに非常に簡単です。

それは\o/フラーで動作します。

0 投票する
3 に答える
2808 参照

gitpython - オブジェクトがgitpythonのレポにあるかどうかを確認する

私は、gitリポジトリでファイルを追加および更新するプログラムに取り組んでいます。作業中のファイルが現在リポジトリにあるかどうかわからないため、その存在を確認する必要があります。これは、思ったよりも難しいようです。

'in' 比較は、gitpython のツリーの非ルート レベルでは機能しないようです。元。

だから私は疑問に思っています.与えられたファイルがgitツリーにあることを、作業を試みる前にどのようにチェックするのですか? ツリーにないファイルのオブジェクトにアクセスしようとすると KeyError がスローされるため、try-catch を実行できます。しかし、それは定期的な存在チェックのための例外処理の不適切な使用のように感じます.

本当に明らかなことを見逃していませんか?gitpython (または実際には Python の任意のライブラリ/メソッド) を使用して、コミット ツリー内のファイルの存在を確認するにはどうすればよいですか?

自己回答

OK、私は__contains__ が何をするかを見るためにTree クラスを掘り下げました。サブフォルダーを検索するときは、リポジトリのルートからの完全な相対パスを使用してファイルの存在を確認する必要があります。したがって、上記で行ったチェックの動作バージョンは次のとおりです。

0 投票する
3 に答える
4607 参照

git - GitPythonはshaでツリーとブロブオブジェクトを取得します

ベアリポジトリでGitPythonを使用しており、SHAで特定のgitオブジェクトを取得しようとしています。gitを直接使用した場合、これを行うだけです

私は GitPython を使用していて、特定のツリーを取得したいので、次のようにします。

そしてこれを取り戻す

ツリー オブジェクトができましたが、パス、名前、ブロブなどの属性にアクセスできません。

しかし、次のように入力すると機能します

私の質問の他の部分は、GitPython で blob オブジェクトを取得する方法です。唯一のオブジェクト ツリーに属性 blob があることに気付きました。そのため、SHA によって blob を取得するには、(a) まずそれが属するツリーを知り、(b) この blob を見つけ、(c)data_streamメソッドを呼び出す必要があります。私はちょうどすることができました

しかし、これがこれを行う唯一の方法であることを最初に知りたいと思います。

0 投票する
1 に答える
6824 参照

python - OSError:[Errno2]GitPythonにそのようなファイルまたはディレクトリはありません

GitPythonを使用してリモートリポジトリを自分のマシンにフェッチしています。次のコードはUbuntu12.04で正常に機能しますが、Amazon ec2、Ubuntu 11.10サーバーでは、OSErrorが発生します。[Errno2]そのようなファイルまたはディレクトリエラーはありません。

スクリプトでブロックを実行すると、エラーメッセージが表示されません。しかし、インタラクティブシェルでこれらの手順を試すと、次のスタックトレースが得られます。

しかし、ローカルマシンではそのような問題はありません。何が悪いのかわかりません。どんな助けでも大歓迎です!

0 投票する
3 に答える
6853 参照

python - GitPython モジュールを使用してリモート HEAD ブランチを取得する

GitPython を使用していくつかの Python スクリプトを作成しようとしています。これを使用して、多くのブランチを管理するときに日常のタスクを簡素化できます。

また、複雑なスクリプトを作成することに関しては、Python についてはまったくの初心者です。

これは私が使用した API です: GitPython API doc

GitPython で次のように記述し、HEAD リモート ブランチが指していることを示す部分を解析したいと考えています。つまり、基本的に取得したいのはremotes/origin/HEAD

API ドキュメントを何度も参照していますが、最初はこれらの API ドキュメントの Python 形式を理解するのに苦労しremote_headました。class git.refs.reference.Reference(repo, path, check_path=True)

しかし、それを呼び出す/初期化する方法さえ知りません。

これが私がこれまでに持っていたものであり、私が何をしようとしているのか、単純に「ブランチなし」状態にリセットして、現在のブランチを削除することがわかります。

どんな助けでも大歓迎です!

ありがとう。

0 投票する
2 に答える
797 参照

python - python git チュートリアルに従うことができません

最近 python-git パッケージをインストールしましたが、次のリンクでチュートリアルを実行しようとすると、特定のメソッドが欠落していることに気付きました...

http://packages.python.org/GitPython/0.3.2/tutorial.html#tutorial-label

これが私の通訳から出てきたものです:

0 投票する
2 に答える
3646 参照

python - gitpython を使用してリポジトリへのプッシュを自動化する方法

私のgitローカル作業フォルダーの変更をチェックし、それらをオンラインリポジトリに自動的にプッシュするpythonスクリプトを作成しようとしています。現在、手動で git を使用してのみ実行しています。手動の介入なしでこれを行うには、スクリプトに何が必要かを知りたいです。

シェルに入力するコマンドは次のとおりです。

git push を実行するときは、常にユーザー名とパスワードを入力する必要があります。gitには、sshキーなどを作成することを含むこれを回避する方法があることを知っています。しかし、GitPython がそれを行う何らかの方法があると想定しています。ユーザー名/パスワードをコードで渡すことも、前者を使用することもできます。では、GitPython を使用している場合の認証に関するオプションは何ですか?

編集: github の Windows アプリケーションなど、実際に ssh キーを生成するアプリがあります。Windowsアプリはこれをどのように行っていますか? 私の仮定は、確かにいくつかのgit APIがあるということです...

0 投票する
3 に答える
9907 参照

python - gitPythonを使用してgitreset--hardを実行する方法は?

さて、タイトルは自明です。GitPythonモジュールgit reset --hardを使用して(ターミナルで)実行するのと同等のPythonコードは何ですか?

0 投票する
1 に答える
3100 参照

git - GitPython はリモート ブランチからローカル ブランチを作成します

複数のラボ マシンがあり、ローカル ラボ マシンにリモート ブランチのコピーを作成する必要があります。このための git bash コマンドは次のとおりだと思います。

git checkout -b mybranch origin/mybranch

GitPythonで同等のことを行うにはどうすればよいですか?

変更を行い、その変更を origin/mybranch にプッシュしてから、その変更を他のラボ マシンにプルすることができます。

0 投票する
2 に答える
5741 参照

python - 「git remote show origin」に相当するGitPython?

subprocessの使用からGitPythonの使用まで、リモートに対して少数のローカル リポジトリのステータスをチェックする Python スクリプトを更新しようとしています。GitPython forの同等のコマンドは何ですか、またはローカルリポジトリが早送り可能または古くなっていること(など)git remote show originを確認するより良い方法は何ですか?

最後の 2 行は、私の主な関心事です。これは、 GitPythonを使用して、ハッシュの反復git.Repo.headsgit.Repo.remotes.origin.refs比較.master.commit(など)を行うことで可能になるようです。これは、上記の単一のネイティブ git コマンドよりもかなり多くの作業のように思われ、どちらの側が古いかを判断するにはさらに多くの作業が必要になります。のようなものを期待していましたgit.Repo.remotes.origin.status()GitPythonでこれを判断する適切な方法は何ですか?