Как создать удаленную ветку Git?

Я создал локальную ветку, которую хочу 'продвинуть' вверх по течению. На Stack Overflow есть похожий вопрос о том, как отслеживать только что созданную удаленную ветку.

Однако мой рабочий процесс немного отличается. **Сначала я хочу создать локальную ветку, и я буду продвигать ее вверх по течению только тогда, когда буду удовлетворен и захочу поделиться своей веткой.

  • Как мне это сделать? (мой поиск в google ничего не дал).
  • Как мне сказать моим коллегам, чтобы они взяли его из репозитория upstream?

UPDATE В Git 2.0 есть более простой ответ Я написал ниже: https://stackoverflow.com/a/27185855/109305.

Комментарии к вопросу (4)

Сначала вы создаете свою ветку локально:

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

Удалённая ветка создаётся автоматически, когда вы переносите её на удалённый сервер. Поэтому, когда вы почувствуете, что готовы к этому, вы можете просто сделать:

git push   

Где `- это обычноorigin`, имя, которое git даёт удалённой ветке, с которой вы клонировали. Затем ваши коллеги просто потянут эту ветку, и она автоматически будет создана локально.

Обратите внимание, что формально формат такой:

git push  :

Но когда вы опускаете одно из них, предполагается, что имена обоих ответвлений одинаковы. Сказав это, в качестве осторожного слова, не совершайте критическую ошибку, указывая только : (с двоеточием), иначе удаленная ветвь будет удалена!

Чтобы последующий git pull знал, что делать, вы можете вместо этого использовать:

git push --set-upstream   

Как описано ниже, опция --set-upstream устанавливает восходящую ветвь:

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

Комментарии (29)

Во-первых, вы должны создать свою ветвь локально

git checkout -b your_branch

После этого вы можете работать локально в своей ветке, когда вы будете готовы поделиться веткой, вытолкните ее. Следующая команда переместит ветку в удаленный репозиторий origin и отследит ее

git push -u origin your_branch

Участники команды могут получить доступ к вашей ветке, выполнив:

git fetch
git checkout origin/your_branch

Вы можете продолжать работать в ветке и толкать ее, когда захотите, не передавая аргументов git push (git push без аргументов будет толкать master в удаленный master, your_branch local в удаленный your_branch и т.д.).

git push

Участники команды могут выполнять push в вашу ветку, делая коммиты, а затем выполнять push явно

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

Или отслеживать ветку, чтобы избежать аргументов для git push

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
Комментарии (0)
Решение

Простое решение ГИТ 2.0+:

По состоянию на мерзавец 2.0 поведение стало проще:

Вы можете настроить Git с толчок.по умолчанию = текущей чтобы сделать жизнь легче:

Я добавил Это, поэтому теперь я могу только подтолкнуть новую ветку вверх с

$ git push -u

ключ -U отслеживает удаленный филиал одноименным названием. Теперь с этой конфигурацией вы автоматически угадать удаленная ссылка на Git толчок. Из ГИТ.конфиг документации:

толчок.по умолчанию

определяет действие git толчок следует принимать, если нет refspec в явном виде.

толчок.по умолчанию = текущей - отправка текущей ветки в обновлении филиала с на приемном конце. Работает как в Центральной и нецентральной рабочие процессы.

