Подтвердить что ты не робот

Как создать ветку в открытом репозитории в Git

В настоящее время у меня есть голое репо, которое выступает в качестве центрального репо для моей команды. Голый репо в настоящее время имеет только ветку "хозяин". Как я могу создать больше ветвей на голой репо?

4b9b3361

Ответ 1

Обычно вы не создаете ветки непосредственно в голом репозитории, но вы нажимаете ветки из одного рабочего хранилища на голые

git push origin myBranch

Обновление: стоит упомянуть

Как и Павел Пладийс, упомянутый в комментариях

git push origin localBranchName:remoteBranchName

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

git push origin :remoteBranchName

удаляется удаленная ветвь.

Ответ 2

Чтобы создать новую ветвь (локально), называемую branchname

git branch brachname

Затем, чтобы синхронизировать его с удаленным репозиторием, например github (если применимо)

git push origin branchname

И использовать его для разработки/сделать веткой активную ветвь

git checkout branchname

Ответ 3

git update-ref refs/heads/new_branch refs/heads/master

В этом открытом репозитории, если у вас есть прямой доступ к нему. Вы можете указать любую ссылку (например, тег) или фиксацию в последнем аргументе.

Ниже приведен тест script:

$ mkdir non-bare-orig

$ cd non-bare-orig/

$ git init
Initialized empty Git repository in D:/Temp/bare-branch/non-bare-orig/.git/

$ touch file1

$ git add --all && git commit -m"Initial commit"
[master (root-commit) 9c33a5a] Initial commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file1

$ touch file2

$ git add --all && git commit -m"Second commit"
[master 1f5673a] Second commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file2

$ git tag some_tag

$ touch file3

$ git add --all && git commit -m"Third commit"
[master 5bed6e7] Third commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file3

$ cd ../

$ git clone --bare non-bare-orig bare-clone
Cloning into bare repository 'bare-clone'...
done.

$ cd bare-clone/

$ git update-ref refs/heads/branch1 refs/heads/master

$ git update-ref refs/heads/branch2 some_tag

$ git update-ref refs/heads/branch3 9c33a5a

$ git branch -vv
  branch1 5bed6e7 Third commit
  branch2 1f5673a Second commit
  branch3 9c33a5a Initial commit
* master  5bed6e7 Third commit