Как использовать Git в стиле SVN? - PullRequest
1 голос
/ 21 марта 2011

Мне нравится простота Git, но мне трудно эффективно его использовать.

Возможно ли сделать следующее с Git (на моей локальной машине разработки):

  1. Есть хранилище в каком-нибудь каталоге, например SVN (D:\gitrepo)
    • Боюсь, что я могу случайно удалить весь свой git-репо для проекта (все, что нужно, это удалить одну папку, и все исчезло)
    • Наличие отдельного необычного каталога дает мне некоторое утешение.
    • Проще сделать резервную копию одной папки вручную, а не многих
  2. иметь ветки git в отдельных каталогах
    • Так что я могу Вне сравнивать их легко
    • Так что я могу видеть, какие ветви у меня легко

Любые предложения о том, как действовать в Git?

Ответы [ 3 ]

4 голосов
/ 21 марта 2011

Для настройки репозитория, например D:\gitrepo, вы используете так называемые пульты. Вы можете использовать этот каталог как удаленный, который вы и другие разработчики можете использовать как «Центральный SVN-подобный сервер». Создайте каталог gitrepo и выполните команду git init --bare. Затем из вашего местного репозитория Git вы можете сделать git remote add origin D:\gitrepo. Затем вы нажимаете через git push origin master. Теперь любой может клонировать с D:\gitrepo и вернуть свои изменения обратно.

Я не уверен, что вы подразумеваете под "(все, что нужно, это удалить одну папку, и все исчезло)". Если вы удалите папку src/, ваши данные не исчезнут. Вы можете легко откатить его назад с помощью git reset --hard HEAD, если вы его не зафиксировали. Если вы сделали это, используйте git revert SOMESHA. Очевидно, SOMESHA является хешем SHA1 для коммита. Если вы случайно удалили D:\gitrepo, это не проблема, потому что ваша рабочая копия точно такая же. Просто сделай то, что я сказал в первом абзаце снова. Единственный способ потерять все - это удалить удаленный репозиторий и клонировать из него все репозиториев.

Для резервного копирования вам просто нужно сделать резервную копию всей папки D:\gitrepo.

Во-вторых, нет простого способа иметь филиалы в отдельных каталогах. Лучшее, что вы можете сделать, - это иметь два клона и установить каждый клон в отдельную ветвь. Я не знаком с Beyond Compare, но git diff работает между двумя ветвями без использования отдельных каталогов. Просто используйте git diff master somebranch. Чтобы увидеть, какие ветви у вас есть, используйте git branch

2 голосов
/ 21 марта 2011

Для размещения веток в разных каталогах вы можете использовать скрипт git-new-workdir.Это разделяет один репозиторий между несколькими рабочими каталогами, которые могут быть расположены в разных ветвях.

2 голосов
/ 21 марта 2011

Вы определенно пытаетесь использовать его таким образом, для которого он не предназначен;это, как говорится ...

1) да, вы можете иметь несколько копий репозитория, так что вы можете «git push» к другому в качестве резервной копии, если хотите.Настройте другой, используя 'git init --bare'.

2) У вас может быть несколько клонированных репозиториев рядом друг с другом и ветки push / pull между ними.Тем не менее, в конце концов, я думаю, что это заставит вас значительно больше работать.'git branch' легко перечисляет все ваши доступные ветки уже.

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