Назад

December 5, 2024

🤔 Чи завжди потрібен параметр '-u' у команді 'git push -u origin master'?

Ви, напевно, бачили цю команду у багатьох навчальних матеріалах. Можливо, ви використовуєте її щодня або щоразу, коли виконуєте push:

$ git push -u origin master

Ця команда відправляє зміни з вашого локального репозиторію до гілки master віддаленого репозиторію origin.

Але чи потрібно робити це кожного разу?

Параметр -u у цій команді є скороченням для --set-upstream. Використовуючи цей параметр, ви фактично вказуєте Git автоматично пов’язати вашу локальну гілку master із віддаленою гілкою master. Тож зробити це потрібно лише один раз. Після цього ви можете просто використовувати git pull і git push у гілці master без додаткових параметрів.

Просто пам’ятайте, що це слід зробити вперше, коли ви створюєте гілку локально та готові відправити її у віддалений репозиторій:

# Створюємо нову гілку та перемикаємось на неї
$ git checkout -b newFeature

# Працюємо над гілкою newFeature, потім комітим зміни
$ git add .
$ git commit -m "Додав новий функціонал"

# Оскільки це перший push цієї гілки на origin
$ git push -u origin newFeature

Це створить гілку newFeature у вашому віддаленому репозиторії та встановить зв’язок вашої локальної гілки newFeature з віддаленою. Відтепер, коли ви будете перемикатися на цю гілку локально, можна просто виконувати git pull і git push без жодних додаткових аргументів чи параметрів.

Порада:

Якщо ви хочете подивитися, як ваші локальні гілки пов’язані з віддаленими, погляньте на файл налаштувань вашого репозиторію. Прапорець -u встановлює властивість merge для гілки:

./my_project$ cat .git/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = true
[remote "origin"]
	url = https://github.com/<your-user-name>/my_project.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[branch "newFeature"]
	remote = origin
	merge = refs/heads/newFeature