リモートリポジトリに変更をプッシュするときの Git の警告メッセージは何ですか?
質問
説明が少し簡潔です。私は単にローカルの master ブランチにファイルを追加し、それをリモート リポジトリにプッシュバックしただけです。なぜこれが出てくるのか、何か思い当たることはありますか?
警告: 現在のブランチを更新しています 警告 現在チェックアウトされているブランチを更新すると、混乱が生じる可能性があります。 警告: インデックスと作業ツリーには HEAD にある変更が反映されないからです。 という警告が表示されます。その結果、先ほどプッシュしたばかりの変更を見ることになるかもしれません。 警告: そのブランチで 'git diff' を実行すると元に戻ってしまいます。 警告: 作業を始める前に 'git reset --hard' を実行し、リカバリしてください。 警告 の警告が表示されます。設定変数 'receive.denyCurrentBranch' の値を 警告: リモートリポジトリの 'receive.denyCurrentBranch' 設定変数を 'refuse' に設定すると、そのリポジトリへのプッシュが禁止されます。 警告: 現在のブランチへのプッシュを禁止します。 警告: 現在のブランチへのプッシュを禁止するには 現在のブランチへのプッシュを許可するには、'ignore' に設定します。 警告: しかし、これは作業内容を更新する予定がない限り、推奨されません。 警告: しかし、他の方法でプッシュしたものと一致するように作業ツリーを更新していない限り、これは推奨されません。 警告 という警告が表示されます。このメッセージを消すには、'warn' に設定します。 警告 警告を表示します。将来のバージョンの git では、このデフォルトが変更される予定であることに注意しましょう。 警告: が設定されていない限り、現在のブランチの更新を拒否するようになります。 warning: 設定変数に 'ignore' あるいは 'warn' のいずれかが設定されていない限り、現在のブランチの更新は拒否されることに注意しましょう。
どのように解決するのですか?
実は、この意味はほとんどそのままです。あなたがプッシュしようとしているリポジトリで誰かが作業をしていて、その誰かがあなたがプッシュしようとしているのとまったく同じブランチを現在チェックアウトしている、ということです。
なぜなら、彼らは自分がそのブランチの最新版をチェックアウトしたと思っていますが、実際にはあなたがそのブランチをより新しいバージョンに更新したばかりだからです。そのため
git commit
,
その
のコミットは、基本的にあなたがプッシュしたすべてのコミットをリバートします。そして、彼らが
git diff
を実行すると、何も変更していないにもかかわらず、あなたがプッシュしたものと反対のものが表示されます。
そのため、ベアリポジトリではないリポジトリにプッシュするのは一般的にバッドプラクティスだと考えられています。ベアリポジトリ、つまり作業コピーを添付していないリポジトリにのみプッシュすべきです。少なくとも、現在チェックアウトされているブランチにはプッシュしないようにすべきですし、一般的には、他人のリポジトリに自分のコードを押し込むのではなく、代わりに自分からプルするよう依頼すべきです。
Git リポジトリからウェブサイトを提供していて、そこにプッシュすることでウェブサイトを更新したい場合などの特殊なケースでは、現在チェックアウトされているブランチにプッシュすることは実際に理にかなっています。 を更新します。 を実際に更新するフックをインストールしなければなりません。
関連
-
Git: bash: cd: 引数が多すぎる
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git を使ってタグをリモートリポジトリにプッシュするには?
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] Git で、別のブランチの変更を選択的にマージしたり選択したりするにはどうすればよいですか?
-
[解決済み] Gitのプッシュを正しく強制する方法は?
-
[解決済み] リモートレポにプッシュされたGitの特定のコミットを元に戻す
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
-
[解決済み] CVS から Git への移行: $Id$ 相当?
最新
-
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 commit to GitHub エラー、プロンプト ! [リモート拒否] master -> master (pre-receive hook declined) エラー: 失敗しました。
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
[解決済み】Git Push エラー: チェックアウトされたブランチの更新ができない
-
[解決済み] 裸のGitリポジトリにプッシュするには?
-
[解決済み] 単一のgitコミットに対して設定されたユーザーを上書きする
-
[解決済み] シングルブランチクローンを「元に戻す」方法は?
-
[解決済み] 新サーバーへのGitプッシュ/クローン
-
[解決済み] 別のユーザーでコードをコミットするにはどうすればよいですか?
-
[解決済み] Git の 'master' ブランチを 'release' にリネームするには?