мерзавец: клон не приносит все файлы? - PullRequest
3 голосов
/ 08 декабря 2010

Я только что создал каталог с именем website. Здесь есть пара изображений, страница index.html и т. Д. Я запустил: git --bare init --shared=0777

Теперь успешно создан пустой общий репо.

Теперь я пытаюсь клонировать этот проект, зайдя в /developers/developer1 на моем сервере и запустив git clone /live/website. Я получаю следующее сообщение:

Initialized empty Git repository in /developer/developer1/website/.git/
warning: You appear to have cloned an empty repository.

Я использую UNIX. Когда я делаю ls, я вижу только папку .git, и ни одна из страниц images / index.html здесь не была клонирована. Я пытался сделать:

git pull /live/website origin
fatal: Couldn't find remote ref origin
fatal: The remote end hung up unexpectedly

git pull /live/website master
fatal: Couldn't find remote ref master
fatal: The remote end hung up unexpectedly

Я знаю, что должен делать origin, потому что когда я делаю git remote -v, вот что я получаю:

origin  /live/website  (fetch)
origin  /live/website (push)

Итак, в двух словах, вот что мне нужно сделать, чтобы помочь:

  1. Узнайте, как клонировать все мои файлы с / live / website на / developer1
  2. Возможность вносить изменения в файлы локально на developer1 и отправлять эти изменения обратно.

Однако, поскольку я не могу получить файлы, я не могу продолжать! Основное намерение состоит в том, чтобы позволить многим разработчикам одновременно работать с файлами и помещать свои изменения в основной каталог /live/website, как только они будут сделаны.

Ответы [ 2 ]

3 голосов
/ 08 декабря 2010

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

  1. Инициализируйте пустое хранилище на вашем сервере , как вы написали:
    git --bare init --shared=0777

  2. Оформить этот каталог на рабочая станция :
    git clone git://server/repo.git

  3. Dropнекоторые файлы в этот недавно клонированный репо и добавить их в трек.Чтобы добавить их все, выполните git add .

  4. Передайте добавленные файлы в локальный репозиторий:
    git commit -m 'initial commit'
    Теперь изменения (добавление файлов) былихранится в локальном репозитории.

  5. Наконец, отошлите файлы (если вы работаете в филиале master ) на сервер (известный как origin * 1036)*):
    git push origin master

  6. Теперь сделайте еще несколько локальных изменений и передайте их в локальный репозиторий, как в шаге 4. Когда вы набираете git status сейчас, он должен дать вам сообщение типа
    Your branch is ahead of origin/whatever by 1 commit

  7. Чтобы вернуть изменения в центральный репозиторий, вы можете просто набрать git push, так как вы настроили отслеживаниеветвь в шаге 5.

Теперь, если вы делаете git clone git://server/repo.git с другого компьютера (например, workstation2 ), вы получите файлы, которые вы только что зарегистрировали...

Это общий рабочий процесс git:

  • Получить файлы с сервера (начальный: clone, последовательно pull)
  • Выполнить некоторыеизменения и сразорвал их в локальном репо (git commit)
  • Когда придет время, отодвиньте локальные коммиты на голое репо (git push)

Чтобы получить большеподробное объяснение см. в разделе Личная малая команда в онлайн-версии прогитической книги .

0 голосов
/ 08 декабря 2010

при создании репозитория с git init он запускается как пустой репозиторий.Вы должны сначала добавить файлы (git add -- file1 file2 other files), а затем создать коммит (git commit -m'initial commit').

. Затем вы сможете клонировать указанный репозиторий, используя git clone, и извлекать / извлекать из него

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