Если я правильно понимаю ваше назначение, задача состоит в том, чтобы 1) создать локальный репозиторий, который служит в качестве благословенного или центрального репозитория, и 2) позволить пользователям, которые входят в систему на одном компьютере, клонировать этот центральный репозиторий, создать своисобственные локальные рабочие репозитории, push и pull между центральным репозиторием и их собственными репозиториями.
1.Создание центрального репозитория из github:
git clone https://github.com/janesmith/projectXYZ.git --bare -- /path/to/local/repo
Центральный репозиторий в большинстве случаев является пустымслучаев.Убедитесь, что /path/to/local/repo
доступен для чтения и записи для всех пользователей.
2. Вы, как администратор, выполняете некоторую работу по инициализации.
# create your own work repository
git clone /path/to/local/repo -- myrepo
cd myrepo
git checkout master
# edit files
git add .
git commit -m foo and bar
git push origin master
3. Сообщите другим пользователям, что центральное репона /path/to/local/repo
готов, и они могут использовать его сейчас.
4.Пользователь A входит в систему и создает свое собственное репо.
git clone /path/to/local/repo -- userarepo
cd userarepo
git checkout master
# edit files
git add .
git commit
git push origin master
# oh, an error says push fails because of non-fast-forward
git pull origin -r master
# oh, merge conflicts encountered
# edit and solve the conflicts
git add .
git rebase --continue
git push origin master
5.Пользователь B хочет новую ветку feature_007
из master
.
git clone /path/to/local/repo -- userbrepo
cd userbrepo
git checkout -b feature_007 origin/master
# edit files
git add .
git commit -m "feature_007 is good"
git push origin -u feature_007
6.Пользователь А заинтересован в feature_007
.
cd userarepo
git fetch origin feature_007
git checkout feature_007
# edit files
git add .
git commit -m "fix a bug"
git push origin feature_007