Я создал локальную ветку, которую хочу 'продвинуть' вверх по течению. На Stack Overflow есть похожий вопрос о том, как отслеживать только что созданную удаленную ветку.
Однако мой рабочий процесс немного отличается. **Сначала я хочу создать локальную ветку, и я буду продвигать ее вверх по течению только тогда, когда буду удовлетворен и захочу поделиться своей веткой.
UPDATE В Git 2.0 есть более простой ответ Я написал ниже: https://stackoverflow.com/a/27185855/109305.
Сначала вы создаете свою ветку локально:
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
устанавливает восходящую ветвь:
Для каждой ветки, которая обновлена или успешно вытолкнута, добавляется upstream (отслеживание) ссылку, используемую без аргументов git-pull(1) и другими > командами. командами.
Во-первых, вы должны создать свою ветвь локально
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
По состоянию на мерзавец 2.0 поведение стало проще:
Вы можете настроить Git с толчок.по умолчанию = текущей
чтобы сделать жизнь легче:
Я добавил Это, поэтому теперь я могу только подтолкнуть новую ветку вверх с
$ git push -u
ключ -U
отслеживает удаленный филиал одноименным названием. Теперь с этой конфигурацией вы автоматически угадать удаленная ссылка на Git толчок. Из ГИТ.конфиг документации:
толчок.по умолчанию
определяет действие git толчок следует принимать, если нет refspec в явном виде.
толчок.по умолчанию = текущей
- отправка текущей ветки в обновлении филиала с на приемном конце. Работает как в Центральной и нецентральной рабочие процессы.
Для меня, это хорошее упрощение мою повседневную работу с Git. Настройка конфигурации заботится о 'обычных' случае использование, где вы добавить филиал локально и хотите создать его удаленно. Кроме того, я могу так же легко создавать локальные ветки из пультов, просто делаешь со remote_branch_name ГИТ
(а не с помощью `--комплект-вверх по течению-флаг).
Я знаю, что этот вопрос и принял ответ довольно старые, но поведение изменилось так, что теперь существует вариантов настройки, чтобы сделать ваш рабочий процесс проще.
Чтобы добавить на глобальную конфигурацию 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
Это ярлык, чтобы подтолкнуть текущей ветки в ветку с тем же названием на "происхождение" и отслеживать его, так что вы Дон'т нужно указывать происхождение руководителем в будущем.
Если вы хотите создать ветку от текущей ветви
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
или Если вы хотите создать ветку из удаленного филиала говорят, развития
ГИТ кассе -б bug_fixes происхожденияразвития
Вы можете нажать на ветку в удаленный РЕПО
git push -u origin bug_fixes
В любое время вы хотите обновить вашу ветку от любой другой ветке говорят мастер.
ГИТ тянуть происхождения мастер
.
Если ты хочешь на самом деле просто создать удаленный филиал, не имея локальный, вы можете сделать это так:
git push origin HEAD:refs/heads/foo
Это толкает, что твоя голова на ветку фу, что не существует на удаленном.
Простое решение... Драмма катит... версий 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
Б. Н. - ветке вы только что создали в вашей локальной среде, а пульт не существующие отрасли, где вы пытаетесь давить, должны иметь одинаковое имя.
Сначала вы создаете ветку локально:
git checkout -b your_branch
А потом создать ветку удаленно:
git push --set-upstream origin your_branch
Примечание: это работает на версии новинки ЖКТ:
$ 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]
Создание местного отделения от существующей ветке (может быть мастер/ разработка/ любой-другой-филиал).
ГИТ кассе -б branch_name
Толкают в
git толчок -U в remote_name local_branch_name:remote_branch_name
Здесь
Если мы убираем локальные и удаленные имена ветвь, она будет иметь формат
git толчок -U в remote_name branch_name
Это будет толкать местного отделения в отдаленных и с таким же именем, как местное отделение branch_name. Местное отделение будет отслеживание удаленной ветки, а также.
Я знаю этот вопрос хорошо ответили, но просто хотел перечислить шаги, которые я предпринять, чтобы создать новую ветку "и myNewBranch" и нажать на пульт (и"происхождение" и; в моем случае) и настроить отслеживание. Считайте, что это и"ах и" Версия :)
# 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, вы можете просто ввести, когда вы находитесь в правильной ветке
толчок ГИТ-комплект-вверх по течению происхождения <удаленного филиала-имя в
>
и Git создать для вас ветку Origin.
Вы можете сделать это в 2 круч:
1. Используйте кассе
для создания местного отделения:
git checkout -b yourBranchName
2. Использовать команды Push для автосоздания филиала и отправить код на удаленный репозиторий:
git push -u origin yourBanchName
есть несколько способов сделать это, но я думаю, что этот путь очень простой.
Просто хотел добавить, что во время:
git checkout -b {branchName}
Создает новую ветвь, она также проверяет, что филиал / делает ее вашей текущей веткой. Если, по какой-то причине, все, что вы хотите сделать, это обрывать ветки, но не делает ее текущей ветке, то вы должны использовать следующую команду:
git branch {branchName}
В первой команде "в кассу", которая делает упомянутую ветку вашу текущую ветку, и " Б" и означает: эта ветка не'т существуют еще, так что это для меня.
Как это сделать через Источник дерева
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)
git толчок -U в <удаленные-имя> <филиал-имя>
Не'т работать, если вновь созданный филиал не'т выйти из того же репозитория, т. е. если вы не'т создал новую ветку, используя ГИТ кассе -б new_branch
, то это не будет работать.
Например, у меня были клонированы два разных хранилища локально и мне пришлось копировать repo2/branch1, равная в repo1/ а потом уж толкать его.
Это Ссылка помогла мне продвинуть мою локальную ветку (клонировал с другого РЕПО) в мой удаленный РЕПО:
Вот как вы делаете это в Eclipse через Эгит.
Зайдите в "git-репозиторий знакомства на" посмотреть и expland проект Git, для которого вы хотите создать ветку. В отделениях -> местные .. выбрать филиал, для которого вы хотите создать ветку ( в моем случае я выбрал мастер .. вы можете выбрать другую другой ветке, если хотите) .. потом правой кнопкой мыши и нажмите на Создать ветке параметр .. и выберите оформить этот проект вариант и нажмите кнопку Готово.
Теперь у окне проекта выберите проект .. правой кнопкой мыши, затем команду -и GT; нажмите филиал.
Новый удаленный филиал будет создан. Вы можете дать название ветки для ваших коллег, так что они могут тянуть его.
Я использую это, и это довольно удобно:
git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'
использование: Git с помощью команды mkdir NEW_BRANCH
Вы Don't даже нужен состояния ЖКТ; может быть, я просто хочу, чтобы убедиться, что все идет хорошо...
Вы можете иметь как локальный, так и удаленный филиал с помощью одной команды.