установка - Что именно делает «u»? «Git push-u origin master» против «git push origin master»




portable git (3)

Я, видимо, ужасно использую git, несмотря на мои лучшие попытки понять это.

Из kernel.org для git push :

-u

--set-вверх по течению

Для каждой ветви, которая обновлена ​​или успешно нажата, добавьте ссылку вверх (отслеживание), используемую без аргументов git-pull (1) и другие команды. Для получения дополнительной информации см branch.<name>.merge в git-config (1).

Вот branch.<name>.merge из git config :

branch.<name>.merge

Определяет вместе с branch.<name>.remote , ветвь вверх по ветви для данной ветви. Он сообщает, что git fetch / git тянет, какая ветка объединяется, а также может влиять на git push (см. Push.default). Когда в ветке <name> , он сообщает git получить значение refspec по умолчанию для маркировки для слияния в FETCH_HEAD. Значение обрабатывается как удаленная часть refspec и должно соответствовать ref, который извлекается из удаленного, заданного "branch.<name>.remote" . Информация о слиянии используется git pull (которая сначала вызывает git fetch) для поиска ветви по умолчанию для слияния. Без этой опции git pull defaults объединяет первый refspec. Задайте несколько значений для получения слияния осьминога. Если вы хотите настроить git pull так, чтобы он сливался в <name> из другой ветви в локальном репозитории, вы можете указать branch.<name>.merge в нужную ветку и использовать специальную настройку. (период) для branch.<name>.remote .

Я успешно настроил удаленный репозиторий с github, и я успешно нажал на него первую фиксацию:

git push -u origin master

Затем я невольно успешно нажал вторую фиксацию на мой удаленный репозиторий, используя:

git commit -m '[...]'

Однако, неправильно думая, что мне придется снова подтолкнуть к origin от master , я побежал:

# note: no -u
git push origin master

Что это сделал? Похоже, это не имело никакого эффекта. Я «отменил» git push -u origin master ?


В более простых терминах:

Технически, флаг -u добавляет ссылку отслеживания на восходящий сервер, на который вы нажимаете.

Важно то, что это позволяет вам делать git pull без дополнительных аргументов. Например, как только вы нажмете git push -u origin master , вы можете позже вызвать git pull и git узнает, что вы на самом деле означали git pull origin master .

В противном случае вам нужно будет ввести всю команду.


Все необходимые команды git bash для нажатия и втягивания в Github:

git status 
git pull
git add filefullpath

git commit -m "comments for checkin file" 
git push origin branch/master
git remote -v 
git log -2 

Если вы хотите отредактировать файл, выполните следующие действия:

edit filename.* 

Чтобы увидеть все ветви и их фиксации:

git show-branch

git push -u origin master

Такой же как:

git push origin master ; git branch --set-upstream master origin/master

Сделайте последнее заявление, если вы забудете -u !

Или вы можете заставить его:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

Если вы дадите команду сделать, если для вас это выберет ваши ошибки, например, если вы набрали несуществующую ветку или вы не git remote add , хотя это может быть то, что вы хотите :).





git