Git bash ssh keygen windows
Git bash ssh keygen windows
Некоторое время назад я открыл для себя Git. И знаете, я проникся. То есть, по-настоящему проникся. Теперь я использую Git не только на работе (где я с ним, собственно, познакомился), но и для своих проектиков, которые я стал хранить на BitBucket. Последний начал поддерживать Git относительно недавно. В отличие от GitHub BitBucket позволяет совершенно бесплатно создавать как открытые, так и закрытые репозитории.
В чем состоит отличие Git от Subversion.
Главное отличие Git от Subversion заключается в том, что Git распределенная система контроля версий. Звучит ужасающе, но на практике это означает очень простую вещь. Каждый разработчик держит у себя на диске отдельный репозиторий. Обратите внимание не копию репозитория, не некоторые бранчи . а тупо отдельный и при этом абсолютно полноценный репозиторий.
Пока мы работаем в рамках своего репозитория, все происходит в точности, как в Subversion. Мы коммитим и откатываем изменения, создаем, мерджим и удаляем бранчи, разрешаем конфликты и тд. Помимо этого, предусмотрены команды для работы с репозиториями на удаленных машинах. Например, «git push» означает мердж локальных изменений в удаленный репозиторий, а «git pull» наоборот, мердж изменений из удаленного репозитория в локальный. Обмен данными по сети обычно происходит с использованием протокола SSH.
В результате имеем.
Git присущи все те же преимущества от использования VCS, что мы получаем в Subversion.
Git дает нам нормальное шифрование «из коробки», безо всяких танцев с бубнами, как в случае с Subversion.
Если сервер с главным репозиторием, куда пушат свои изменения все разработчики (хотя формально в Git нет никакого главного репозитория), вдруг прилег ничего страшного. Делаем коммиты в локальный репозиторий и ждем, когда сервер вернется.
Даже если сервер доступен, все равно удобнее сделать пяток локальных коммитов, а затем отправить их на сервер одним пушем.
Сервер вообще не нужен. Вы можете использовать Git только локально. И не обязательно для работы с исходниками. Например, можно использовать Git для того, чтобы иметь возможность откатиться к предыдущим версиям файлов (каких-нибудь электронных таблиц) или вернуть случайно удаленные.
Git не раскидывает по каталогам служебную информацию (помните вместо этого она хранится только в корне репозитория.
Git нынче очень моден (хотя это далеко не единственная распределенная система контроля версий, например, есть Mercurial и Darcs), в связи с чем растет число разработчиков, использующих его. Как следствие, используя Git, легче получить помощь на каком-нибудь форуме или собрать команду разработчиков, знакомых с этой VCS.
Существует множество полезных утилит для работы с Git Qgit, gitk, gitweb и другие. Из коробки есть импорт и экспорт в/из Subversion/CVS.
Git поддерживают многие хостинги репозиториев (GitHub. BitBucket. SourceForge. Google Code. ) есть из чего выбрать.
Большой популярностью пользуется GitHub. Используя Git, вы увеличиваете вероятность того, что кто-то захочет безвозмездно написать патч для вашего OpenSource проекта.
Пример использования Git.
Я использовал Git при написании программы из заметки Генерация почти осмысленных текстов на Haskell. сидя под своей любимой FreeBSD. Вот как примерно выглядела моя работа с Git.
В первую очередь необходимо поставить Git.
Затем создаем пару ssh ключей, если не создавали ее ранее.
Иногда требуется создать копию репозитория или перенести его с одной машины на другую. Это делается примерно так.
mkdir -p / tmp / git-copy cd / tmp / git-copy git clone --bare git @ / cd git push --mirror git.
Следует отметить, что Git позволяет использовать короткую запись хэшей. Вместо «d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4» можно писать «d8578edf» или даже «d857.
Дополнение: Также в 6-м пункте Мини-заметок номер 9 приводится пример объединения коммитов с помощью git rebase. а в 10-м пункте Мини-заметок номер 11 вы найдете пример объединения двух репозиториев в один без потери истории.
Работа с сабмодулями.
Более подробно сабмодули и зачем они нужны объясняется в заметке Простой кроссплатформенный OpenGL-проект на C++. Здесь упомянем самое главное.
git submodule add // / glfw / glfw glfw.
git submodule init.
Обновление сабмодулей, например, если после git pull поменялся коммит, на который смотрит сабмодуль.
git submodule update.
Удаление сабмодуля производится так.
Скажите git rm --cached имя_сабмодуля.
Удалите соответствующие строчки из файла.
Также грохните соответствующую секцию в.
Сделайте коммит.
Удалите файлы сабмодуля.
Удалите каталог.
Дополнительные материалы.
В качестве источников дополнительной информации я бы рекомендовал следующие.
Как обычно, любые замечания, дополнения и вопросы категорически приветствуются. И кстати, с наступающим вас.
Подпишись через RSS. E-Mail. Google+. Facebook. Vk или Twitter.
PREVIOUS NEXT
|