2016-08-04 6 views
0

Я пытаюсь понять, как создать структуру каталогов в Git, которая соответствует моему процессу разработки.Как создать структуру каталогов в Git?

BTW, я новичок в Git, но не в контроле источника.

Я использую GitLab в качестве менеджера моего репозитория.

Я добавил свой репозиторий в GitLab и успешно клонировал репозиторий.

Процесс развития я хочу создать следующим образом:

мастер | сделано | QA | INT

Всякий раз, когда кто-то клонирует репозиторий, они автоматически видят эту структуру ветвления и будут работать с веткой int.

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

git checkout -b Done master 
git checkout -b QA Done 
git checkout -b INT QA 

git branch 
Done 
* INT 
    QA 
    master 

Во всяком случае, я предполагаю, что я что-то простое (надеюсь) отсутствует.

Есть ли у кого-нибудь представление о том, как я могу настроить эту простую иерархию ветвей?

С благодарностью

+0

Какой ответ вы получаете от команд? –

ответ

8

Возможно, у вас возникло недоразумение о ветвях git.

После того как ваши команды выполняются, коммиты и ветви в мерзавца, как это: enter image description here

A<-B означает A is a parent of B или based on A, we make some changes and commit them, so we get a new commit B. Синяя пунктирная стрелка означает the branch points to a commit.

Теперь, если мы проверка master и сделать еще совершить E, график выглядит так: enter image description here

Тогда проверка Done и сделать еще совершить F, график становится: enter image description here

Если мы сливаемся Done до master, через git checkout master;git merge Done, это как: enter image description here

В Git ветка ref представляет собой переменную, которая сохраняет значение или ref, на которое указывает. Значение не является постоянным. Каждая фиксация записывает sha1 своего родительского commit (s). Корневой фиксатор A имеет 0 родителей. Согласование слияния G имеет 2 родителя. У левых коммитов есть 1 родитель. git log -1 <commit> --pretty=%P или git log -1 <commit> --pretty=raw может показать родительский sha1.

+0

Кстати, я думаю, стоит добавить, что Git сильно отличается от большинства систем управления версиями. Например, ветви в Mercurial фактически удерживают каждую фиксацию, и каждая фиксация находится на ровно одной ветви, vs Git, где ветви просто указывают на фиксации, и фиксация может быть на многих ветвях одновременно. Филиалы в других VCS, как правило, больше похожи на филиалы в Mercurial (хотя каждый VCS имеет свои собственные причуды). – torek

+0

@torek благодарит за вашу информацию. Я мало знаю о других VCS. – ElpieKay

+0

Хорошая картина! Как вы их создали? – Jayan

2

Структура уже существует. Вы сделали свои ветви. Теперь, чтобы коллабораторы выполняли определенную работу.Ниже приведен способ, как создать ветку по умолчанию, если он отличается от master

Чтобы изменить ветвь по умолчанию в Gitlab:

  1. Нажмите Настройки в левой панели
  2. Изменения по умолчанию Branch к желаемому ответвлению
  3. Нажмите Сохранить изменения
+0

Спасибо за информацию. – jstanley

+0

Добро пожаловать! –

Смежные вопросы