1

Webサイトを含むローカルで実行されているフォルダーがあります。それは私のコンピューターのxamppで非常にうまく動作します。私はそれが過去にgitに接続されていることを知っており、コマンドラインを介して変更を追加、コミット、プッシュし続けます。他のすべてのgitリポジトリと同じように機能しますが、githubダッシュボードでオンラインで更新されていつ表示されるかを除きます。それらは最後に編集されたなどです。

問題は、この1つのフォルダー、デモがgithubダッシュボードで接続されていると思われるリポジトリを更新していないことです。たくさんの変更を加えて、どこかにコミットしていますが、期待した場所ではありません...最も多く表示されています最近の変更は4か月以上前です!2つを簡単に再接続する方法はありますか?githubに表示されているゴーストリポジトリにあるものを失ってもかまいませんが、ローカルのデモフォルダーにあるものを失うことはできません。私は基本を行うのに十分満足していますが、予期しないことが起こった場合、私は恐怖に陥り、すべてを削除します!

4

1 に答える 1

0

このメッセージは、ローカルリポジトリがGitHubリモートリポジトリから分岐していることを意味します。つまり、リモートには存在しないローカルコミットがあり、その逆も同様です。

リモートリポジトリに何が起こったのか本当に気にしない場合は、実行git push -fしてプッシュスルーを強制できますが、何らかの理由で終了した非ローカル変更をすでにプルしている他のリポジトリ(自分または他の誰か)がある場合GitHubでアップすると、これは本当に彼らのために物事を台無しにするでしょう!ローカルにないGitHubの変更はすべて失われます。

疑わしい場合は、ローカルの変更をコミットし、現在のHEADコミットID(git showそれを見つけるために使用できます)をメモしてから、リモートの変更をプルダウンし、マージの競合を修正して、プッシュバックします。問題が発生した場合は、いつでもgit reset --hard <commit-id>以前の場所に戻ることができます。このルートは履歴を変更しないため、何かを失う危険はありません。

基本的に、Gitでは、リポジトリのコミット履歴を変更する操作に注意する必要があります。変更すると、push -fリポジトリ間で履歴に一貫性がなくなる可能性があるためです。一方、レポの履歴に追加するだけの場合(たとえば、、、などを使用して行う必要があります)、レポがgit commit壊れgit pullgit merge場合は、前に巻き戻すだけでいつでも作業状態に戻すことができます。問題のあるコミットはgit reset


また、GitHubで、を使用していないコミットを確認しgit log origin/master...masterたりgit diff origin/master...master、実際の変更を確認したりできます(git fetch最初に実行するようにしてください)。

于 2012-04-19T12:15:04.187 に答える