バックグラウンドで何かを実行したいのですが、私のリモートブランチで何らかの変更が起きると、基本的にgit pull --rebase
が実行されます。ほとんどの場合、競合がなければバックグラウンドで静かに動作します。紛争が起きると、私はrebase-resolve-conflictの段階に陥り、待っているすべてのものを解決します。これはどうすればいいですか?すでにこれを行っている既存のソフトウェアはありますか?Git:リモートトラッキングブランチで変更が発生した場合、ローカルブランチを自動更新する方法はありますか?
答えて
リモートリポジトリを制御できない場合、1つの解決策として、git fetch
、またはgit pull --rebase
を定期的に実行することが考えられます(crontab)。選択する正確なコマンドはワークフローによって異なりますが、個人的にはgit fetch
を使用することを好みます。これは、マージまたはリベースするタイミングと方法を決定できるからです。これはgitのコマンドをあなたの持つすべての分を実行します
* * * * * git -C PATH_TO_LOCAL_REPO fetch
または
* * * * * git -C PATH_TO_LOCAL_REPO pull --rebase
:
crontab -e
、そのように行を追加します。定期的に実行コマンドを実行するには
ユーザーのアクセス許可。
リポジトリのリストにはgitコマンドを適用したい場合は、行を追加することができますすることができます
* * * * * /home/myself/scripts/git-refresh.sh
のgit-リフレッシュは、すべてのリポジトリに適用するスクリプトです。
-C
オプションを使用すると、ディレクトリを変更せずにgitコマンドを実行できます。 man pageから:
-C <path>
実行gitのではなく、現在の作業ディレクトリの中で開始されたかのように。
しかし私はデスクトップ上にあるすべてのリポジトリにこれを手動で追加する必要があります!私はおそらく私のマシンに何百ものレポを持っています。たとえば、以下のように手動で行うことはできません。私はgitプロジェクトのルートにある端末で 'git-keep-fresh.sh&'のようなスクリプトを実行します。次に、これは対立に関する私の質問の2番目の部分をどのように処理しますか? – pathikrit
私は自分の答えを更新しましたマルチリポジトリの側面を考慮に入れてください。紛争解決のためには、すべての場合において、手動化する必要がある場合があります。自動化できない場合があります。 –
@pathikrit:最初の質問は、1つのリポジトリの解決策を見つけることを暗示していたことに注意してください。 cronjobを使用すると、任意のスクリプトを実行できます。 gitリポジトリのディレクトリをスキャンして(開始点は '$ HOME -name .git')、リポジトリの明示的なリストを渡すことができます(' cat $ HOME/.repositories') 。 – LeGEC
フォーク
同期上流リポジトリとアップツーデートそれを維持するために、リポジトリのフォークの同期と呼ばれるこのプロセス。残念ながら、GitHubには自動同期機能はありません。しかし、サーバー上でcronジョブとして追加するのは簡単なので、手動で行う必要はありません。例えば:
cd/srv/mirrorrepo; git上流マスタを取得します。 gitのプッシュ原点マスター
後プラグインは
- 1. データグリッドビューで変更が発生した場合のデータベースの更新方法
- 2. ローカルブランチがリモートトラッキングブランチを失った
- 3. ローカルブランチのリモートオリジンをGITの新しいブランチに変更します
- 4. ローカルブランチとリモートブランチ間で変更をマージする方法はありますか?
- 5. ListAdapterを自動更新または自動更新する方法は?
- 6. Subversion:競合が発生した場合に更新が失敗しますか?
- 7. WordPress - ページタイトルが変更された場合、自動的にメニュータイトルを更新する
- 8. データベースが変更された場合、内容を自動的に更新する
- 9. リモートとgitの競合が発生しました。ローカルに変更する必要があります
- 10. ローカルブランチがGITリポジトリから削除された場合、ローカルブランチをクリーンアップするには
- 11. git pullが自動的にサブモジュールを更新する方法はありますか?
- 12. テキストフィールドの値が手動またはプログラムによって変更された場合に、変更イベントを発生させる必要がありますか?
- 13. flowplayerプレイリストトラック自動変更でエラーが発生しています
- 14. ブラウザが更新された場合、URLを変更します
- 15. ファイルの変更時にEMF ResourceSetを自動的に更新する方法はありますか?
- 16. gitローカルブランチの変更を破棄する方法は? gitのローカルブランチの変更を破棄するためにどのよう
- 17. ELタグ値を自動的に更新する方法はありますか?
- 18. フレックスリストのデータプロバイダを自動更新する方法はありますか?
- 19. ページを一度だけ自動更新する方法はありますか?
- 20. jpaのエンティティクラスを自動的に更新する方法はありますか?
- 21. ActiveRecord CollectionまたはArrayでActiveRecord :: RecordInvalidエラーが発生した場合の更新
- 22. ウィンドウのサイズが変更された場合、ボタンのサイズを自動的に変更する方法はありますか?
- 23. ログインパスワードの自動更新phpでAndroidエラーが発生しましたか?
- 24. gitがローカルブランチから変更をフェッチする
- 25. プロビジョニングプロファイルが「自動」に設定されている場合は、更新する必要がありますか?
- 26. gitローカルブランチをリモートにするローカルブランチにはすでにアップストリームがあります
- 27. データベース内のデータが変更された場合、自動更新ページ
- 28. RStudioのオプションを自動的に変更する方法はありますか?
- 29. 変更をコミットしているときにGitで競合が発生した場合の問題?
- 30. Redmineでは、重複した問題のフィールドを自動的に更新する方法はありますか?
あなたは、リモートリポジトリにフックを追加したり、X分ごとにローカルでジョブを実行する必要が役立つかもしれません。 –
あなたのリポジトリはgit serverでホストされていますか? Github、Gitlab、Bitbucket、..? –
@OrtomalaLokni:なぜそれは重要ですか?私は、遠隔地のGitサーバーについて一般的に質問しています... – pathikrit