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


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

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

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

ОБНОВЛЕНИЕ С Git 2.0 есть более простой ответ Я написал ниже: https://stackoverflow.com/a/27185855/109305


2666


источник


Ответы:


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

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


3240



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

git checkout -b your_branch

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

git push -u origin your_branch

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

git fetch
git checkout origin/your_branch

Вы можете продолжать работать в ветке и нажимать, когда захотите, не передавая аргументы git push (без аргумента git push нажимает мастер на удаленный мастер, your_branch local на remote 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

783



Простое решение 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

232



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

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

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

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

git remote update

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

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

65



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

git checkout -b newbranch

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

git push -u origin HEAD

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


47



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

git push origin HEAD:refs/heads/foo

Он подталкивает все, что ваш HEAD к ветке Foo которые не существовали на пульте дистанционного управления.


32



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

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 исправление ошибок происхождение / развитие

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

git push -u origin **bug_fixes**

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

git pull origin master,


23



First you create the branch locally:

git checkout -b your_branch

And then to create the branch remotely:

git push --set-upstream origin your_branch

Note: This works on the latests versions of git:

$ git --version
git version 2.3.0

Cheers!


22



Create the branch on your local machine and switch in this branch :

$ git checkout -b [name_of_your_new_branch]

Push the branch on github :

$ git push origin [name_of_your_new_branch]

When you want to commit something in your branch, be sure to be in your branch.

You can see all branches created by using :

$ git branch

Which will show :

* approval_messages
  master
  master_clean

Add a new remote for your branch :

$ git remote add [name_of_your_remote] 

Push changes from your commit into your branch :

$ git push origin [name_of_your_remote]

Update your branch when the original branch from official repository has been updated :

$ git fetch [name_of_your_remote]

Then you need to apply to merge changes, if your branch is derivated from develop you need to do :

$ git merge [name_of_your_remote]/develop

Delete a branch on your local filesystem :

$ git branch -d [name_of_your_new_branch]

To force the deletion of local branch on your filesystem :

$ git branch -D [name_of_your_new_branch]

Delete the branch on github :

$ git push origin :[name_of_your_new_branch]

Here All Information

Other Existing project


16



Easiest Solution... Drumm Roll . git version 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. - The brunch you are currently on local , and the remote non-existing branch where you are trying to push , must have the same name.


12



Now with git, you can just type, when you are in the correct branch

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

and git create for you the origin branch.


8