12

バージョン管理にgitを使用していますが、現在、最新バージョンをアップロードしようとすると多くの警告が表示されます。私はgitを初めて使用し、制限に我慢できません。すべてを削除して現在のバージョンをアップロードする方法はありますか?

これは、アップロードしようとしたときに私が今得ているものです。

$ git push origin master
Username for 'https://code.google.com':
Password for 'https://<removed>@code.google.com':
To https://code.google.com/p/<removed>/
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://code.google.com/p/<removed>/'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
4

3 に答える 3

21

1.)リポジトリフォルダ内のすべてを削除します

2.)実行git rm *してgitにすべてのファイルを削除するように指示します(git statusステージングされていないファイルが残っているかどうかを確認します)

3.)リモートgitサーバー上のすべてのファイルを削除するにはgit commit -a -m "commitmessage"aを実行しますgit push origin master

4.)空のリモートリポジトリがあるかどうかを確認します

5.)すべての新しいファイルをローカルリポジトリフォルダにコピーします

6.)実行git add *してgitにすべての新しいファイルを追加するように指示します(git statusステージングされていないファイルが残っているかどうかを確認します)

7.)新しいファイルをコミットしてプッシュします

これで、リモートgitリポジトリにバージョンがあるはずです。

于 2012-06-17T13:03:11.283 に答える
16

プッシュしようとしているコミットにマージされていないコミットがリモートにあるため、プッシュできません。現在リモートにあるすべての変更を破棄したい場合は、次のようにすることができます。

git fetch
git merge -s ours origin/master
git push origin master

これにより、ローカルリポジトリにないリモートに導入された変更が破棄されることに注意してください。

于 2012-06-17T15:18:42.353 に答える
2

リモートリポジトリからファイルを完全に削除し、最初からプッシュされていないかのように振り返って、最初からやり直したい場合は、この回答に基づいて次のようにすることができます。

以下をローカルで実行します(*すべてのフォルダー/ファイルが削除されることに注意してください)。

git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch *" -- --all

次に、git参照をローカルで更新して、それらのファイルのすべての履歴を忘れるように強制します。

rm -rf .git/refs/original/

git reflog expire --expire=now --all

git gc --prune=now

git gc --aggressive --prune=now

次に、FORCEを使用してすべての変更をリモートリポジトリにプッシュし、リモートリポジトリがこれらのファイルもすべてクリアするようにします。

git push --all --force

これにより、ファイルが存在しないかのようにリモートリポジトリがクリーンアップされます。

于 2017-10-02T09:56:35.610 に答える