Коли я бігаю:
git push origin branchname
Що саме таке origin
і чому я повинен вводити його перед назвою гілки?
Коли я бігаю:
git push origin branchname
Що саме таке origin
і чому я повинен вводити його перед назвою гілки?
Відповіді:
origin
є псевдонімом вашої системи для певного віддаленого сховища. Це насправді не властивість цього сховища.
Роблячи
git push origin branchname
ви говорите, щоб перейти до origin
сховища. Немає вимоги називати віддалене сховище origin
: адже той самий сховище може мати інший псевдонім для іншого розробника.
Віддалені просто псевдонім, який зберігає URL-адресу сховищ. Ви можете побачити, яка URL-адреса належить кожному віддаленому користувачу, скориставшись
git remote -v
У push
команді ви можете використовувати дистанційні або просто використовувати URL-адресу безпосередньо. Приклад, що використовує URL:
git push git@github.com:git/git.git master
git push
ви можете побачити, що він спочатку перевіряє конфігурацію цього сховища (яке ви можете перевірити git config --list
) на ключ, який називається branch.<branchname>.remote
. Якщо це не встановлено, "він за замовчуванням походить" - git-scm.com/docs/git-push
origin
- це не назва віддаленого сховища. Це скоріше локальний псевдонім, встановлений як ключ замість URL-адреси віддаленого сховища.
Це дозволяє уникнути того, що користувачеві потрібно вводити всю віддалену URL-адресу під час запрошення натискання.
Це ім'я встановлено за замовчуванням, і за умовами домовленості Git при клонуванні з пульта вперше.
Це ім'я псевдоніму не важко закодовано і його можна змінити, використовуючи наступний командний рядок:
git remote rename origin mynewalias
Погляньте на http://git-scm.com/docs/git-remote для подальших роз'яснень.
Git має поняття "віддалені", які є просто URL-адресами до інших копій вашого сховища. Коли ви клонуєте інший сховище, Git автоматично створює віддалене ім'я "походження" і вказує на нього.
Додаткову інформацію про пульт можна переглянути, ввівши git remote show origin
.
git remote show origin
чого, чому не просто git show origin
? Має бути причина, що це? Дякую.
origin
псевдонім за замовчуванням для URL-адреси вашого віддаленого сховища.
Просто! "origin" - це саме те, що ви дали прізвисько своєму віддаленому сховищу, коли ви запустили таку команду:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
З цього моменту Git знає, що "походження" вказує на конкретний сховище (в даному випадку на сховище GitHub). Ви могли б назвати це "github" або "repo" або що завгодно.
Мене це також бентежило, і нижче - те, що я дізнався.
Коли ви клонуєте сховище, наприклад, з GitHub:
origin
псевдонім для URL-адреси, з якої ви клонували сховище. Зауважте, що ви можете змінити цей псевдонім.
У master
віддаленому сховищі є одна гілка (псевдонім від origin
). Є ще одна master
філія, створена на місцевому рівні.
Додаткову інформацію можна знайти в цьому запитанні ТА: Розгалуження Git: master vs. origin / master vs. віддалено / origin / master
Коли ви клонуєте сховище git clone
, він автоматично створює віддалене з'єднання, яке називається origin
вказівкою назад на клонований сховище. Це корисно для розробників, які створюють локальну копію центрального сховища, оскільки це забезпечує простий спосіб витягнути зміни в потоці чи опублікувати локальні комісії. Така поведінка також є причиною того, що більшість проектів на базі Git називають своє походження в центральне сховище.
Найкраща відповідь тут:
https://www.git-tower.com/learn/git/glossary/origin
У Git "origin" - це скорочена назва віддаленого сховища, з якого спочатку був клонований проект. Точніше, він використовується замість оригінальної URL-адреси цього сховища - і тим самим значно спрощує посилання.
З https://www.git-tower.com/learn/git/glossary/origin :
У Git "origin" - це скорочена назва віддаленого сховища, з якого спочатку був клонований проект. Точніше, він використовується замість оригінальної URL-адреси цього сховища - і тим самим значно спрощує посилання.
Зауважте, що походження - це аж ніяк не "магічне" ім'я, а лише стандартна умова. Хоча є сенс залишати цю конвенцію недоторканою, ви можете її безперечно перейменувати, не втрачаючи жодної функціональності.
У наступному прикладі параметр URL для команди "clone" стає "початком" для клонованого локального сховища:
git clone https://github.com/gittower/git-crash-course.git
Інші відповіді кажуть, що origin
це псевдонім для URL-адреси віддаленого сховища, який не зовсім точний. Слід зазначити , що адреса , який починається з http
є URL в той час як той , який починається з git@
є URI ідентифікатора або універсального ресурсу.
Усі URL-адреси є URI-адресами, але не всі URI-адреси є URL-адресами.
Коротше кажучи, коли ви вводите, git remote add origin <URI>
ви говорите місцевому git, що кожного разу, коли ви вживаєте слово, origin
ви фактично маєте на увазі вказаний вами URI. Подумайте про це як про змінну, яка містить значення.
І точно так само , як і змінна, ви можете назвати це все , що ви хочете (наприклад. github
, heroku
, destination
І т.д.).
віддалене (псевдонім URL-сховища) → походження (псевдонім вище) → головний (псевдонім гілки);
remote
, Рівень такої ж , як working directory
, index
, repository
,
origin
, карта локальної філії сховища до віддаленої гілки сховища