web-dev-qa-db-ja.com

リモートリポジトリをローカルコミットで上書きする方法を選択するにはどうすればよいですか?

基本的に、制御できないイベントのために、リモートリポジトリが移動されました-その間、ローカルコピーで多くの作業を行いましたが、実際にはリモートリポジトリのすべてをローカルファイルで上書きしたいだけです。

しかし、私はこれを行うことができないようです。最も近い方法はプルしてマージすることですが、それからマージのための複雑なプロセスを順を追って説明します。マージしたくありません。上書きしたいです。新しいブランチは必要ありません-基本的に、新鮮なスタートが欲しいだけです。

リモートリポジトリは混乱していません。

35
ericgr

ブランチを削除して再作成できます。上書きしたいブランチがdevであるとしましょう:

リモートホスト(github)のブランチを削除します

git Push Origin :dev  

その後、開発者をもう一度プッシュします。

git Push Origin dev

私はホスティングにGithubを使用しており、混乱を解くことには慣れていませんが、混乱を解くにはうまくいくと思います。 :)


@meleeが述べたように、以下も使用できます。

git Push Origin dev -f

-fは有効ですが、--forceは大丈夫です)

git Push Origin dev --force

ブランチを強制的に上書きします。前にやったことを覚えています。ありがとう@melee。 :)

51
Kjuly

リモートリポジトリからデータをプルダウンせずに、マスターブランチでこれを行う方法:

  1. 新しいフォルダーを作成し、gitを初期化し、リモートリポジトリを追加します-プルまたはフェッチしないでください!

    mkdir clean_repo

    git init

    git remote add Origin <remote-repo>

  2. 空のローカルブランチを作成(および切り替え)し、これにテストファイルを追加、コミット、プッシュします。

    git checkout test

    echo "test" > test

    git add .

    git commit -m "adding test"

    git Push Origin:test

  3. Github/bitbucketで、デフォルトのブランチを新しいブランチに変更します

  4. ローカルで、マスターブランチに切り替え、コミットし、リモートリポジトリ/ブランチにプッシュします

    git checkout -b master

    git Push Origin --mirror

4
a20

私はgithubエコシステムの専門家ではありませんが、リモートリポジトリのURLをリセットできないのはなぜですか?

git remote set-url Origin /path/to/your/new/remote/repository/url

here を見ることで、上流ブランチを設定する必要があるかもしれません。

git remote...、ご覧ください こちら

0
Simple-Solution

同じ問題を抱えています。このコマンドはうまくいきました。

git Push --set-upstream Origin master --force
0