[解決済み] Git Pullができない、ファイルがマージされない
質問
この件に関する同様の質問をすべて読みましたが、以下のどれもがうまくいかないようです。
Delete offending files
git reset --hard HEAD
git stash
git pull
変更を保存したり、リポジトリからプルしたりと、ほぼすべての組み合わせで、マージ不能なファイルが発生します。ローカルの変更をすべて破棄してリモートだけを使いたいのですが、再度クローンすることができません(開発者がこれを行おうとして帯域幅とインターネット使用量の制限を受ける)。どうすればいいでしょうか?
今、試したところです。
git stash
git pull
もうまくいきませんでした。
その他の情報
ローカルに1つコミットがあり、上流にもコミットがあります。そこで
git pull --rebase
が、やはりうまくいきません...。これでは、"exiting because an unresolved conflict"というエラーが出ます。もし私が
git stash, git reset --hard HEAD, git pull --rebase
というエラーが表示され、pullができません。
どうすればいいですか?
リモコンが
origin
で、ブランチは
master
を既に持っているとします。
master
をチェックアウトした場合、次のようにするとよいでしょう。
git fetch origin
git reset --hard origin/master
これは基本的に、現在のブランチを受け取り、それを
HEAD
をリモートブランチの
警告 : コメントにある通りです。 を実行すると、ローカルでの変更が破棄されます。 と オリジンにあるもので上書きする .
また、plumbingコマンドを使っても、基本的に同じことができます。
git fetch <remote>
git update-ref refs/heads/<branch> $(git rev-parse <remote>/<branch>)
git reset --hard
編集部:なぜこれがうまくいくのか、簡単に説明したいと思います。
は
.git
フォルダには、任意の数のリポジトリに対するコミットを格納することができます。コミットハッシュは実際にコミットの内容を検証するためのものであり、単にランダムに生成された値ではないので、リポジトリ間のコミットセットのマッチングに使用されます。
ブランチは、与えられたハッシュへの名前付きポインタに過ぎない。以下はセットの例です。
$ find .git/refs -type f
.git/refs/tags/v3.8
.git/refs/heads/master
.git/refs/remotes/origin/HEAD
.git/refs/remotes/origin/master
これらのファイルには、それぞれコミットを指すハッシュが含まれています。
$ cat .git/refs/remotes/origin/master
d895cb1af15c04c522a25c79cc429076987c089b
これらはすべて git の内部ストレージ機構に対応するものであり、Git の内部ストレージ機構とは独立して動作します。 作業ディレクトリ . 以下のようにすることで
git reset --hard origin/master
git は、オリジン/マスターが指すのと同じハッシュ値を現在のブランチに向けます。そして、作業ディレクトリを強制的に変更して、そのハッシュのファイル構造/内容に一致させます。
この動作を確認するために、次のことを試してみてください。
git checkout -b test-branch
# see current commit and diff by the following
git show HEAD
# now point to another location
git reset --hard <remote>/<branch>
# see the changes again
git show HEAD
関連
-
[解決済み] 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 pull リモートブランチがリモートの参照先を見つけることができない
-
[解決済み】git push >> fatal: 設定されたプッシュ先がありません。
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] git stashを元に戻す
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] 警告: リモート HEAD は存在しない参照元を参照しているため、チェックアウトできません。
-
[解決済み] 新しいBitbucketでリポジトリを削除するにはどうすればよいですか?