145

この質問を読んだ後でも、git-push-current-branch、コマンドをどのように記述すべきかを理解するのにまだ苦労していますgit push。質問のリンクで述べたように、ドキュメントからは明らかではありません。

私の「実世界」の例を使用したいと思います。git status以下は、ブランチの最上位でコマンドを実行したときに表示されるものです。

ブランチ amd_qlp_tester

あなたのブランチは 'origin/amd_qlp_tester' よりも 5 コミット進んでいます。

等...

私のブランチ名は ですamd_qlp_testerが、メイン ブランチから「分岐」していました (用語が間違っている場合は、SVN のバックグラウンドが原因です)。しかし、それから名前もありますorigin/amd_qlp_testser

では、プッシュ コマンドをどのように表現すればよいでしょうか。

次のいずれかですか?

git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push
4

4 に答える 4

108

git push origin amd_qlp_testerあなたのために働くでしょう。とだけ入力git pushすると、現在のブランチのリモートがデフォルト値になります。

push の構文は次のようになりますgit push <remote> <branch>。ファイル内のリモートを見ると、リポジトリの URL を指定.git/configするエントリが表示されます。[remote "origin"]したがって、コマンドの最初の部分で、このプロジェクトのリポジトリの場所を Git に指示し、ブランチを指定するだけです。

于 2013-10-03T08:36:47.123 に答える
10

リンク先の質問の答えは、非常に短いgit pushコマンドを入力して、必要なことを何でも実行できるように git を構成することに関するものです。必要なものと Git-Ese での綴り方を知っていれば、これは素晴らしいことですが、git は初めてです! :-)

あなたの場合、Petr Mensikの答えは(まあ、「a」)正しいものです。理由は次のとおりです。

このコマンドは、ファイル内をルート検索して、名前付きの「リモート」(例: ) を見つけます。構成ファイルには次のものがリストされています。git push remote.git/configorigin

  • どこに (URL ごとに) そのリモートが「存在する」か (例: )ssh://hostname/path
  • 異なる場合、プッシュの行き先
  • どのブランチをプッシュするかを言わなかった場合、何をプッシュするか
  • 実行時に取得されるものgit fetch remote

最初にレポをクローンしたとき (いつでも)、git でこれらのいくつかのデフォルト値を設定しました。URL はあなたが複製したものであり、設定されているか設定されていない場合、残りはすべて「合理的な」デフォルトです...または、うーん、そうですか?

これらの問題は、何が「合理的」であるかについて、時間の経過とともに人々が考えを変えてきたことです。したがって、現在 (git のバージョンと詳細に構成したかどうかによって異なります)、git は将来のデフォルトの変更に関する多くの警告を出力する可能性があります。「プッシュするブランチ」の名前 (<code>amd_qlp_tester) を追加すると、(1) シャットダウンされ、(2) その 1 つのブランチだけがプッシュされます。

より便利にプッシュしたい場合は、次のようにできます。

git push origin

あるいは:

git push

しかし、それがあなたが望むものであるかどうかは、元のデフォルトが合理的であるという「初期の git 作成者」に同意するか、元のデフォルトが合理的ではない「後の git 作成者」に同意するかによって異なります。したがって、すべての構成作業を (最終的に) 実行したい場合は、リンク先の質問 (および回答) を参照してください。

origin/amd_qlp_testerそもそも名前については、「リモート ブランチ」と呼ばれていますが、実際にはローカル エンティティ (リポジトリ内に保持されている名前) です。amd_qlp_tester「あそこはどこだ」という git の最良の推測です。Gitは可能なときに更新します

于 2013-10-03T09:06:22.023 に答える