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

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

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

  • Как бы я это сделал? (мои поиски в Google, похоже, ничего не нашли).
  • Как бы я сказал моим коллегам вытащить его из верхнего хранилища?

ОБНОВЛЕНИЕ В Git 2.0 есть более простой ответ , который я написал ниже: https: //stackoverflow. ком /а /27185855/109305

2808 голосов | спросил Jesper Rønn-Jensen 5 +04002009-10-05T13:21:04+04:00312009bEurope/MoscowMon, 05 Oct 2009 13:21:04 +0400 2009, 13:21:04

16 ответов


0

Решение Simple 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
ответил Jesper Rønn-Jensen 28 52014vEurope/Moscow11bEurope/MoscowFri, 28 Nov 2014 12:46:01 +0300 2014, 12:46:01
0

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

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

ответил Ikke 5 +04002009-10-05T13:29:17+04:00312009bEurope/MoscowMon, 05 Oct 2009 13:29:17 +0400 2009, 13:29:17
0

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

git checkout -b your_branch

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

git push -u origin your_branch

Товарищи по команде могут связаться с вашей веткой, выполнив:

git fetch
git checkout origin/your_branch

Вы можете продолжить работу в ветке и push в любое время, не передавая аргументы git push (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
ответил dseminara 26 J000000Tuesday11 2011, 05:09:09
0

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

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

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

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

git remote update

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

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
ответил Lucian 27 TueEurope/Moscow2011-12-27T18:12:49+04:00Europe/Moscow12bEurope/MoscowTue, 27 Dec 2011 18:12:49 +0400 2011, 18:12:49
0

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

git checkout -b newbranch

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

git push -u origin HEAD

Это ярлык, чтобы переместить текущую ветку в ветку с тем же именем в origin и отследить ее, чтобы вы не В будущем не нужно указывать origin HEAD.

ответил Zenexer 24 FebruaryEurope/MoscowbMon, 24 Feb 2014 18:58:49 +0400000000pmMon, 24 Feb 2014 18:58:49 +040014 2014, 18:58:49
0

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

git push origin HEAD:refs/heads/foo

Он выталкивает любую головку в ветку foo , которая не существовала на удаленном компьютере.

ответил Tassadar 25 32015vEurope/Moscow11bEurope/MoscowWed, 25 Nov 2015 18:29:39 +0300 2015, 18:29:39
0

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

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 / development

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

git push -u origin **bug_fixes**

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

git pull origin master

ответил sreekumar 1 Mayam16 2016, 09:12:36
0

Самое простое решение ... Drumm Roll ... git версия 2.10.1 (Apple Git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

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

ответил sapy 18 MaramSat, 18 Mar 2017 09:23:35 +03002017-03-18T09:23:35+03:0009 2017, 09:23:35
0

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

git checkout -b your_branch

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

git push --set-upstream origin your_branch

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

$ git --version
git version 2.3.0

Ура!

ответил ipegasus 22 AMpWed, 22 Apr 2015 02:43:46 +030043Wednesday 2015, 02:43:46
0
  

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

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

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

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

ответил Numan Turkeri 27 Maypm16 2016, 14:39:29
0

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

  

git checkout -b branch_name

Нажмите это на удаленный

  

git push -u имя_удаления local_branch_name: имя_удаленного_ранца

Здесь

  1. -u: устанавливает вышестоящую ветвь
  2. remote_name: git устанавливает имя по умолчанию как «origin» при создании репозитория. Однако это можно изменить на другое произвольное имя.
  3. local_branch_name: имя локальной ветви, которую нужно отправить.
  4. remote_branch_name: имя удаленной ветви, которую мы хотим создать на удаленной странице.

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

  

git push -u имя_удаления имя_в ветви

Это приведет к удалению локальной ветви с тем же именем, что и у локальной ветви имя_ ветви. Локальная ветвь также будет отслеживать удаленную ветвь.

ответил iosCurator 15 FebruaryEurope/MoscowbWed, 15 Feb 2017 09:57:20 +0300000000amWed, 15 Feb 2017 09:57:20 +030017 2017, 09:57:20
0

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

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

и git создадут для вас ветку происхождения.

ответил Maurizio Brioschi 27 +03002014-10-27T20:05:42+03:00312014bEurope/MoscowMon, 27 Oct 2014 20:05:42 +0300 2014, 20:05:42
0

Я знаю, что на этот вопрос получен хороший ответ, но я просто хотел перечислить шаги, которые я предпринимаю, чтобы создать новую ветку "myNewBranch" и перейти к удаленной (в моем случае "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
ответил sufinawaz 23 +04002014-10-23T18:09:17+04:00312014bEurope/MoscowThu, 23 Oct 2014 18:09:17 +0400 2014, 18:09:17
0

Просто хотел добавить это, пока:

git checkout -b {branchName}

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

git branch {branchName}

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

ответил Brian Sachetta 30 MarpmMon, 30 Mar 2015 17:02:24 +03002015-03-30T17:02:24+03:0005 2015, 17:02:24
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)
ответил Monis Majeed 21 J000000Tuesday15 2015, 14:27:20
0

Вот как вы делаете это в затмении через Egit.

1) Перейдите в представление «Git Repository Exploring» и разверните git-проект, для которого вы хотите создать ветку. Под ветвями -> Локальный .. выберите ветвь, для которой вы хотите создать ветвь (в моем случае я выбрал master .. вы можете выбрать другую ветвь, если хотите) .. затем щелкните правой кнопкой мыши и выберите опцию Create Branch .. и выберите оформление заказа этот вариант проекта, а затем нажмите кнопку Готово.

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

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

ответил user2225713 1 FebruaryEurope/MoscowbSat, 01 Feb 2014 03:46:50 +0400000000amSat, 01 Feb 2014 03:46:50 +040014 2014, 03:46:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132