10

Я пытаюсь настроить простой GIT-сервер. У меня Ubuntu установлен на виртуальном ПК (Virtual Box). Я установил GIT, создал репо и т.д.

git init 
git add .
git commit "..."

Затем на Windows я сделал что-то вроде ниже (на Cygwin)

git clone jiewmeng@192.168.0.3:proj1

Попробовал потом внести изменения

git commit -am "..."

но есть что-то вроде

увидеть изображение

Я полагаю, я неправильно настроил GIT? Я читал что-то делать с репозиториями голые / не голые? Должен ли я использовать голые все время? Я старался

git checkout --bare jiewmeng@192.168.0.3:proj1 

но в нем есть proj1.git , странные файлы / папки типа (HEAD и т. д.) внутри. Как правильно настроить GIT?

также кто-то может объяснить голые / не голые репозитории, я вроде как заблудился, с GitHub такого нет!

ОБНОВЛЕНО 28 апреля 2011 18:00 UTC+8

Я попробовал следующее http://www.youtube.com/watch?v=1gNFrPNF9-Y и на Ubuntu (Server) сделал

git init --bare

затем на Windows (клиент /Cygwin) сделал

git init 
// added readme.txt 
git add .
git commit -m "..."
git remote add origin master jiewmeng@192.168.0.3:proj2
git push origin master

нет ошибок, кажется, хорошо. Но в Ubuntu я не вижу, где мои файлы? Я посмотрел на branches/ 1-й там?

2 ответа2

9

"Нормальный" репозиторий - это каталог, содержащий реальный репозиторий и рабочую копию. Реальный репозиторий находится в скрытом подкаталоге с именем .git . Рабочая копия - это те файлы и каталоги, с которыми вы работаете.

"Пустой" репозиторий - это просто содержимое каталога .git без рабочей копии.

Вы не можете работать на голом хранилище. Сначала вы должны клонировать пустой репозиторий в обычный репозиторий, а затем работать с клоном.

В вашей первой попытке вы создали "нормальный" репозиторий. Затем вы клонировали это. Затем вы попытались вернуться в обычный репозиторий. Тогда вы получили предупреждение. Вы не должны подталкивать к нормальному хранилищу. Git предупреждает вас, когда вы пытаетесь это сделать. Вы должны только подтолкнуть к голому хранилищу.

Во второй попытке вы создали "голое" хранилище. Затем вы создали "нормальный" репозиторий. Затем вы вытолкнули из обычного в голое хранилище. Это (один из) ожидаемый рабочий процесс (ы). Вот почему вы не получили никаких ошибок или предупреждений.

Если вы хотите работать над своим проектом с компьютера с Windows и с компьютера с Ubuntu, у вас есть два варианта:

  1. Создайте голое хранилище (не важно где). Затем клонируйте из этого репозитория один на компьютере с Windows и один на компьютере с Ubuntu. Теперь продвиньтесь от клонов к голому репозиторию и потяните от голого репозитория к клонам. Не пихайте в нормальные репозитории.

  2. Создайте два обычных репозитория, один на машине с Windows и один на машине с Ubuntu. Теперь, работая над Ubuntu, вы можете вытащить из машины Windows и наоборот. Не толкайте друг друга.

Итог: только когда-либо подтолкнуть к голым репозиториям. Во всех других случаях, когда вы думаете, что хотите перейти от A к B, вместо этого, перейдите к B, затем потяните от A.

Похоже, вы очень плохо знакомы с Git. Пожалуйста, прочитайте одну или обе из следующих очень хороших книг: Git Book, Pro Git.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .