3

私はgitリポジトリに取り組んでおり、ローカルの変更を常にリモートサーバーにプッシュしていました...最近まで。git push を実行すると、すべてが最新であると表示されます。実際には、私はすでにリモート バージョンよりも 3 コミット進んでおり、変更が反映されていません。

さまざまな場所に投稿された git log -1, git reset --hard ソリューションを試しましたが、何も解決しません。先行しているコミットの数を反映するために、その数を変更する必要がありますか?

簡潔に 1 から 5 までの 5 つのコミットがあるとします。私のローカル バージョンは 5 で、リモート バージョンは 2 です。Gitk は、私の MASTER をコミット 5 に、remotes/origin/master をコミット 2 に表示します。ローカル バージョンを 2 (または 3、リモートにプッシュされなかった最初のコミット) にリセットしますか? 私の変更はどうなりますか?git のドキュメントには、 --hard はすべての変更を破棄すると書かれていますが、それは変更が完全に失われることを意味しますか? かなりの変更が加えられたので、これら 3 つのコミットのコミット履歴を保持したいと思います。

4

2 に答える 2

3

まず、構成を注意深く調べます。

  1. あなたが本当にそれを押したことを確認してください。
  2. 押したと思われる場所に押し込んだことを確認してください。

あなたを助けることができるもの:

$ git log --full-history // is your commit really there?
$ git reflog // operation history
$ git remote -v // what are your remotes? 
$ git remote show DESIRED_REPO // do you have the remote repo you wanted to push to configured? the DESIRED_REPO?

最後に、正しいプッシュ記法を使用していることを確認してください。

  1. と の間には違いがgit push publicありgit push --repo=publicます。最初は常にパブリックにプッシュし、次にプッシュしているブランチのリモートが設定されていない場合にのみプッシュします。
  2. ブランチの名前がリモートの対応するブランチとは異なる場合、これは違いを生む可能性があります。

$ git push remote local_branch:remote_branch // I've made this error today by swapping places, with remote_branch:local_branch Git will not find the branch to update.

お役に立てれば。私の場合、試したコマンドを再検討しながらマニュアルを注意深く読み直すと、問題が解決し、明らかになりました(ブランチ名が入れ替わっています)。

于 2014-01-31T16:04:35.427 に答える
3

私は数分前に同じ状況にありました (それが私がこのスレッドに迷い込んだ理由です)。Anwyay、私はそれを解決することができましgit push origin mastergit push.

これは、新しいブランチを作成し、新しいブランチへのプッシュを開始してから、マスター ブランチに戻ってそのブランチに再度プッシュしようとした後に発生しました。

于 2015-10-14T02:07:53.927 に答える