git remote --vリモート情報を表示する
Origin https://github.com/test/testing-iOS.git (fetch)
Origin https://github.com/test/testing-iOS.git (Push)
これは、フェッチとプッシュの両方が同じリモートURLを使用していることを示しています。
質問:
フェッチとプッシュのリモートURLは(ある場合)いつ異なりますか?
フェッチまたはプッシュのリモートURLを個別に変更するには、どのコマンドを使用できますか?
はい(別のリモートを使用します)。これが、Git 2.5が新しいref短縮形@{Push}
を導入する理由です。
「 プッシュされていないGitコミットの表示 」を参照
フェッチまたはプッシュのリモートURLを個別に変更するには、どのコマンドを使用できますか?
別のリモコンが必要です:
git remote add myfork /url/for/my/fork
git config remote.pushdefault myfork
GitHubブログの投稿 " 三角ワークフローのサポートの向上 "は、@{Push}
の使用方法を示しています。
最後のプッシュ以降に現在のブランチに追加したコミットを確認します。
git clone https://github.com/YOUR-USERNAME/atom
cd atom
git config remote.pushdefault Origin
git config Push.default current
remote.pushdefault
はwhereを指定します(リモートリポジトリに)。Push.default
指定whatは、refspecが明示的に指定されていない場合にPush(what refspec)を指定します。current
、後者の場合、「現在のブランチをプッシュして、受信側の同じ名前のブランチを更新する」ことを意味します。次のブランチは、あるURLからフェッチし、別のURLにプッシュします。
git remote add upstream https://github.com/atom/atom
git fetch upstream
git checkout -b whizbang upstream/master
(ここでwhizbang
ブランチはupstream/master
を追跡しますが、Origin/whizbang
にプッシュします)
git log @{Push}..
これは、現在のブランチがgit Pushによってプッシュされるリモート追跡ブランチの現在の値、つまり
@{Push}
を示す新しいOrigin/whizbang
表記を使用します。
表記whizbang@{Push}
を使用して、任意のブランチのプッシュ宛先を参照することもできます。
ドキュメントから、フェッチとプッシュのURLは同じである必要があります。
http://git-scm.com/docs/git-remote
プッシュおよびフェッチURLを設定するコマンド
'git remote set-url' [--Push] <name> <newurl> [<oldurl>]
プッシュURLとフェッチURLは、別々に設定できても、同じ場所を参照する必要があることに注意してください。プッシュURLにプッシュしたものが、フェッチURLからすぐにフェッチした場合に表示されるはずです。 1つの場所(アップストリームなど)からフェッチして別の場所(公開リポジトリなど)にプッシュしようとしている場合は、2つの別々のリモートを使用します。