Що робить "--set-upstream"?


327

Що робить git --set-upstream?

Я спробував це зрозуміти, прочитавши посібник з git , але не зовсім зрозумів.


13
Існує нова опція, --set-upstream-toяка була введена через плутанину (IIRC) у налаштуваннях за течією.
Філіп Оуклі

Відповіді:


411
git branch --set-upstream <remote-branch>

встановлює віддалену гілку за замовчуванням для поточної локальної гілки.

Будь-яка майбутня git pullкоманда (з поточною локальною гілкою відмічена)
намагатиметься ввести коміти з <remote-branch>поточної локальної гілки.


Один із способів уникнути необхідності явно вводити текст --set-upstream- це використовувати його скорочений прапор -uтаким чином:

git push -u origin local-branch

Це встановлює автоматичну асоціацію для будь-яких майбутніх спроб натискання / потягу автоматично.
Щоб отримати докладніші відомості, ознайомтеся з цим детальним поясненням щодо гілок вище та потоку .


Щоб уникнути плутанини, останні версії gitзнецінюють цей дещо неоднозначний --set-upstreamваріант на користь більш багатослівного --set-upstream-toваріанту з однаковим синтаксисом та поведінкою

git branch --set-upstream-to <origin/remote-branch>

7
Прапор --set на верхньому потоці застарілий і буде видалений. Подумайте про використання --Track або --set-upstream-to
Rohit Singh Sengar

1
у цій команді git push -u origin local-branchщо собою originявляє? Чи є випадок, коли я б набрав щось інше, ніж originпісля -u?
Джон Генкель

2
@JohnHenckel originпосилається на віддалене сховище git, яке було використано для клонування. Тут може бути кілька віддалених сховищ git . У такому випадку originйого можна замінити власним іменем потрібного пульта, на який ви хочете звернутися.
TheCodeArtist

робити, git remote -vщоб знайти ваші origin
віддалені,

39

Коли ви натискаєте на пульт та використовуєте --set-upstreamпрапорець, git встановлює гілку, на яку ви натискаєте, як гілку віддаленого відстеження гілки, яку ви натискаєте.

Додавання гілки дистанційного відстеження означає, що git тоді знає, що ви хочете робити, коли ви git fetch, git pullабоgit push в майбутньому. Передбачається, що ви хочете синхронізувати локальну гілку та віддалену гілку, яку вона відстежує, і робить відповідну справу для досягнення цього.

Ви можете досягти того ж з git branch --set-upstream-toабо git checkout --track. Додаткову інформацію див. На довідкових сторінках git про відстеження гілок .


Коли я перевіряю з -t, він встановлює верхній потік для штовхання, тільки для витягування.
Джим

8

git branch --set-upstream <<origin/branch>> офіційно більше не підтримується і його замінюють git branch --set-upstream-to <<origin/branch>>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.