2015-09-06 16 views
5

私はこの文書を使用して、いくつかのGitHubリポジトリのセットアップをしました:`origin`には特別な意味がありますか?

echo "# foo" >> README.md 
git init 
git add README.md 
git commit -m "first commit" 
git remote add origin https://github.com/foo-1/foo.git 
git push -u origin master 

originは特別な意味を持っていますか?

純粋に意味論的であれば?

答えて

6

これはクローンアップストリームレポのデフォルト名になりました。
しかし、それは(最大2007年初頭にgit 1.5.0まで)は、もともとだけでなく枝にするために使用:

を非常に最初の1cadb5a (July 2005, git 0.99.2)から「origin」日付を導入コミット。 Aは「公共」のリポジトリを持っていない「個々の開発者」のための作業サイクルを推奨

多少異なります。
はそれを説明commit a692b96、続いています。

(1) "プロジェクトリード"の公開リポジトリ(またはサブシステムを使用している場合は "サブシステム管理者")を "git clone"で作業リポジトリを準備します。
最初のクローニングに使用されるURLは、.git/branches/originに格納されます。

(2)あなたの仕事をしてください。コミットします。

(3)上流の公開リポジトリから「git fetch origin」を実行してください。これは "git pull"の最初の半分だけを行いますが、マージはしません。
公開リポジトリの先頭は.git/refs/heads/originに格納されます。ワークフローは明らかに非常に多くのあなただけ上流のレポを持っているLinux kernelの分散開発、に合わせたことを


.git/branches/originは、あなたがつ以上の上流レポを取得することができcommit 6687f8f (Aug. 2005, git v0.99.5)、前.git/remotes/originにならないだろう。

ここで、マルチヘッドフェッチが完了しました。「git clone」コマンドで作成された新しいリポジトリのデフォルト設定を移行しましょう。

オリジナルの$GIT_DIR/branchesはまだ廃止されていませんが、デフォルトではテンプレートからもリモートディレクトリが作成されます。

その後

commit e125c1a (Nov. 2005, v0.99.9c)が追加さ:

を、デフォルトでは、新たにクローン化されたリポジトリが.git/remotes/originoriginにリモートmasterを追跡するように設定が、originブランチ自分自身を作成するのを忘れていました。
また、リモートHEADが "master"を指しているという前提がハードコーディングされていますが、これは常に正しいとは限りません。に設定されている

上流分岐ヘッドは.git/refs/remotes/代わりの.git/refs/heads/.git/remotes/originファイルにコピーされます。


それは commit dfeff66 (March 2006, git 1.3.0)、上流レポとして「起源」に進化し始めましたこれも同様に反映されます。
この方法でクローン化されたリポジトリをさらに更新するには、Eric Wongが .git/refs/remotesを理解するためにfetch/pullを更新する必要があります。

詳細はcommit c72112eです。フェッチがcommit 5e27e27 (July 2006, git 1.4.2)で導入された '起源' にデフォルト設定



遠隔origin例えばcommit 255cae8 (Nov. 2006, git 1.5.0)

./git/configに記憶されている以前に.git/remotes/originたもの:

URL: proto://host/path 
    Pull: refs/heads/master:refs/heads/origin 

次にとして.git/configに追加されますcommit 955289b (Dec. 2006, git 1.5.0)originから

[remote "origin"] 
    url = proto://host/path 
    fetch = refs/heads/master:refs/heads/origin 

git pullデフォルト:

.git/configファイル内の任意の指定がなければ、git-pullは "git-pull origin" を実行します。これはデフォルトでリモートの最初の "プル" の定義から引っ張られます。 "origin"。 glossary is then updated

origin

デフォルトの上流リポジトリ。 ほとんどのプロジェクトには、少なくとも1つの上流プロジェクトがあります。デフォルトでは、のために 'origin'が使用されています。
新しいアップストリームアップデートは、リモートトラッキングブランチorigin/name-of-upstream-branchにフェッチされます。このブランチブランチは、 "git branch -r"を使用して確認できます。

関連する問題