質問
私は何かに取り組んでいて、それが完全にねじ込まれていると決めました...その一部を犯した後。そこで、次のシーケンスを試しました。
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
私がしていることは、私が頭を向けて一生懸命リセットしようとすることです。これにより、地元のすべてのコミットが一掃されます。
git reset --hard HEAD^
実行する必要があります
git fetch
すべての変更を取得すると、「あなたのブランチが先にある」というメッセージが表示されません。
リモートが同期しなくなり、更新する必要があるインスタンスを見てきました。もし reset --hard
またはa branch -D
仕事に失敗して、試してみてください
git pull origin
git reset --hard
私はしなければなりませんでした:
git checkout -b master
Gitが言ったように、それは存在しないと言っています。
git -D master