Питання Як створити віддалену гілку?


Я створив місцеву гілку, яку я хочу "натиснути" вгору. Подібне питання тут стосовно перезавантаження стека щодо відстеження новоствореної віддаленої гілки.

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

  • Як я можу це зробити? (мої пошуки в Google, здається, не придумали нічого).
  • Як я б сказав своїм колегам, щоб витягнути його з сховища, що надходить?

UPDATE З Git 2.0 є простіша відповідь Я написав нижче: https://stackoverflow.com/a/27185855/109305


2712
2017-10-05 09:21


походження


хтось коли-небудь відповідав на вас друге питання? >> А як же я скажу своїм колегам, щоб витягнути його з сховища вхідного потоку? - milkplus
Можливо, пов'язані: Pro Git: 3.5 гітарного відділення - віддалені філії.
@milkplus get fetch --all вибирає нові гілки на віддаленій стороні (але лише get fetch --prune локально видаляє посилання на видалені віддалені галузі). Я думаю, що це повинно бути автоматично налаштоване ними, або вам слід поговорити з ними в усній формі. - peterh
Можливі дублікати Як я можу натиснути нову локальну гілку на віддалений сховище Git і відстежувати це теж? - Trevor Boyd Smith


Відповіді:


По-перше, ви створюєте гілку локально:

git checkout -b <branch-name> # Create a new branch and check it out

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

git push <remote-name> <branch-name> 

Де <remote-name> як правило origin, ім'я, яке git дає далекому від вас клонованому. Ваші колеги потім просто витягнуть цю гілку, і вона автоматично створюється локально.

Зауважте, що формально формат:

git push <remote-name> <local-branch-name>:<remote-branch-name>

Але коли ви пропустите один, він припускає, що обидва назви гілки однакові. Сказавши це, як слово слова обережно, не робіть критичної помилки лише вказівки :<remote-branch-name> (з двокрапкою), або віддалена гілка буде видалена!

Так що наступний git pull Ви будете знати, що робити, замість цього ви можете використовувати:

git push --set-upstream <remote-name> <local-branch-name> 

Як описано нижче, --set-upstream Опція встановлює гілку:

Для кожної галузі, яка є актуальною або   успішно відсунуто, додайте вгору за течією   (відстеження) посилання, що використовується   аргумент-нет git-pull (1) та інші   команди.


3296
2017-10-05 09:29



Зауважте, що поведінка git за умовчанням - це натиснути узгодження посилання, так git push <remote> не буде штовхати гілку, якщо її немає <remote>. - Jakub Narębski
Ви можете захотіти використати git push -u <remote-name> <branch-name> замість того, щоб наступний git pull буде знати, що робити. - Bart Schuller
Замість того, щоб чітко вказати назву сервера, ви можете просто скористатись origin, що означає "сервер я отримав решту цієї репо з": таким чином git push origin <branch-name>. - jpatokal
Якщо ви забули використати -u варіант, ви можете просто набрати git push -u потім в галузі, потім git pull буду працювати. - Jan
Вклавши все це разом, git push -u origin <local-branch-name> це щось для мене. - Samo


По-перше, ви повинні створити свою гілку локально

git checkout -b your_branch

Після цього ви можете працювати локально у своїй гілці, коли готові поділитися галуззю, натиснути його. Наступна команда натискає гілку на вихідний репозиторій і відстежує її

git push -u origin your_branch

Команди можуть дістатися до своєї гілки:

git fetch
git checkout origin/your_branch

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

git push

Команди можуть поштовх до своєї гілки, виконуючи свої зобов'язання, а потім явно натискати

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

Або відстежувати гілку, щоб уникнути аргументів для натискання git

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push

797
2017-07-26 01:09



Якщо git seeems занадто складний для вас, я рекомендую вам використовувати Dropbox або Google Drive, дійсно, це набагато простіше, ніж git і все ще є версії / etc ... - dseminara


Проста версія Git 2.0+:

Щодо Git 2.0 поведінка стала простішою:

Ви можете налаштувати git за допомогою push.default = current полегшити життя:

Я додав це так, тепер я можу просто натиснути нову гілку

$ git push -u

-u буде відслідковувати віддалену гілку з тим же ім'ям. Ні, використовуючи цю конфігурацію, ви автоматично вгадаєте віддалене посилання на git push. Від git.config документація:

push.default 

Визначає дію git push, якщо не вказано прямі посилання refspec.

push.default = current - натисніть поточну гілку, щоб оновити гілку з   одне ім'я на приймальному кінці. Працює як в центральному, так і поза центральних робочих процесах.

Для мене це є гарним спрощенням мого поточного робочого процесу Git. Налаштування конфігурації бере до уваги "звичайний" випадок, коли ви додасте гілку локально і хочете створити його віддалено. Крім того, я можу так само легко створювати локальні відгалуження від пультів просто робити git co remote_branch_name (на відміну від використання --set-upstream-to прапор)

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

Щоб додати до своєї глобальної конфігурації Git, запустіть це в командному рядку:

$ git config --global push.default current

242
2017-11-28 09:46



