これはpygit2を使用して私にとってはうまくいきます:
- リポジトリのマスター ブランチのクローンを作成する
- ブランチを作成する
- 変更を加える
- ブランチを起点にプッシュする
これは私にとって失敗しています:
- リポジトリのマスター ブランチのクローンを作成する
- 既存のブランチをチェックアウトする
私はいつも切り離されたHEADになってしまいます。デタッチされたHEADを取得せずにチェックアウトを行うためのトリックはありますか? 私はこれに1日以上費やしましたが、これを適切に行う方法があるに違いないことはわかっていますが、オンラインで見るすべての例は、以下で行うことを行います...
これは、私が試したすべてのブランチで毎回失敗する、簡略化されたテスト ケースです。
repo = pygit2.clone_repository(url,dir,bare=False,checkout_branch="master",callbacks=RemoteCallbacks())
checkout_branch = repo.branches["origin/{0}".format(branch))
ref = repo.lookup_reference(checkout_branch.name)
repo.checkout(ref)