Для меня, это хорошее упрощение мою повседневную работу с Git. Настройка конфигурации заботится о 'обычных' случае использование, где вы добавить филиал локально и хотите создать его удаленно. Кроме того, я могу так же легко создавать локальные ветки из пультов, просто делаешь со remote_branch_name ГИТ (а не с помощью `--комплект-вверх по течению-флаг).

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

Чтобы добавить на глобальную конфигурацию git, выполните в командной строке:

$ git config --global push.default current
Комментарии (3)

Как указано в предыдущих ответах,

git push  :

достаточно для продвижения локальной ветки.

Ваши коллеги, с помощью этой команды, могут толкать все удаленные ветки (включая новые):

git remote update

Затем, чтобы внести изменения в ветку, обычный поток:

git checkout -b  /
Комментарии (0)

Создать новую ветку локально на основе текущей ветке:

git checkout -b newbranch

Фиксация любых изменений, как обычно. Затем, толкайте ее вверх:

git push -u origin HEAD

Это ярлык, чтобы подтолкнуть текущей ветки в ветку с тем же названием на "происхождение" и отслеживать его, так что вы Дон'т нужно указывать происхождение руководителем в будущем.

Комментарии (5)

Если вы хотите создать ветку от текущей ветви

git checkout -b {your_local_branch_name} 

вы хотите, чтобы ветку из удаленного филиала, вы можете попробовать

git checkout -b {your_local_branch_name} origin/

Если вы закончите изменения, можно добавить файл.

git add -A or git add 

Затем сделайте коммит локально

git commit -m 'your commit message'

Если вы хотите, чтобы подтолкнуть к удаленному РЕПО

git push -u origin 

Все вместе будет

git checkout -b bug_fixes 

или Если вы хотите создать ветку из удаленного филиала говорят, развития

ГИТ кассе -б bug_fixes происхожденияразвития

Вы можете нажать на ветку в удаленный РЕПО

git push -u origin bug_fixes

В любое время вы хотите обновить вашу ветку от любой другой ветке говорят мастер.

ГИТ тянуть происхождения мастер.

Комментарии (0)

Если ты хочешь на самом деле просто создать удаленный филиал, не имея локальный, вы можете сделать это так:

git push origin HEAD:refs/heads/foo

Это толкает, что твоя голова на ветку фу, что не существует на удаленном.

Комментарии (4)

Простое решение... Драмма катит... версий Git 2.10.1 (Яблоко ГИТ-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

Б. Н. - ветке вы только что создали в вашей локальной среде, а пульт не существующие отрасли, где вы пытаетесь давить, должны иметь одинаковое имя.

Комментарии (1)

Сначала вы создаете ветку локально:

git checkout -b your_branch

А потом создать ветку удаленно:

git push --set-upstream origin your_branch

Примечание: это работает на версии новинки ЖКТ:

$ git --version
git version 2.3.0

Ура!

Комментарии (1)

создавайте ветку на локальном компьютере и перейти в эту ветку :

$ 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]

Вот Все

Другое существующего проекта

Комментарии (0)

Создание местного отделения от существующей ветке (может быть мастер/ разработка/ любой-другой-филиал).

ГИТ кассе -б branch_name

Толкают в

git толчок -U в remote_name local_branch_name:remote_branch_name

Здесь

  1. -у устанавливает вышестоящий филиал
  2. remote_name : ГИТ задает имя по умолчанию, чтобы быть "происхождения" когда она создает репозиторий. Однако это может быть изменено на другое произвольное имя.
  3. local_branch_name : - название местного отделения для толкания.
  4. remote_branch_name : имя удаленной ветки, что мы хотим быть созданы на пульт.

Если мы убираем локальные и удаленные имена ветвь, она будет иметь формат

git толчок -U в remote_name branch_name

Это будет толкать местного отделения в отдаленных и с таким же именем, как местное отделение branch_name. Местное отделение будет отслеживание удаленной ветки, а также.

Комментарии (0)

Я знаю этот вопрос хорошо ответили, но просто хотел перечислить шаги, которые я предпринять, чтобы создать новую ветку "и myNewBranch" и нажать на пульт (и"происхождение&quot и; в моем случае) и настроить отслеживание. Считайте, что это и"ах и" Версия :)

# create new branch and checkout that branch
git checkout -b myNewBranch
# now push branch to remote 
git push origin myNewBranch
# set up the new branch to track remote branch from origin
git branch --set-upstream-to=origin/myNewBranch myNewBranch
Комментарии (0)

Теперь с Git, вы можете просто ввести, когда вы находитесь в правильной ветке

толчок ГИТ-комплект-вверх по течению происхождения <удаленного филиала-имя в>

и Git создать для вас ветку Origin.

Комментарии (3)

Вы можете сделать это в 2 круч:

1. Используйте кассе для создания местного отделения:

git checkout -b yourBranchName

2. Использовать команды Push для автосоздания филиала и отправить код на удаленный репозиторий:

git push -u origin yourBanchName

есть несколько способов сделать это, но я думаю, что этот путь очень простой.

Комментарии (0)

Просто хотел добавить, что во время:

git checkout -b {branchName}

Создает новую ветвь, она также проверяет, что филиал / делает ее вашей текущей веткой. Если, по какой-то причине, все, что вы хотите сделать, это обрывать ветки, но не делает ее текущей ветке, то вы должны использовать следующую команду:

git branch {branchName}

В первой команде "в кассу", которая делает упомянутую ветку вашу текущую ветку, и " Б" и означает: эта ветка не'т существуют еще, так что это для меня.

Комментарии (0)

Как это сделать через Источник дерева

 1: Open SourceTree, click on Repository -> Checkout
 2 :Click on Create New Branch
 3: Select branch where from you want to get code for new branch 
 4: Give your branch name
 5: Push the branch  (by click on Push button)
Комментарии (0)

git толчок -U в <удаленные-имя> <филиал-имя> Не'т работать, если вновь созданный филиал не'т выйти из того же репозитория, т. е. если вы не'т создал новую ветку, используя ГИТ кассе -б new_branch, то это не будет работать.

Например, у меня были клонированы два разных хранилища локально и мне пришлось копировать repo2/branch1, равная в repo1/ а потом уж толкать его.

Это Ссылка помогла мне продвинуть мою локальную ветку (клонировал с другого РЕПО) в мой удаленный РЕПО:

Комментарии (0)

Вот как вы делаете это в Eclipse через Эгит.

  1. Зайдите в "git-репозиторий знакомства на" посмотреть и expland проект Git, для которого вы хотите создать ветку. В отделениях -> местные .. выбрать филиал, для которого вы хотите создать ветку ( в моем случае я выбрал мастер .. вы можете выбрать другую другой ветке, если хотите) .. потом правой кнопкой мыши и нажмите на Создать ветке параметр .. и выберите оформить этот проект вариант и нажмите кнопку Готово.

  2. Теперь у окне проекта выберите проект .. правой кнопкой мыши, затем команду -и GT; нажмите филиал.

Новый удаленный филиал будет создан. Вы можете дать название ветки для ваших коллег, так что они могут тянуть его.

Комментарии (1)

Я использую это, и это довольно удобно:

git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'

использование: Git с помощью команды mkdir NEW_BRANCH

Вы Don't даже нужен состояния ЖКТ; может быть, я просто хочу, чтобы убедиться, что все идет хорошо...

Вы можете иметь как локальный, так и удаленный филиал с помощью одной команды.

Комментарии (0)