Сегодня вечером я переместил источники http://rainbowcinemas.ca из phpeclipse и CVS в PDT и Git.
Ниже приведены некоторые полезные советы и рекомендации по первоначальному созданию репо, о том, как поддерживать централизованное удаленное копирование в актуальном состоянии, и как обойти жалобы на обновление мастера напрямую с удаленного компьютера. Я уверен, что есть лучший способ сделать это без необходимости обходного пути, но это то, что я нашел сработавшим.
Начальная настройка
Чтобы просмотреть каталог и создать проект git для каждой подпапки:
for d in $(find . -maxdepth 1 -type d -not -name "." | \
egrep -v ".ssh|logs|OLD|download|upload"); do cd $d; \
git init; git add .; git commit -m "initial commit" .; \
cd ..; \
done
Смотрите также Настройка общего хранилища . |
|
Создать локальный клон с помощью командной строкиgit clone ssh: //servername/path/to/.git folderToCreateLocally |
Создать локальный клон с eGitПосле того, как ваш репо будет создан, вы можете клонировать копию с удаленного сервера на локальном поле, а затем импортировать его в Eclipse (с установленным EGit) с помощью File> Import> Git> Проекты из Git> Clone … . |
Зафиксируйте локальные изменения через командную строкуКак указано выше , вы можете использовать git pull , git checkout , git commit и, наконец, git push ваши изменения. Если вы столкнулись с ошибкой при попытке зафиксировать изменения обратно в репозиторий, см. Раздел ниже: «Разрешить обновление ссылки на текущую извлеченную ветвь не-пустого репозитория». |
Фиксируйте локальные изменения с помощью eGitС eGit вы можете извлекать, выдвигать, извлекать, фиксировать, объединять и т. Д. С помощью контекстного меню в проекте Git или с помощью представления «Синхронизировать». Я не рекомендую использовать какие-либо наборы / модели изменений, кроме Git Change Set, поскольку другие будут показывать больше, чем нужно (например, локальные изменения, которые Git не отслеживает). |
Разрешить обновление ссылки на текущую извлеченную ветвь не-пустого хранилищаОбновите файл ~ / .gitconfig на удаленном сервере, чтобы он выглядел примерно так: |
[user]
name = Your Name
email = [email protected]
[color]
branch = auto
diff = auto
interactive = auto
status = auto
[core]
editor = vim
[merge]
tool = vimdiff
[receive]
denyCurrentBranch = warn
Получить изменения в удаленном репо
Поскольку я использую удаленный сервер как для размещения http-доступных файлов, так и для размещения git-репо, важно, чтобы изменения, внесенные в git-репо, были затем извлечены в локальную файловую систему, чтобы локальное рабочее пространство синхронизировалось с метаданными репо ,
Чтобы получить изменения, я использую git status (для просмотра изменений), git reset HEAD <имя_файла> (чтобы сбросить указанный файл или пропустить имя файла для сброса всех изменений) и, наконец, git checkout для извлечения измененного файла из репозитория в рабочий каталог. ,
Доступ к серверу без запроса пароля
Чтобы пропустить запрос пароля при подключении через ssh, scp или fish, добавьте свой открытый ключ SSH в файл ~ / .ssh / authorized_keys на удаленном сервере.
Доступ к серверу через псевдоним
Вместо того, чтобы ссылаться на сервер как на имя пользователя @ сервер при подключении, вы можете добавить запись в ваш файл ~ / .ssh / config, которая выглядит следующим образом:
Host shortName
Hostname fully.qualified.domain.name.or.IP.address
User yourUsername
Port 22