問題タブ [pygit2]
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.
git - PyGit2 を使用して個々のハンクをステージングする
私はgit add -p
pygit2に実装しようとしているので、それに代わるフロントエンドを作ることができます。そのため、何よりもまず、個々のハンクをステージングできる必要があります。
diff_to_workdir
次のように、インデックスから使用してハンクを見つけることができます。
しかし、そこから先に進む方法が正確にはわかりません。実際、私の直感では、私は何もステージングするのではなく、自分でコミットをまとめてレポに渡します。
最終的には、ハンクからブロブを作成し、TreeBuilder を使用してコミットを作成できるようにする必要があると感じています。しかし、私はそこに着くことができません!ファイルからのみブロブを作成できるようです。誰でも少し指導できますか?
python - リモートの変更を pygit2 でプルして統合する
次の問題があります。フォルダーでリポジトリを検索し、ネット上のリモートを検索して、すべての新しいデータをリポジトリに取り込み、新しい変更について通知するスクリプトを作成しています。主なアイデアは明確です。Windows 7 x64でpython 2.7を使用しており、pygit2を使用してgit機能にアクセスしています。コマンドラインは単純なコマンド「git pull 'origin'」をサポートしていますが、git api はより複雑で、方法がわかりません。さて、私はここまで来ました:
import pygit2
orepository=pygit2.Repository("path/to/repository/.git")
oremote=repo.remotes[0]
result=oremote.fetch()
このコードは、新しいオブジェクトを取得してリポジトリにダウンロードしますが、マスター ブランチを更新したり、新しいデータをチェックアウトしたりしません。TortoiseGit でリポジトリを調べると、ログを表示するときに新しいログ メッセージが表示されなくても、何もチェックアウトされていないことがわかります。git pull コマンドを使用して、リポジトリと作業コピーをまったく更新する必要があります。今、私の質問: pygit2 を使用してすべてを行うには、何をする必要がありますか? つまり、変更をフェッチしてダウンロードしますが、その場合はどうすればよいでしょうか? マスター ブランチと作業コピーも更新したいのですが、問題を解決していただきありがとうございます。よろしくお願いします。
python - pygit2 でブランチをチェックアウトするにはどうすればよいですか?
pygit2
ブランチ名をチェックアウトするために使用したい。
たとえば、次の 2 つのブランチがある場合: master
andnew
とHEAD
is atmaster
の場合、次のことができると予想されます。
あるいは
しかし、どちらも機能せず、pygit2 ドキュメントにはブランチをチェックアウトする方法が記載されていません。
git - pygit2のRepository.checkout()とRepository.checkout_head()の違いは何ですか?
pygit2 を使用してリモートから変更をプルして統合する場合、最後のステップは、Repository.checkout()
またはを使用してチェックアウトすることRepository.checkout_head()
です。どちらを使用しますか?
これらは両方とも、引数としてチェックアウト戦略を取ります。現在、GIT_CHECKOUT_SAFE、GIT_CHECKOUT_SAFE_CREATE、GIT_CHECKOUT_FORCEなど
をチェックアウトするための戦略がいくつかあります。
私が直面している問題は、インデックス ファイルをチェックアウトした後でも、ステージングされたファイルがいくつか変更されていることです。
r.repo.status()
{'README.md': 2}
戦略 GIT_CHECKOUT_FORCE を使用すると、インデックスは空になり、コミットも保存されます。
GIT_CHECKOUT_FORCE 戦略を使用すべきでない場合はいつですか?
プロセスの段階的なコードは次のとおり
r.repo
です。 はリポジトリ オブジェクトです。remo
名前付きのリモートですssh-sansa
注: これは、 pygit2 を使用して変更をプルおよび統合するためのフォローアップの質問であり、別の質問はこちら
libgit2 - libgit2 / pygit2 update-server-info を実行する方法はありますか?
HTTP サーバーからアクセスするためのリポジトリを準備する必要があります。
どうやら、レポで git update-server-info を実行する必要があるようです。これにより、ダムの HTTP サーバー経由でアクセスできるようにするファイルが更新されます。
Pygit2 / Libgit2 を使用してレポを作成しています。libgit2 を使用すると、update-server-info を実行できますか?それとも、コマンド ライン git を何らかの方法で実行する必要がありますか?
私は広範囲に検索したので、それが利用可能であれば、方法を見つけるために間違った場所を探しています.
python - Pygit2 - 早送りなしでブランチをマージする
私は基本的に「git merge --no-ff branch」を実行してブランチをマージしようとしています。Pygit2 のドキュメントを見ると、これを行う正しい方法がまったくわかりません。直接の考えは、次のようなことをすることです:
ただし、早送りなしでマージするためのオプションはありません。私に洞察を与えることができるpygit2を広く使用している人はいますか? すべてのヘルプは大歓迎です。