Как создать ветку в голом репозитории в Git - PullRequest
19 голосов
/ 05 декабря 2011

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

Ответы [ 3 ]

19 голосов
/ 05 декабря 2011

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

git push origin myBranch

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

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

git push origin localBranchName:remoteBranchName

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

git push origin :remoteBranchName

Вы удаляете удаленную ветку.

5 голосов
/ 30 октября 2015
git update-ref refs/heads/new_branch refs/heads/master

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

Ниже приведен тестовый скрипт:

$ 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
5 голосов
/ 05 декабря 2011

Для создания новой ветки (локально) с именем branchname

git branch brachname

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

git push origin branchname

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

git checkout branchname
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...