Как создать удаленную ветку Git?
Я создал локальную ветвь, которую я хочу «продвинуть» вверх по течению. Здесь, на Stack Overflow, есть похожий вопрос о том, как отслеживать вновь созданную удаленную ветку.
Однако мой рабочий процесс немного отличается. Сначала . Я хочу создать локальную ветку, и я буду продвигать ее только тогда, когда я удовлетворен и хочу поделиться своей веткой.
- Как бы я это сделал? (мои поиски в Google, похоже, ничего не нашли).
- Как бы я сказал моим коллегам вытащить его из верхнего хранилища?
ОБНОВЛЕНИЕ В Git 2.0 есть более простой ответ , который я написал ниже: https: //stackoverflow. ком /а /27185855/109305
16 ответов
Решение 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
Сначала вы создаете свою ветку локально:
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
Вы можете продолжить работу в ветке и 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
Как указано в предыдущих ответах,
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
Он выталкивает любую головку в ветку 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 / development
Вы можете нажать на ветку для удаленного репо с помощью
git push -u origin **bug_fixes**
Каждый раз, когда вы хотите обновить свою ветку из любой другой ветви, скажите master .
git pull origin master
Самое простое решение ... 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. - Ветвь, которую вы только что создали в своей локальной среде, и удаленная несуществующая ветка, в которую вы пытаетесь нажать, должны иметь одинаковое имя .
Сначала вы создаете ветку локально:
git checkout -b your_branch
А затем создать ветку удаленно:
git push --set-upstream origin your_branch
Примечание. Это работает с последними версиями git:
$ git --version
git version 2.3.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]
Создание локальной ветви из существующей ветви (может быть master /development /any-other-branch).
git checkout -b branch_name
Нажмите это на удаленный
git push -u имя_удаления local_branch_name: имя_удаленного_ранца
Здесь
- -u: устанавливает вышестоящую ветвь
- remote_name: git устанавливает имя по умолчанию как «origin» при создании репозитория. Однако это можно изменить на другое произвольное имя.
- local_branch_name: имя локальной ветви, которую нужно отправить.
- remote_branch_name: имя удаленной ветви, которую мы хотим создать на удаленной странице.
Если мы удалим локальные и удаленные имена веток, он будет иметь формат
git push -u имя_удаления имя_в ветви
Это приведет к удалению локальной ветви с тем же именем, что и у локальной ветви имя_ ветви. Локальная ветвь также будет отслеживать удаленную ветвь.
Теперь с помощью git вы можете просто печатать, когда находитесь в правильной ветке
git push --set-upstream origin <remote-branch-name
>
и git создадут для вас ветку происхождения.
Я знаю, что на этот вопрос получен хороший ответ, но я просто хотел перечислить шаги, которые я предпринимаю, чтобы создать новую ветку "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
Просто хотел добавить это, пока:
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)
Вот как вы делаете это в затмении через Egit.
1) Перейдите в представление «Git Repository Exploring» и разверните git-проект, для которого вы хотите создать ветку. Под ветвями -> Локальный .. выберите ветвь, для которой вы хотите создать ветвь (в моем случае я выбрал master .. вы можете выбрать другую ветвь, если хотите) .. затем щелкните правой кнопкой мыши и выберите опцию Create Branch .. и выберите оформление заказа этот вариант проекта, а затем нажмите кнопку Готово.
2) Теперь из проводника проекта выберите проект .. щелкните правой кнопкой мыши, затем Team -> Push Branch.
Будет создана новая удаленная ветка. Вы можете дать название филиала своим коллегам, чтобы они могли его использовать.