В моем случае проблема заключалась в том, что некоторые установки в какой-то момент определяли переменную окружения http_proxy на моей машине, когда у меня не было прокси.
Удаление переменной окружения http_proxy устраняет проблему.
репозиторий мерзавца А является просто каталогом, содержащим специальное предложение .git
каталог.
Это отличается от "централизованных" систем управления версиями (как подрывная деятельность), где "репозиторий" размещается на удаленном сервере, который Вы checkout
в "рабочую копию" каталог. С мерзавцем Ваша рабочая копия репозиторий.
Просто работает git init
в каталоге, который содержит файлы, которые Вы хотите отследить.
, Например,
cd ~/code/project001/
git init
Это создает .git
(скрытая) папка в текущем каталоге.
Для создания нового проекта работайте git init
с дополнительным аргументом (название каталога, который будет создан):
git init project002
(This is equivalent to: mkdir project002 && cd project002 && git init)
, Чтобы проверить, ли текущий текущий путь в репозитории мерзавца, просто выполнение git status
- если это не репозиторий, это сообщит "фатальный: Не репозиторий мерзавца"
Вы могли также перечислить .git
каталог и проверить, что он содержит файлы/каталоги, подобные следующему:
$ ls .git
HEAD config hooks/ objects/
branches/ description info/ refs/
<час> , Если по любой причине Вы желаете "de-мерзавцу" репозитория (Вы хотите прекратить использовать мерзавца для отслеживания того проекта). Просто удалите .git
каталог на основном уровне репозитория.
cd ~/code/project001/
rm -rf .git/
Осторожность: Это уничтожит весь история пересмотра, весь Ваши теги, все , мерзавец сделал. Это не коснется "текущих" файлов (файлы, которые можно в настоящее время видеть), но предыдущие изменения, удаленные файлы и так далее будут неисправимы!
Почему еще одно практическое руководство? Существуют действительно хорошие в сети, как руководство мерзавца , который прекрасен для начала. Это имеет хорошие ссылки включая книга мерзавца, которой может способствовать (размещенный на концентраторе мерзавца) и который идеально подходит для этой коллективной задачи.
На stackoverflow, я действительно предпочел бы видеть Ваши любимые приемы!
Мой, который я обнаружил только в последнее время, git stash
, объяснил здесь , который позволяет Вам сохранить свое текущее рабочее место и перейти к другому ответвлению
РЕДАКТИРОВАНИЕ: как предыдущее сообщение, если Вы действительно предпочитаете формат stackoverlow с сообщениями как Wiki, я удалю этот ответ
apt-get install tig
, В то время как в мерзавце repo, введите 'tig', чтобы просмотреть интерактивный журнал, совершить нападки, 'входят' в любой журнал для наблюдения большей информации об этом. h для справки, которая перечисляет основную функциональность.
"Tig" является "Мерзавцем" назад.
Нажатие и изменения получения по запросу
упрощенным способом, просто сделайте git push
и git pull
. Изменения объединяются и если будет мерзавец конфликта, то сообщит, и можно разрешить его вручную.
, Когда Вы сначала продвигаете в удаленный репозиторий, необходимо сделать git push origin master
(ведущее устройство, являющееся основным ответвлением). С тех пор Вы просто делаете git push
.
Нажатие отмечает с git push --tags
.
Первое движение к пустому dir, используйте "мерзавца init" для создания его репозиторием, затем клонируйте удаленный repo в собственное.
git clone user@host.com:/dir/to/repo
Везде, где Вы первоначально клонируетесь от, то, где "получение по запросу мерзавца" вытянет от по умолчанию.
, Как Вы 'отмечаете' 'тег' или 'выпускаете' определенный набор изменений для определенного набора файлов, таким образом, можно всегда вытянуть тот один позже?
Используя эти git tag
команда.
Для простого "отмечания" текущего пересмотра Вы просто работали бы..
git tag -a thetagname
git tag -a 0.1
git tag -a 2.6.1-rc1 -m 'Released on 01/02/03'
Для списка текущих тегов просто работайте git tag
без аргументов, или -l
(нижний регистр L):
$ git tag -a thetagname # and enter a message, or use -m 'My tag annotation'
$ git tag -l
thetagname
Для удаления тега Вы используете эти -d
флаг:
$ git tag -d thetagname
Deleted tag 'thetagname'
$ git tag
[no output]
Для меток определенной (предыдущей) фиксации Вы просто делаете..
git tag [tag name] [revision SHA1 hash]
, Например:
git tag 1.1.1 81b15a68c6c3e71f72e766931df4e6499990385b
<час> Примечание: по умолчанию мерзавец создает "легкий" тег (в основном ссылка на определенный пересмотр). "Правильный" путь состоит в том, чтобы использовать эти -a
флаг. Это запустит Вашего редактора, просящего сообщение тега (идентичный выяснению сообщения о фиксации, можно также использовать эти -m
флаг для предоставления сообщения тега на командной строке). Используя аннотируемый тег создает объект с его собственным идентификатором, датой, теггер (автор), и дополнительно подпись GPG (использующий эти -s
тег). для получения дополнительной информации об этом, см. это сообщение
git tag mytagwithmsg -a -m 'This is a tag, with message'
И перечислять теги с аннотациями, используйте эти -n1
флаг для показа 1 строки каждого сообщения тега (-n245
для показа первых 245 строк каждой аннотации, и так далее):
$ git tag -l -n1
mytagwithmsg This is a tag, with message
Для получения дополнительной информации, посмотрите тег мерзавца (1) Страница руководства
Ресурс : Определенно выезд Gitcasts Scott Chacon, особенно разговор Railsconf .
Github является потрясающим и также имеет [приблизительно 113] полезные руководства .
, Как только Вы отредактировали файл, необходимо передать изменения в мерзавце. При выполнении этой команды, она попросит сообщение о фиксации - который является просто простым битом текста, который говорит всем, что Вы изменили.
$ git commit source/main.c
будет фиксировать файл main.c в каталоге./source /
$ git commit -a # the -a flag pulls in all modified files
, будет фиксировать все измененные файлы (но не новые файлы, те должны быть добавлены к индексу с мерзавцем - добавляют). Если Вы захотите фиксировать только определенные файлы тогда, то необходимо будет подготовить их сначала с мерзавцем - добавляют и затем фиксируют без флага-a.
Фиксирующий только изменяет Ваш локальный репозиторий хотя не удаленные репозитории. Если Вы захотите отправить фиксации в удаленный репозиторий тогда, то необходимо будет сделать нажатие.
$ git push <remote> <branch> # push new commits to the <branch> on the <remote> repository
Для кого-то происходящего из CVS или SVN это - изменение, так как фиксация к центральному репозиторию теперь требует двух шагов.
git status
Ваш друг, используйте его часто. Хороший для ответа на вопросы как:
, В отличие от этого, скажите svn status
, git status
выполнения почти немедленно даже на крупных проектах. Я часто находил его заверяющий при изучении мерзавца, чтобы часто использовать его, удостовериться моя умственная модель того, что продолжалось, было точно. Теперь я главным образом просто использую его для напоминания мне, что я изменил начиная со своей последней фиксации.
, Очевидно, намного более полезно, если Ваш .gitignore нормально настроен.
Говорит, что Вы делаете получение по запросу, объединяете его в Ваш код и решаете, что Вам не нравится оно. Используйте журнал мерзавца или tig, и найдите хеш того, везде, где Вы хотите вернуться к (вероятно, Ваша последняя фиксация перед получением по запросу/слиянием) скопируйте хеш и сделайте:
# Revert to a previous commit by hash:
git-reset --hard <hash>
Вместо хеша, можно использовать HEAD^ в качестве ярлыка для предыдущей фиксации.
# Revert to previous commit:
git-reset --hard HEAD^
Волшебство Мерзавца является всем, в чем Вы будете когда-либо нуждаться. Гарантируемый или Ваши деньги назад!
Ну, несмотря на то, что Вы попросили, чтобы мы не "просто" связались с другими ресурсами, довольно глупо, когда там уже существует выращенное сообщество (и растущий) ресурс, это действительно довольно хорошо: Книга Сообщества Мерзавца. Серьезно, это 20 + вопросы в вопросе будет совсем не кратким и последовательным. Книга Сообщества Мерзавца доступна и как HTML и как PDF и отвечает на многие Ваши вопросы с ясным, хорошо отформатированным, и коллега рассмотрел ответы и в формате, который позволяет Вам переходить прямо к Вашей проблеме под рукой.
увы, если мое сообщение действительно расстраивает Вас тогда, я удалю его. Просто скажите так.
Установка msysgit
Там несколько загрузок:
Это также устанавливает оболочку удара Cygwin, таким образом, Вы можете использовать git
в более хорошей оболочке (чем cmd.exe), и также мерзавца-gui (доступный через git gui
команда, или Start > All Programs > Git
меню)
Использование git-osx-installer, или можно также установить из источника
Установка git
использование собственного диспетчера пакетов. Например, на Debian (или Ubuntu):
apt-get install git-core
Или на Mac OS X, через [1 141] MacPorts:
sudo port install git-core+bash_completion+doc
†¦ или штрейкбрехер:
fink install git
†¦ или Домашнее пиво :
brew install git
На основанных на Red Hat дистрибутивах, таких как Fedora:
yum install git
В Cygwin пакет Мерзавца может быть найден под разделом "devel"
В Mac OS X, если Вам установили Инструменты Разработчика, можно скомпилировать Мерзавца из источника очень легко. Загрузите последнюю версию Мерзавца как .tar.bz
или .tar.gz
от [1 143] http://git-scm.com/ и извлеките ее (двойной щелчок в Средстве поиска)
На Linux/BSD/etc., это должно быть почти таким же. Например, в Debian (и Ubuntu), необходимо установить build-essential
пакет через [1 115].
Тогда в Терминале, cd
туда, где Вы извлекли файлы (Работающий cd ~/Downloads/git*/
должен работать), и затем работают..
./configure && make && sudo make install
Это установит Мерзавца в место по умолчанию (/usr/local
- таким образом git
будет в [1 120])
, Оно предложит Вам вводить свой пароль (для [1 121]), это так, оно может записать в /usr/local/
каталог, к которому может только получить доступ "корневой" пользователь, таким образом, sudo требуется!
, Если Вы с установить его где-нибудь отделяетесь (таким образом, файлы Мерзавца не смешаны в с другими инструментами), используйте --prefix
с командой настройки:
./configure --prefix=/usr/local/gitpath
make
sudo make install
Это установит git
двоичный файл в [1 125] - таким образом, Вы не должны будете вводить тот каждый раз Вас, необходимо добавить в Ваш $PATH
путем добавления следующей строки в Ваш ~/.profile
:
export PATH="${PATH}:/usr/local/bin/gitpath/bin/"
, Если у Вас нет sudo доступа, можно использовать --prefix=/Users/myusername/bin
и установить в корневой каталог. Не забудьте добавлять ~/bin/
к [1 130]
, сценарий x-git-update-to-latest-version автоматизирует многое из этого:
Этот сценарий обновляет мой локальный клон мерзавца repo (локально в [1 131]), и затем настраивает, установки (в [1 132] -
git describe
) и обновляет/usr/local/git
символьная ссылка.Таким образом, я могу иметь
/usr/local/git/bin
в моемPATH
, и я всегда использую последнюю версию.последняя версия этого сценария также устанавливает страницы справочника. Необходимо настроить Ваш
MANPATH
для включения/usr/local/git/share/man
каталог.
способность сделать, чтобы мерзавец проигнорировал файлы, Вы не желаете, чтобы это для отслеживания было очень полезно.
Для игнорирования файла или набора файлов Вы предоставляете шаблон. Синтаксис шаблона для мерзавца довольно прост, но мощен. Это применимо ко всем трем из различных файлов, я упомяну рев.
от gitignore (5) страница справочника:
$ git status
[...]
# Untracked files:
[...]
# Documentation/foo.html
# Documentation/gitignore.html
# file.o
# lib.a
# src/internal.o
[...]
$ cat .git/info/exclude
# ignore objects and archives, anywhere in the tree.
*.[oa]
$ cat Documentation/.gitignore
# ignore generated html files,
*.html
# except foo.html which is maintained by hand
!foo.html
$ git status
[...]
# Untracked files:
[...]
# Documentation/foo.html
[...]
<час> Обычно существует три различных способа проигнорировать неотслеженные файлы.
1) Игнорируют для всех пользователей репозитория:
Добавляют файл, названный .gitignore к корню Вашей рабочей копии.
Редактирование .gitignore для соответствия предпочтениям, для которых должны быть проигнорированы файлы.
git add .gitignore
и фиксация, когда Вы сделаны.
2) Игнорируют только для Вашей копии репозитория:
Добавляют/Редактируют $GIT_DIR/info/exclude файла в Вашей рабочей копии, с Вашими предпочтительными шаблонами.
Исключая: Моя рабочая копия является ~/src/project1, таким образом, я отредактировал бы ~/src/project1/.git/info/exclude
, Вы сделаны!
3) Игнорируют во всех ситуациях, в Вашей системе:
Глобальный игнорируют шаблоны для Вашей системы, может войти в файл, названный, чего когда-либо Вы желаете.
Мой лично называют ~/.gitglobalignore
, я могу тогда сообщить мерзавцу этого файла путем редактирования моего файл ~/.gitconfig со следующей строкой:
core.excludesfile = ~/.gitglobalignore
Вы сделаны!
я нахожу страница справочника gitignore быть лучшим ресурсом для получения дополнительной информации.
, Включенный с мерзавцем — Выполненный git gui
из командной строки и установщика Windows msysgit добавляет его к Меню "Пуск".
GUI Мерзавца может сделать большинство того, что необходимо было бы сделать с мерзавцем. Включая изменения этапа настройте мерзавца и репозитории, продвиньте изменения, создавать/контроль/удалять ответвления, слияние и много других вещей.
Одной из моих любимых функций является "строка этапа" и "ярлыки" ломтя этапа в контекстном меню, которое позволяет Вам фиксировать определенные части файла. Можно достигнуть того же через git add -i
, но я нахожу легче использовать.
Это не самое симпатичное приложение, но это продолжает работать почти все платформы (являющийся основанным на Tcl/Tk)
Снимки экрана | экранная демонстрация
<час>, Также включенный с мерзавцем. Это - средство просмотра истории мерзавца и позволяет Вам визуализировать историю репозитория (включая ответвления, когда они создаются и объединяются). Можно просмотреть и искать фиксации.
Сочетается приятно с мерзавцем-gui.
<час>. Главным образом эквивалент git log
, но имеет некоторую интеграцию с [1 110] github (как "Представление сети").
симпатичные Взгляды, и соответствия с Mac OS X. Можно искать репозитории. Самая большая критика Gitnub состоит в том, что он показывает историю линейным способом (единственное ответвление за один раз) - он не визуализирует ветвление и слияние, которое может быть важным с мерзавцем, хотя это - запланированное улучшение.
ссылки на загрузку, журнал изменений и снимки экрана | репозиторий мерзавца
<час>Намеревается быть "gitk клон для OS X".
Это может визуализировать нелинейную переходящую историю, выполнить фиксации, представление и искать фиксации, и это имеет некоторые другие хорошие функции как способность к "Quicklook" любой файл в любом пересмотре (нажмите пространство в представлении списка файлов), экспортируйте любой файл (через перетаскивание).
Это намного лучше интегрируется в OS X, чем git-gui
/ gitk
, и быстро и стабильно даже с исключительно большими репозиториями.
исходный репозиторий мерзавца pieter недавно не обновил (более чем год во время записи). Более активно сохраняемое ответвление доступно в [1 115] brotherbard/gitx - это добавляет, что "боковая панель, выборка, вытягивает, продвигает, добавляет удаленный, слияние, избирательный подход, переоснова, клон, клон к"
Загрузка | Снимки экрана | репозиторий мерзавца | brotherbard ветвление | laullon ветвление
<час>От домашней страницы:
SmartGit является фронтендом для распределенного Мерзавца системы управления версиями и работает на Windows, Mac OS X и Linux. SmartGit предназначается для разработчиков, которые предпочитают графический интерфейс пользователя по клиенту командной строки, чтобы быть еще более продуктивными с Мерзавцем — самый мощный DVCS сегодня.
можно загрузить его от [1 122] их веб-сайт .
<час>TortoiseSVN Мерзавца для пользователей Windows.
<час>Это портирует TortoiseSVN на TortoiseGit последний выпуск 1.2.1.0, который Этот выпуск может выполнить регулярную задачу, такую фиксацию, показать журналу, разность две версии, создать ответвление и тег, Создать патч и так далее. См. ReleaseNotes для детали. Добро пожаловать для содействия этого проекта.
<час>QGit является средством просмотра GUI мерзавца, основывался на QT/C++
С qgit, Вы будете в состоянии просмотреть историю изменений, просмотреть содержимое исправления и измененные файлы, графически после различных ответвлений разработки.
gitg является средством просмотра репозитория мерзавца, предназначающимся gtk +/GNOME. Одна из его основных целей состоит в том, чтобы предоставить более объединенный пользовательский опыт мерзавцу frontends через несколько рабочих столов. Это делает это не записать межплатформенное приложение, но тесным сотрудничеством с подобными клиентами для других операционных систем (как GitX для OS X).
Загрузка: источник выпусков или
<час><час>Gitbox является графическим интерфейсом Mac OS X для системы управления версиями Мерзавца. В единственном окне Вы видите ответвления, историю и рабочее состояние каталога.
Повседневные операции легки: этап и неэтап изменяются с флажком. Фиксация, вытяните, объедините и продвиньте одним щелчком. Дважды щелкните по изменению для показа разности с FileMerge.app.
веб-сайт Gity не имеет большой информации, но из снимков экрана на там это, кажется, многофункциональный мерзавец OS X с открытым исходным кодом gui.
<час><час>Комбинация является визуальной разностью и инструментом слияния. Можно сравнить два или три файла и отредактировать их на месте (diffs обновление динамично). Можно сравнить две или три папки и запустить сравнения файлов. Можно просмотреть и просмотреть рабочую копию с популярных систем управления версиями такой, таких как CVS, Подрывная деятельность, Базар-ng и Подвижный [ и Мерзавец ].
Мерзавец А GUIfor OSX Steve Dekorte.
Сразу, посмотрите, какие удаленные ответвления имеют изменения в получении по запросу, и локальные repos имеют изменения в нажатии. Операция в секунду мерзавца добавляет, фиксирует, продвигает, вытягивает, отмечает и сбрасывает, поддерживаются, а также визуальный diffs и визуальный просмотр проекта hieracy, который выделяет локальные изменения и дополнения.
Свободный для 1 репозитория, 25$ для больше.
<час>Внимание на создание простого в использовании Мерзавца. Показывает собственное Какао (подобный Mac) UI, быстрый просмотр репозитория, клонирование, продвигает/вытягивает, ветвление/слияние, визуальная разность, удаленные ответвления, легкий доступ к Терминалу, и т.д.
Путем создания большинства наиболее часто используемых действий Мерзавца интуитивным и легким работать, Вырастите (раньше, GitMac) делает Мерзавца удобным для пользователя. Совместимый с большинством рабочих процессов Мерзавца, Росток является большим для разработчиков и разработчиков, сотрудничества команды и опытных и неопытных пользователей одинаково.
<час>А многофункциональный GUI Мерзавца для MAC OSX. 30-дневная бесплатная демонстрационная версия, $59 для однопользовательской лицензии.
<час><час>EGit является поставщиком Команды Eclipse для системы управления версиями Мерзавца. Мерзавец является распределенным SCM, что означает, что у каждого разработчика есть полная копия всей истории каждого пересмотра кода, делая запросы против истории очень быстрыми и универсальными.
проект EGit реализует инструменты Eclipse сверх реализации Java JGit Мерзавца.
Открытый исходный код для Windows - устанавливает все, что необходимо работать с Мерзавцем в единственном пакете, простом в использовании.
Расширения Мерзавца инструментарий для создания работы с Мерзавцем в Windows более интуитивной. Расширение оболочки будет межтереть в Windows Explorer и представляет контекстное меню на файлах и каталогах. Существует также плагин Visual Studio для использования мерзавца из Visual Studio.
Большой благодаря [1 152] dbr для разработки на мерзавце gui материал.
<час>SourceTree свободен клиент Mac для Мерзавца, Подвижного и SVN. Созданный Atlassian, людьми позади BitBucket, это, кажется, работает одинаково хорошо с любой системой VC, которая позволяет Вам осваивать единственный инструмент для использования со всеми Вашими проектами, однако они управляются версией. Упакованный функцией и СВОБОДНЫЙ.
<час>Опытно-готовый & упакованный функцией и для неопытных и для опытных пользователей:
выход Обзора и поступление changesets. Избирательный подход между ответвлениями. Обработка патча, переоснова, притон / откладывают и многое другое.
WRT хороший GUIs/frontends, можно также хотеть проверить qgit, который является межплатформенным (Linux/Win32) средство просмотра репозитория для Мерзавца и может также использоваться в качестве высокого уровня frontend для наиболее распространенных операций Мерзавца, на самом деле это может быть легко улучшено так называемыми "пользовательскими действиями" так, чтобы пользователи могли обеспечить настроенные действия.
Я начал с официальным учебным руководством Мерзавца. Я думаю, что это достаточно практично для новичков (я был и все еще, новичок, по Вашему определению! Я едва схватываю make-файлы, я только играл немного с Подверсией Apache, и т.д.).
Если вы хотите объединить ветвь (например, от master
до выпуска
), убедитесь, что ваша текущая ветвь является целевой ветвью, в которую вы хотите слиться (используйте git branch
или git status
, чтобы увидеть вашу текущую ветку).
Затем используйте
git merge master
(где master
- это имя ветви, которую вы хотите объединить с текущей веткой).
Если есть Если есть какие-либо конфликты, вы можете использовать
git diff
, чтобы увидеть ожидающие конфликты, которые вам нужно разрешить.
Ветвь по умолчанию в репозитории git называется master
.
Для создания новой ветки используйте
git branch <branch-name>
. Чтобы увидеть список всех веток в текущем типе репозитория.
git branch
Если вы хотите переключиться на другую ветку, вы можете использовать
git checkout <branch-name>
. Чтобы создать новую ветку и переключиться на нее. за один шаг
git checkout -b <branch-name>
Чтобы удалить ветку, используйте
git branch -d <branch-name>
. Чтобы создать ветку с изменениями из текущей ветки, выполните
git stash
git stash branch <branch-name>
$ git pull <remote> <branch> # fetches the code and merges it into
# your working directory
$ git fetch <remote> <branch> # fetches the code but does not merge
# it into your working directory
$ git pull --tag <remote> <branch> # same as above but fetch tags as well
$ git fetch --tag <remote> <branch> # you get the idea
Это почти охватывает все случаи получения последней копии кода из удаленного репозитория.
Предполагая, что вы клонировали свой удаленный репозиторий из какого-то единственного удаленного репозитория.
# create a new branch locally
git branch name_of_branch
git checkout name_of_branch
# edit/add/remove files
# ...
# Commit your changes locally
git add fileName
git commit -m Message
# push changes and new branch to remote repository:
git push origin name_of_branch:name_of_branch
Предполагая, что существует удаленный репозиторий, из которого вы клонировали ваш локальный репозиторий, а также предполагая, что в этом удаленном репозитории есть ветка с именем 'some_branch', вот как отслеживать это локально:
# list remote branches
git branch -r
# start tracking one remote branch
git branch --track some_branch origin/some_branch
# change to the branch locally
git checkout some_branch
# make changes and commit them locally
....
# push your changes to the remote repository:
git push
Я также обнаружил, что Git Internals очень полезен . Он написан Скоттом Чаконом (автором Pro Git и сопровождающим книги сообщества Git). Что мне нравится в Git Internals, так это то, что он фокусируется сначала на концепциях, а затем на командах , и, поскольку это ~ 100 маленьких страниц, он быстро усваивается.
Команда сравнения - git diff
.
Для сравнения 2 версии файла:
$ git diff <commit1> <commit2> <file_name>
Это отличает commit1 от commit2; если вы измените порядок, тогда файлы будут различаться в обратном порядке, что может быть не тем, что вы ожидаете ...
Чтобы сравнить текущий подготовленный файл с репозиторием:
$ git diff --staged <file_name>
Чтобы сравнить текущий неустановленный файл с репозиторием:
$ git diff <file_name>
По-настоящему хороший документ для понимания того, как работает Git, - это The Git Parable . Очень рекомендуется!
git log -- filename
Вот копия сообщения PJ Hyett, поскольку оно больше не доступно:
Git Isn't Hard
Nov 23, 2008
Когда мы рассказываем людям, почему они должны использовать Git, а не Subversion, самая популярная звучит так: "Git делает Subversion лучше. чем Subversion, но он делает гораздо больше, чем это."
Это "больше" состоит из кучи вещей, благодаря которым Git действительно сияет, но это может быть довольно подавляющим для тех, кто пришел из других SCM, таких как Subversion.
Тем не менее, ничто не мешает вам вам использовать Git так же, как вы используете Subversion, пока вы делаете переход.
Предполагая, что вы установили необходимое программное обеспечение и имеете удаленный репозиторий, вот как вы возьмете код и внесете свои изменения в Subversion:
$ svn checkout svn://foo.googlecode.com/svn/trunk foo
# внести свои изменения
$ svn commit -m "my first commit"
А как бы вы сделали это в Git:
$ git clone git@github.com:pjhyett/foo.git
# внести свои изменения
$ git commit -a -m "my first commit"
$ git push
Еще одна команда, чтобы сделать это в Git. Эта дополнительная команда имеет большие последствия, но для целей этой заметки, это все, о чем мы говорим. об одной дополнительной команде.
Видите, это действительно не так сложно.
Обновление: Было бы упущением не упомянуть, что эквивалент обновление вашей локальной копии в Subversion по сравнению с Git'ом - это
svn update
иgit pull
, соответственно. Только одна команда в обоих случаях.
Как настроить обычный репозиторий здесь , но как создать командный репозиторий, каждый может тянуть и проталкивать из и в?
Предположим, что ваша команда уже имеет, например, членство в совместно используемой группе, которое можно использовать.
mkdir /your/share/folder/project.git
cd /your/share/folder/project.git
newgrp yourteamgroup # if necessary
git init --bare --shared
Чтобы начать использовать этот репозиторий, проще всего начать с локального репозитория, который вы уже использовали:
cd your/local/workspace/project
git remote add origin /your/share/folder/project.git
git push origin master
Теперь другие могут клонировать это и начать работать:
cd your/local/workspace
git clone /your/share/folder/project.git
Создать учетную запись пользователя на целевом сервере. Независимо от того, используете ли вы учетную запись без пароля, учетную запись с паролем или используете authorized_keys
, действительно зависит от требуемого уровня безопасности. Взгляните на Настройка Git через SSH для получения дополнительной информации.
Если все разработчики используют одну и ту же учетную запись для доступа к этому общему репозиторию, вам не нужно использовать опцию - shared
, как указано выше.
После инициализации репозитория таким же образом, как описано выше, вы выполняете начальное нажатие следующим образом:
cd your/local/workspace/project
git remote add origin user@server:/path/to/project.git
git push origin master
Видите сходство с приведенным выше? Единственное, что может произойти дополнительно, это SSH запрос пароля, если у учетной записи есть пароль. Если вы получаете это приглашение для учетной записи без пароля, возможно, сервер SSH отключил PermitEmptyPasswords
.
Клонирование теперь выглядит так:
cd your/local/workspace
git clone user@server:/path/to/project.git
Бесплатная книга Pro Git определенно моя любимая, особенно для начинающих.