[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
質問
のローカルファイルを強制的に上書きするにはどうすればよいですか?
git pull
?
シナリオは以下の通りです。
- あるチームメンバーが、制作中のWebサイトのテンプレートを修正しています
- imagesディレクトリに画像を追加している(ただし、ソース管理下に追加することを忘れている)。
- 後日、メールで画像を送ってくる。
- ソース管理下に画像を追加し、他の変更と一緒にGitHubにプッシュしています。
- Gitがファイルを上書きしないようにするため、GitHubから更新を引き出すことができない。
このようなエラーが出ています。
エラーが発生しました。追跡されていない作業ツリーファイル 'public/images/icon.gif' は、マージによって上書きされるでしょう。
Gitに強制的に上書きさせるにはどうしたらいいですか?その人はデザイナーです。通常、私はすべてのコンフリクトを手作業で解決しているので、サーバーには最新版があり、自分のコンピュータで更新すればいいだけです。
解決方法は?
⚠重要:ローカルに変更がある場合、その変更は失われます。を使用するかしないか
--hard
オプションを使用すると、プッシュされていないローカルコミットはすべて失われます。
[*]
というファイルがある場合 ではない によって追跡されているファイル(例えば、アップロードされたユーザーのコンテンツ)は影響を受けません。
まず、フェッチを実行し、すべての
origin/<branch>
を最新に更新しました。
git fetch --all
現在のブランチをバックアップします。
git branch backup-master
次に、2つのオプションがあります。
git reset --hard origin/master
または、他のブランチにいる場合。
git reset --hard origin/<branch_name>
説明
git fetch
は、何もマージやリベースをしようとせずに、リモートから最新版をダウンロードします。
次に
git reset
は master ブランチを先ほど取得したものにリセットします。その
--hard
オプションは、作業ツリー内のすべてのファイルを
origin/master
現在のローカルコミットを維持する
[*]
: からブランチを作成することで、現在のローカルコミットを維持することができることは注目に値します。
master
リセットする前に
git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master
この後、古いコミットはすべて
new-branch-to-save-current-commits
.
未コミットの変更点
しかし、未コミットの変更は(ステージングされていても)失われます。必要なものは必ず隠し、コミットしてください。そのためには、以下を実行します。
git stash
そして、このコミットされていない変更を再適用することです。
git stash pop
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】ローカルの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, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み】なぜ「git commit」は私の変更を保存しないのですか?
-
[解決済み] [email protected] へのいくつかの参考文献のプッシュに失敗しました。
-
gitコミット発生 ! [リモート拒否] master -> master (pre-receive hook declined) 解決策
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] LFはgitでCRLFに置き換えられます - それは何ですか、そしてそれは重要ですか?[重複]。
-
[解決済み] "would clobber existing tag "を取り除くには?
-
[解決済み] VSTS Git Fetch Failed with exit code: 128
-
[解決済み] ssh-keygen' は内部コマンドまたは外部コマンドとして認識されません。