Основы использования Git локально - PullRequest
0 голосов
/ 20 марта 2019

Раскрытие, это для назначения.

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

Создайте папку на HPC, в которой будет храниться проект:

mkdir path/to/project_folder

Внутри папки проекта клонируйте существующее хранилище:

git clone https://github.com/janesmith/projectXYZ.git

Это принесет все файлы из репозитория github в локальную папку.Теперь у меня есть локальная версия онлайн-репо, но это не обязательно репо само по себе.

В локальной папке проекта снова введите:

git init

Это превратит папку вголое хранилище.Затем я добавляю файлы:

git add *

Это добавляет все файлы.Затем я фиксирую файлы:

git commit -m 'first commit'

Назначение очень расплывчато, я не уверен, как эти пользователи получают доступ к одному и тому же HPC, так что я предполагаю и знаю, что онилокально для репо, который я только что создал.Так клонирует ли каждый пользователь из главного репо?

git clone path/to/project_folder/projectXYZ.git user/projectXYZ

Это создаст клон репо в папку, более локальную для пользователя.

Но как каждый из пользователей подталкиваетвозвращается в мастер репо?

1 Ответ

2 голосов
/ 20 марта 2019

Если я правильно понимаю ваше назначение, задача состоит в том, чтобы 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...