2015-09-06 4 views
5

я установки несколько GitHub репо с использованием этой документации:Имеет ли «происхождение» какое-либо особое значение?

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

Теперь это просто имя по умолчанию для клонированного репозитория восходящего потока.
Но это было отделение, а первоначально (до тех пор, мерзавец 1.5.0 в начале 2007 года):

Самый первый не совершат введя «origin» датируется 1cadb5a (July 2005, git 0.99.2).
За ним следуют 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 не станет .git/remotes/origin до того commit 6687f8f (Aug. 2005, git v0.99.5), когда вы можете выборки более чем один вверх по течению репо.

Теперь выборка с несколькими заголовками завершена, давайте перенесем конфигурацию по умолчанию для новых репозиториев, созданных с помощью команды «git clone».

Оригинал $GIT_DIR/branches еще не устарел, но по умолчанию также создайте каталог удаленных объектов.


commit e125c1a (Nov. 2005, v0.99.9c) Затем добавил:

Вновь клонировать репозитория по умолчанию был .git/remotes/origin создан для отслеживания удаленного master к origin, но забыл создать origin ветки себя.
Также он жестко закодировал предположение, что удаленный HEAD указывает на «master», что может не всегда быть правдой.


Он начал развиваться в «происхождение», как вверх по течению репо в commit dfeff66 (March 2006, git 1.3.0), где:

Восходящие ветви головки копируются в .git/refs/remotes/ вместо .git/refs/heads/ и .git/remotes/origin файла настроен на отражают это также.
Для того, чтобы понять, как клонировать этот репозиторий, требуется, чтобы он получил обновление fetch/pull, чтобы понять .git/refs/remotes от Eric Wong.

Это подробно описано в commit c72112e.


Дефолт в 'происхождения' при выборке была введена в commit 5e27e27 (July 2006, git 1.4.2).


Удаленный origin хранится в ./git/config в commit 255cae8 (Nov. 2006, git 1.5.0)

Например, что было ранее .git/remotes/origin:

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

теперь добавляется .git/config как:

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

git pullorigin по умолчанию с commit 955289b (Dec. 2006, git 1.5.0):

без каких-либо указаний в файле .git/config, git-pull выполнит "git-pull origin"; который, в свою очередь, по умолчанию извлекает из первого определения «pull» для пульта, «origin».

glossary is then updated:

origin:

по умолчанию вверх хранилище. Большинство проектов имеют по крайней мере один проект, который они отслеживают. По умолчанию для этой цели используется «origin».
Новые обновления восходящего потока будут отправлены в удаленные ветви отслеживания с именем origin/name-of-upstream-branch, которые вы можете увидеть с помощью «git branch -r».

Смежные вопросы