1

リポジトリのブランチで作業している場合devel、次のコマンドの違いは何ですか? この場合、すでにupstreamリモートを追加しています。

$ git fetch upstream devel
From github.com:meteor/meteor
 * branch            devel      -> FETCH_HEAD

$ git fetch upstream 
remote: Counting objects: 500, done.
remote: Compressing objects: 100% (230/230), done.
remote: Total 326 (delta 227), reused 187 (delta 90)
Receiving objects: 100% (326/326), 46.61 KiB, done.
Resolving deltas: 100% (227/227), completed with 87 local objects.
From github.com:meteor/meteor
 * [new branch]      appconfig  -> upstream/appconfig
 * [new branch]      check-path -> upstream/check-path
   248ff08..4d44a4d  ctl-migrate -> upstream/ctl-migrate
   2c356d2..bfb8fd3  devel      -> upstream/devel
 * [new branch]      release-0.6.5 -> upstream/release-0.6.5
   64b95a4..c0014df  shark      -> upstream/shark
From github.com:meteor/meteor
 * [new tag]         release/0.6.5-rc11 -> release/0.6.5-rc11
 * [new tag]         release/0.6.5-rc12 -> release/0.6.5-rc12

ブランチが指定されていない場合、フェッチはどのように取得するかを知ることができますか?

さらに、なぜmergeコマンドが

$ git merge upstream/devel

しかし、変更をフォークにプッシュしたい場合は、次のように言う必要があります

$ git push origin devel 

スラッシュがある場合とない場合があるのはなぜですか?

4

1 に答える 1

2

git fetch upstream devel以下と同じです:

 git fetch upstream refs/heads/devel

「 In git, how do I check out a remote repository's remote branchs?FETCH_HEAD 」で説明されているように、refspec で宛先を指定していないため、フェッチの更新が行われます。 これは、プル (フェッチ + マージ) を行う場合に使用される短命の参照です。

git fetch upstreamすべてをフェッチするため、単一の参照を更新する必要はありません。


git mergeマージのソースを指定する必要があります。あなたの場合、リモートブランチdevelupstream/develアップストリームは更新されたリモートの名前であり、フェッチ後に更新されるため)
git merge develは現在のブランチでローカルブランチをマージしdevelます...そして、すでにオンdevelになっている場合は、ノーオペレーションになります。

ただしgit push、送信元、ここではローカル ブランチdevel、リモート送信先origin(「アップストリーム リポジトリ」) も指定します。送信先はプッシュ ポリシーによって異なります。がリモート ブランチを追跡していて、現在 を使用している
場合は、単純なもので十分です。詳細については、「新しいブランチを明示的にプッシュする必要があるのはなぜですか?」を参照してください。develdevelgit push

于 2013-08-03T08:06:44.463 に答える