я знайшов git push -u origin HEAD як відповіли тут трохи докладніше (ви пишете, що ви робите), не надто багато, щоб набрати. Крім того, a git push -u без додаткових аргументів не працює для мене, якщо гілка була створена з -t - Qw3ry


Як зазначено в попередніх відповідях,

git push <remote-name> <local-branch-name>:<remote-branch-name>

достатньо для того, щоб підштовхнути місцеву гілку.

Ваші колеги можуть витягувати всі віддалені галузі (включаючи нові) за допомогою цієї команди:

git remote update

Потім, щоб внести зміни в гілку, звичайний потік:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

65
2017-12-27 14:12





Створіть нове відділення локально на основі поточної гілки:

git checkout -b newbranch

Здійснюйте будь-які зміни, як звичайно. Потім натисніть на верхній потік:

git push -u origin HEAD

Це ярлик, щоб натиснути поточну гілку на гілку з тим самим ім'ям origin і відстежуйте його так, що вам не потрібно вказувати origin HEAD в майбутньому.


49
2018-02-24 14:58



Це допомогло у моїй справі: git push -u origin HEAD. Я думаю, це найяскравіший спосіб. - Scadge
Так, ви ніколи не пам'ятаєте, що ви нарешті набрали як галузь, саме так, так це шлях. - marksyzm
@marksyzm Якщо ви не можете запам'ятати, якою галуззю ви належите або що ви його назвали, ви, напевно, не повинні натискати на всіх! Принаймні, не без бігу git status перший. - Zenexer
Так, треба переконатися, що світ не вибухне на цьому поштовху; Я згоден. - marksyzm
Це найефективніший спосіб створити гілку відстеження, а також віддалену гілку одночасно. Я також хотів би додати git remote show origin як третій крок, щоб просто візуалізувати нові відстеження / відстеження відносин. - hb5fa


Якщо ви хочете просто створити віддалену гілку, не маючи місцевого, ви можете зробити це так:

git push origin HEAD:refs/heads/foo

Це штовхає все, що є вашою головою, щоб відгалужити фо що не існувало на пульті.


32
2017-11-25 15:29



Це робить цілковиту плутанину мою Visual Studio до того моменту, коли вона не запуститься правильно. Командний проводник взагалі не завантажувався, але все інше йшло, як і помилки. Просто FYI. - Josh
Схоже, що він повинен працювати, але коли я його насправді пробував, наш сервер Gitlab не визнав результат як гілку. - JosephH
Яка галузь віддалена від пульту? Що робити, якщо я хочу, щоб відключити foo2? Це можливо? Дякую. - user674669


Якщо ви хочете створити гілку з поточної гілки

git checkout -b {your_local_branch_name} 

Ви хочете гілку з віддаленої гілки, можете спробувати

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

Якщо ви зробили зміни, ви можете додати файл.

git add -A or git add <each_file_names>

Тоді робіть корупцію на місці

git commit -m 'your commit message'

Коли ви хочете натиснути на віддалений репо

git push -u origin <your_local_branch_name>

Всі разом будуть

git checkout -b bug_fixes 

або Якщо ви хочете створити гілку з віддаленого підрозділу, скажіть розвиток 

вивіз гіта-б виправлення помилок походження /розвиток

Ви можете натиснути гілку на віддалене репо за допомогою

git push -u origin **bug_fixes**

Кожного разу, коли ви хочете оновити свою гілку з будь-якої іншої галузі, скажіть магістр.

git pull origin master.


23
2018-05-01 06:12





Спочатку ви створюєте гілку локально:

git checkout -b your_branch

А потім віддалено створити гілку:

git push --set-upstream origin your_branch

Примітка. Це працює на версіях git, що входять до версії:

$ git --version
git version 2.3.0

Ура!


22
2018-04-21 23:43



Це лише текст довідки, створений командою git push коли ваша локальна гілка не відстежується пультом. - nurettin


Створіть гілку на локальному комп'ютері та ввімкніть цю гілку:

$ git checkout -b [name_of_your_new_branch]

Натисніть гілку на github:

$ git push origin [name_of_your_new_branch]

Якщо ви хочете зробити щось у вашому відділенні, обов'язково перебувайте у вашій гілці.

Ви можете бачити всі гілки, створені за допомогою:

$ git branch

Що покаже:

* approval_messages
  master
  master_clean

Додайте новий пульт для своєї гілки:

$ git remote add [name_of_your_remote] 

Натискайте зміни з вашого фіксації на свою гілку:

$ git push origin [name_of_your_remote]

Оновіть гілку, коли оновлена ​​гілка з офіційного сховища оновлена:

$ git fetch [name_of_your_remote]

Потім вам потрібно застосувати до злиття змін, якщо ваша гілка походить від розробки, вам потрібно зробити:

$ git merge [name_of_your_remote]/develop

Видаліть гілку у вашій локальній файловій системі:

$ git branch -d [name_of_your_new_branch]

Щоб змусити видалити локальну гілку на вашій файловій системі:

$ git branch -D [name_of_your_new_branch]

Видалити гілку на github:

$ git push origin :[name_of_your_new_branch]

Тут вся інформація

Інший існуючий проект


16
2018-05-27 11:39