4

変更を NAS のレポにプッシュしようとしています。よくわからない失敗です。

ドキュメントには、デフォルトpushでは早送り更新でのみ機能すると記載されています。けっこうだ。だから私はgit pull(私のリモコンはと呼ばれていますrubix):

D:\RoboCup\Dev\TinMan>git pull rubix master
ssh://rubix/volume1/git/TinMan から
 * ブランチ マスター -> FETCH_HEAD
すでに最新です。

すべてがよく見えます。押してみようかな…

D:\RoboCup\Dev\TinMan>git push rubix master
ssh://dnoakes@rubix/volume1/git/TinMan へ
 ! [拒否] マスター -> マスター (非早送り)
エラー: 一部の参照を「ssh://dnoakes@rubix/volume1/git/TinMan」にプッシュできませんでした
履歴が失われないように、早送り以外の更新は拒否されました
再度プッシュする前に、リモートの変更をマージしてください。「についての注意」を参照してください
詳細については、「git push --help」の「早送り」セクションを参照してください。

ドキュメントを読みましたgit pushが、現時点では、なぜこの問題が発生しているのか理解できません。

その他のコンテキスト情報は次のとおりです。

D:\RoboCup\Dev\TinMan>git --version
git バージョン 1.7.0.2.msysgit.0

D:\RoboCup\Dev\TinMan>git ブランチ
* (分岐なし)
  主人

その最後の行は疑わしいようです。どうすればどのブランチにもいないことができますか? 追跡されていないファイルと変更された (ステージングされていない) 変更もいくつかあることに注意してください。

どんな助けでも大歓迎です。ありがとう。

4

4 に答える 4

5

同期する方法の 1 つを次に示します。

まず、変更をコミットgit logしてから、プッシュしたいコミットをメモするために使用します。

次に、マスターを次のようにリモコンに合わせてリセットします。

git checkout master
git reset --hard remotes/rubix/master 

最後に、保持したいコミットをチェリーピックします

例:

git cherry-pick 111aaa111
git cherry-pick 123abc123

これでプッシュが機能するはずです。

git push rubix master
于 2011-04-20T00:34:32.960 に答える
2

どうしてブランチがなくなったのかわかりません。リベースの最中かもしれません。コミットを直接チェックアウトした可能性があります。いずれにせよ、これはおそらくあなたのプッシュの苦痛の原因です。git reflogそれが明らかな原因を示しているかどうか、そしてあなたがどこにいるかを確認してくださいgit log。で変更されたファイルを見て、git diffそれらを保持するかどうかを決定します(保持するgit add . && git stash場合は使用します)。次に、変更や現在の履歴が必要ないことを確認したら、git checkout master元に戻します。

于 2011-04-19T23:06:25.923 に答える
1

これと同じ問題があり、この質問に出くわしたので、問題の解決策を投稿すると思いました。

注: Windows で git を使用しています。

いつもの「開発」ではなく、「開発」という大文字と小文字の異なるローカル ブランチを誤ってチェックアウトしてしまいました。次の手順に従うまで、問題を修正することはできませんでした (正しいケースでブランチをチェックアウトした後でも)。

  1. 正しいケーシング「開発」でブランチをチェックアウトします
  2. 変更、追加/コミット
  3. 拒否されることなくプッシュできるようになりました
于 2012-07-25T19:50:44.653 に答える
1

それでも機能しない場合は、エイリアス ブランチ名を受け入れるように git を構成する必要があるかもしれません。

git config --global push.default upstream

デフォルトでは、リモート ブランチ名がorigin/masterの場合、git はローカル トラッキング ブランチ名がmasterの場合にのみプッシュを受け入れます。ローカル追跡ブランチをmaster_xxxとして作成すると、 push.default構成を上流に変更しない限り、git はプッシュを受け入れません。

于 2012-07-10T05:55:00.890 に答える