私は何かに取り組んでいて、それを完全にねじ込んだと決めました...それをいくらかコミットした後。そこで、次のシーケンスを試しました。
git reset --hard
git rebase Origin
git fetch
git pull
git checkout
その時点でメッセージを受け取りました
Your branch is ahead of 'Origin/master' by 2 commits.
ローカルコミットを破棄したい、ローカルディレクトリを消去してすべてを再ダウンロードする必要はありません。どうすればそれを達成できますか?
git reset --hard Origin/master
Origin/master
にないすべてのコミットを削除します。ここで、Origin
はリポジトリ名で、master
はブランチの名前です。
余談ですが、mipadiによる答え(ちなみにうまくいくはずです)とは別に、次のことを知っている必要があります。
git branch -D master
git checkout master
また、having to redownload everything
(引用の言い換え)なしで、必要なことを正確に実行します。これは、ローカルリポジトリにリモートリポジトリのコピーが含まれているためです(そして、そのコピーはローカルディレクトリと同じではなく、チェックアウトされたブランチと同じではありません)。
ブランチを完全に削除することは完全に安全であり、そのブランチを再構築することは非常に高速であり、ネットワークトラフィックを必要としません。 gitは基本的にローカルリポジトリであることを忘れないでください。リモートブランチでさえローカルにコピーを持っています。特定のローカルコピーが実際にはリモートブランチであることをgitに伝えるメタデータはほんのわずかです。 gitでは、すべてのファイルは常にハードディスク上にあります。
マスター以外のブランチがない場合は、次を実行する必要があります。
git checkout -b 'temp'
git branch -D master
git checkout master
git branch -D temp
私がしていることは、HEADにハードリセットすることです。これにより、すべてのローカルコミットが消去されます。
git reset --hard HEAD^
実行する必要があります
git fetch
すべての変更を取得すると、「ブランチは先です」というメッセージは表示されません。
リモートの同期が取れなくなり、更新する必要がある場合があります。 reset --hard
またはbranch -D
が機能しない場合は、試してください
git pull Origin
git reset --hard
私はやらなければなりませんでした:
git checkout -b master
gitが存在しないと言ったように、それは
git -D master