1

現在チェックアウトされていないブランチをリセットすることはできますか?

git svn fetch実行し、svnリモートブランチを追跡するすべてのローカルブランチを新しい変更で更新するcronスクリプトを作成したいと思います。

4

1 に答える 1

2

確かに、簡単に。

git update-ref -m "message" refs/heads/whatever new-value old-value

メッセージは、reflogに表示したいものです。省略できます。

old-value競合状態を回避するためにあります。更新前にrefにその値が残っていることを確認するため、処理中に別のスクリプトがrefを更新すると、操作は失敗します。競合状態のリスクがない場合は、それを指定する必要はありません。

もちろん、あなたは自分が何をしているのかを知る必要があります。重要なリビジョンをそこに落とさないように注意してください。

また、チェックアウトされたブランチに対してこれを実行してはなりません。を実行して、ブランチをチェックアウトしないようにするのが最も便利な場合がありますgit checkout HEAD@{}。これにより、特別な参照HEADがコミットIDを直接保存するようになります。任意の参照を更新でき、戻ってきてgit checkout必要なものを何でも更新できます。

于 2012-08-03T11:54:07.970 に答える