1

私はGitが初めてです。2 つのコミットのプッシュとマージに成功しました。しかし、gitステータスを確認すると、まだ

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)

no changes added to commit (use "git add" and/or "git commit -a")

git push(***は会社の Git サーバーのアドレスであり、以下では無視されます) の後の出力:

$ git push
Total 0 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://***
 ! [remote rejected] master -> refs/for/master (no new changes)
error: failed to push some refs to 'ssh://***'

誰かが理由を知っていますか?

4

2 に答える 2

1

言及しているエラーメッセージは、 Gerritコードレビューサーバーrefs/for/masterにプッシュしていることを示しています。Gerritは完全に準拠したGitサーバーですが、従うべき特別なルールがあります。

コードレビューを適切に送信する方法については、Gerritのドキュメントを参照してください。

おそらくさらに良いアイデアは、コミットを適切にアップロードする方法について、会社のGit/Gerrit管理者に尋ねることです。

いずれにせよ、Gerritにアップロードした変更は、origin/masterGerrit Webインターフェースを使用している誰かによって承認されるまで、公式にはなりません(そしてブランチを移動しません)。

Gerritで承認されると、次回git fetch(または)に変更を確認できるようになります。repo sync

于 2013-01-21T07:06:43.700 に答える
0

残りの投稿を読んでください。問題は次の 2 つのいずれかです。

  1. コミットされていない、または追加されていないファイルがあります*

    新しいファイルが作成され、コマンド ラインで @ コミットすると、git 拡張 UI のように自動的に追加されません。すべて(または一部)、つまり git add --all (または一部のパスとファイル)を追加する必要があります

  2. ローカル リポジトリがリモート (オリジン) と同期されていません。プッシュする前に、フェッチしてマージまたはプルしてください。(追加されていないファイルがマージの実行を妨げている場合、別のエラーが発生します。すべてのファイルが追加されていることを確認してから、元のファイルからマージすると、すべてが機能するはずです)

于 2013-01-21T02:36:02.297 に答える