Как создать удаленную ветку 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 local для удаленного 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 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 --forceN. 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 создают для вас ветку origin.
создание локальной ветви из существующей ветви (может быть master/ develop/ any-other-branch).
git checkout-b branch_name
Нажмите это на пульт
git push-u remote_name local_branch_name: remote_branch_name
здесь
- - u: устанавливает восходящую ветвь
- remote_name: git устанавливает имя по умолчанию как "origin" при создании репозитория. Этот однако может быть изменено на другое произвольное имя.
- local_branch_name:это имя локальной ветви, которая будет нажата.
- 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 .. вы можете выбрать другую ветку, если хотите) .. затем щелкните правой кнопкой мыши и нажмите на опцию Создать филиал .. и выберите опцию Проверить этот проект, а затем нажмите кнопку Готово.
2) Теперь в обозревателе проектов выберите проект .. щелкните правой кнопкой мыши, затем Team - > Push Branch.
будет создана новая удаленная ветка. Вы можете дать название ветви своим коллегам, чтобы они могли ее вытащить.
git push -u <remote-name> <branch-name>не работает, если вновь созданная ветвь не порождается из того же РЕПО, т. е. если вы не создали новую ветвь с помощьюgit checkout -b new_branch, то это не будет работать.например, я клонировал два разных репозитория локально, и мне пришлось скопировать repo2/branch1 в repo1/, а затем нажать его тоже.
этой ссылка помогла мне подтолкнуть мою локальную ветку (клонированную из другого РЕПО) к моему удаленному РЕПО:
Comments