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

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

мой рабочий процесс немного отличается. первый Я хочу создать локальную ветку, и я буду только толкать ее вверх по течению, когда я удовлетворен и хочу поделиться своей веткой.
  • как бы я это сделал? (мои поиски google, похоже, ничего не придумали).
  • как бы Я говорю своим коллегам, чтобы вытащить его из репозитория?

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

17 ответов


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

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) и другие команды.


во-первых, вы должны создать свой филиал локально

git checkout -b your_branch

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

git push -u origin your_branch

команда может достичь вашей ветке, что:

git fetch
git checkout origin/your_branch

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

git 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

простое решение Git 2.0+:

по состоянию на в Git 2.0 поведение стало проще:

вы можете настроить git с push.default = current чтобы облегчить жизнь:

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

$ git push -u

-u будет отслеживать удаленную ветку с тем же именем. Нет с этой конфигурацией вы автоматически угадаете удаленную ссылку на git push. От git.конфиг документация:

пуш.по умолчанию

определяет действие, которое git push должен предпринять, если явно не задан refspec.

push.default = current - нажмите текущую ветвь, чтобы обновить ветвь с помощью на приемном конце. Работает как в центральных, так и в нецентральных рабочих процессах.

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

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

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

$ git config --global push.default current

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

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

достаточно для нажатия местной ветви.

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

git remote update

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

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

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

git checkout -b newbranch

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

git push -u origin HEAD

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


Если вы хотите просто создать удаленную ветку без локальной, вы можете сделать это следующим образом:

git push origin HEAD:refs/heads/foo

он толкает то, что ваша голова к ветви фу этого не существовало на пульте.


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

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 checkout-b bug_fixes origin/развитие

вы можете нажать на ветку для удаленного репо по

git push -u origin **bug_fixes**

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

git pull origin master.


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

git checkout -b your_branch

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

git push --set-upstream origin your_branch

Примечание: это работает на последних версиях git:

$ git --version
git version 2.3.0

Ура!


Самое Простое Решение... Драмм Ролл . git версия 2.10.1 (Apple Git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes , and go a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

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


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

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

Здесь Вся Информация

другой существующий проект


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

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

и git создают для вас исходную ветвь.


создание локальной ветви из существующей ветви (может быть master/ develop/ any-other-branch).

git checkout-b branch_name

Нажмите это на пульт

git push-u remote_name local_branch_name: remote_branch_name

здесь

  1. - u: устанавливает ветку вверх по течению
  2. remote_name: git устанавливает имя по умолчанию как "origin" при создании репозитория. Этот однако может быть изменено на другое произвольное имя.
  3. local_branch_name: имя локальной ветви, которую нужно нажать.
  4. remote_branch_name: имя удаленной ветви, которую мы хотим создать на удаленном.

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

git push - U remote_name branch_name

это подтолкнет локальную ветвь к удаленному и с тем же имя как локальная ветвь branch_name. Местное отделение также будет отслеживать удаленное отделение.


Я знаю, что на этот вопрос хорошо ответили, но просто хотел перечислить шаги, которые я предпринимаю, чтобы создать новую ветку "myNewBranch" и нажать на remote ("origin" в моем случае) и настроить отслеживание. Рассмотрим эту версию" TL;DR":)

# 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

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

git checkout -b {branchName}

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

git branch {branchName}

в первой команде "checkout "делает указанную ветвь вашей текущей ветвью, а"- b " означает: эта ветвь еще не существует, поэтому сделайте это для меня.


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

 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)

вот как вы это делаете в eclipse через Egit.

1) Перейдите в представление "git Repository Exploring" и объясните проект git, к которому вы хотите создать ветку. В Отделениях -> Локальные .. выберите ветку, для которой вы хотите создать ветку ( в моем случае я выбрал master .. вы можете выбрать другую ветку, если хотите) .. затем щелкните правой кнопкой мыши и выберите опцию Создать ветку .. и выберите опцию checkout this project, а затем нажмите кнопку Готово.

2) Теперь в обозревателе проектов выберите проект .. щелкните правой кнопкой мыши, затем Team - > Push Branch.

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


git push -u <remote-name> <branch-name> не работает, если вновь созданная ветвь не порождена из того же РЕПО, т. е. если вы не создали новую ветвь с помощью git checkout -b new_branch, тогда это не сработает.

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

этой link помог мне подтолкнуть мою локальную ветвь (клонированную из другого РЕПО) к моему удаленному РЕПО: