[解決済み】git pullでpullするたびに強制的にすべてを上書きするには?
質問
私はCENTRALベアリポジトリを持っており、3つの開発者リポジトリがそれに正常にプルおよびプッシュしています。
1つはライブサーバーで、もう1つはテスト/ステージサーバーで、それぞれがそれぞれのブランチからプルしています。
シナリオはこうです。私は
post-update
CENTRAL リポジトリのフックスクリプトは、自動的に test リポジトリと live リポジトリにアクセスし、それぞれで pull コマンドを実行します。これにより、テストサーバーとライブサーバーの両方が更新され、どのブランチに新しいコミットがあるかに応じてすべてが更新されます。これで、すべてがうまくいくようになりました。
問題は、緊急時にサーバー上のファイルを直接更新することがあります(ftp などで)。その場合、CENTRAL の更新後スクリプトはマージ/上書き競合が発生するため、失敗します。このシナリオを回避する方法はありませんし、避けられません。
私が実現させたいことは、こうです。本番サイトとテストサイトからのプルを 常に プル時に上書き/マージします。 常に これらのレポは開発用ではないため、プルオンリーになります。
いろいろと調べてみたのですが、プルダウンメニューを持つための良い解決策は見つかりませんでした。 常に は、ローカルファイルの上書きを強制します。このようなことは可能でしょうか?もし可能であれば、素晴らしい開発シナリオになると思います。
解決するには?
本当に理想的なやり方は
pull
を全く使用せず、代わりに
fetch
と
reset
:
git fetch origin master
git reset --hard FETCH_HEAD
git clean -df
(変更する
master
を、追いかけたいブランチに変更します)。
pull
は、何らかの方法で変更をマージすることを目的として設計されているのに対し
reset
は、単にローカルコピーを特定のコミットに一致させることを目的として設計されています。
とは少し異なるオプションを検討するとよいでしょう。
clean
は、あなたのシステムのニーズによって異なります。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】gitがローカルバージョンをリモートバージョンに置き換える
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み] ERROR: リモートレポ 'origin' のクローン作成に失敗しました。
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] 現在の支店にはトラッキング情報がありません
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?