Мерзавец для новичков: категорическое практическое руководство

В моем случае проблема заключалась в том, что некоторые установки в какой-то момент определяли переменную окружения http_proxy на моей машине, когда у меня не было прокси.

Удаление переменной окружения http_proxy устраняет проблему.

854
задан 43 revs, 22 users 22% 23 May 2017 в 12:34
поделиться

32 ответа

Как Вы создаете новый проект/репозиторий?

репозиторий мерзавца А является просто каталогом, содержащим специальное предложение .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/

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

118
ответ дан William Pursell 23 May 2017 в 12:34
поделиться

Почему еще одно практическое руководство? Существуют действительно хорошие в сети, как руководство мерзавца , который прекрасен для начала. Это имеет хорошие ссылки включая книга мерзавца, которой может способствовать (размещенный на концентраторе мерзавца) и который идеально подходит для этой коллективной задачи.

На stackoverflow, я действительно предпочел бы видеть Ваши любимые приемы!

Мой, который я обнаружил только в последнее время, git stash, объяснил здесь , который позволяет Вам сохранить свое текущее рабочее место и перейти к другому ответвлению

РЕДАКТИРОВАНИЕ: как предыдущее сообщение, если Вы действительно предпочитаете формат stackoverlow с сообщениями как Wiki, я удалю этот ответ

9
ответ дан Piotr Lesnicki 23 May 2017 в 12:34
поделиться

Консоль UI - установка Tig

:

apt-get install tig

Использование

, В то время как в мерзавце repo, введите 'tig', чтобы просмотреть интерактивный журнал, совершить нападки, 'входят' в любой журнал для наблюдения большей информации об этом. h для справки, которая перечисляет основную функциональность.

Мелочи

"Tig" является "Мерзавцем" назад.

9
ответ дан Dean Rather 23 May 2017 в 12:34
поделиться

Нажатие и изменения получения по запросу

упрощенным способом, просто сделайте git push и git pull. Изменения объединяются и если будет мерзавец конфликта, то сообщит, и можно разрешить его вручную.

, Когда Вы сначала продвигаете в удаленный репозиторий, необходимо сделать git push origin master (ведущее устройство, являющееся основным ответвлением). С тех пор Вы просто делаете git push.

Нажатие отмечает с git push --tags.

7
ответ дан dylanfm 23 May 2017 в 12:34
поделиться

Проверка Кода

Первое движение к пустому dir, используйте "мерзавца init" для создания его репозиторием, затем клонируйте удаленный repo в собственное.

git clone user@host.com:/dir/to/repo

Везде, где Вы первоначально клонируетесь от, то, где "получение по запросу мерзавца" вытянет от по умолчанию.

7
ответ дан Dean Rather 23 May 2017 в 12:34
поделиться

Как Вы 'отмечаете' определенный набор изменений

, Как Вы 'отмечаете' 'тег' или 'выпускаете' определенный набор изменений для определенного набора файлов, таким образом, можно всегда вытянуть тот один позже?

Используя эти 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) Страница руководства

47
ответ дан dbr 23 May 2017 в 12:34
поделиться

Ресурс : Определенно выезд Gitcasts Scott Chacon, особенно разговор Railsconf .

Github является потрясающим и также имеет [приблизительно 113] полезные руководства .

5
ответ дан dylanfm 23 May 2017 в 12:34
поделиться

Изменения фиксации

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

$ 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 это - изменение, так как фиксация к центральному репозиторию теперь требует двух шагов.

27
ответ дан 4 revs, 4 users 47% 23 May 2017 в 12:34
поделиться

git status Ваш друг, используйте его часто. Хороший для ответа на вопросы как:

  • , Чем это управляло просто, делают?
  • , На чем ответвление - я?
  • , Какие изменения я собираюсь фиксировать, и я забыл что-нибудь?
  • Был я посреди чего-то в прошлый раз, когда я работал над этим проектом (дни, недели, или возможно несколько месяцев назад)?

, В отличие от этого, скажите svn status, git status выполнения почти немедленно даже на крупных проектах. Я часто находил его заверяющий при изучении мерзавца, чтобы часто использовать его, удостовериться моя умственная модель того, что продолжалось, было точно. Теперь я главным образом просто использую его для напоминания мне, что я изменил начиная со своей последней фиксации.

, Очевидно, намного более полезно, если Ваш .gitignore нормально настроен.

28
ответ дан Peter Burns 23 May 2017 в 12:34
поделиться

Сброс мерзавца

Говорит, что Вы делаете получение по запросу, объединяете его в Ваш код и решаете, что Вам не нравится оно. Используйте журнал мерзавца или tig, и найдите хеш того, везде, где Вы хотите вернуться к (вероятно, Ваша последняя фиксация перед получением по запросу/слиянием) скопируйте хеш и сделайте:

# Revert to a previous commit by hash:
git-reset --hard <hash>

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

# Revert to previous commit:
git-reset --hard HEAD^
32
ответ дан Dean Rather 23 May 2017 в 12:34
поделиться

Волшебство Мерзавца является всем, в чем Вы будете когда-либо нуждаться. Гарантируемый или Ваши деньги назад!

18
ответ дан Andrew 23 May 2017 в 12:34
поделиться

Ну, несмотря на то, что Вы попросили, чтобы мы не "просто" связались с другими ресурсами, довольно глупо, когда там уже существует выращенное сообщество (и растущий) ресурс, это действительно довольно хорошо: Книга Сообщества Мерзавца. Серьезно, это 20 + вопросы в вопросе будет совсем не кратким и последовательным. Книга Сообщества Мерзавца доступна и как HTML и как PDF и отвечает на многие Ваши вопросы с ясным, хорошо отформатированным, и коллега рассмотрел ответы и в формате, который позволяет Вам переходить прямо к Вашей проблеме под рукой.

увы, если мое сообщение действительно расстраивает Вас тогда, я удалю его. Просто скажите так.

59
ответ дан Greg Hewgill 23 May 2017 в 12:34
поделиться

Как установить Мерзавца

В Windows:

Установка msysgit

Там несколько загрузок:

  • Мерзавец: Использование это, если Вам конкретно не нужна одна из других опций ниже.
  • PortableGit: Использование это, если Вы хотите выполнить Мерзавца на ПК, не устанавливая на том ПК (например, выполняя Мерзавца от Карты памяти)
  • msysGit: Использование это, если Вы хотите разработать Мерзавца само. Если Вы просто хотите использовать Мерзавца для [1 146] Ваш исходный код, но не хотите редактировать Мерзавец исходный код, Вам не нужно это.

Это также устанавливает оболочку удара Cygwin, таким образом, Вы можете использовать git в более хорошей оболочке (чем cmd.exe), и также мерзавца-gui (доступный через git gui команда, или Start > All Programs > Git меню)

Mac OS X

Использование 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/Linux/BSD/etc.)

В 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 каталог.

33
ответ дан Ryan Lundy 23 May 2017 в 12:34
поделиться

Как настроить его для игнорирования файлов:

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

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

  • пустая строка А не игнорирует файлов, она обычно используется в качестве разделителя.
  • Строки, смотрящие с [1 132] #, служат комментариями.
  • ! префикс является дополнительным и инвертирует шаблон. Любой отрицаемый шаблон, который соответствия переопределят более низкие шаблоны приоритета.
  • расширенные выражения Поддержек и подстановочные знаки
    • Исключая: шаблон: *. [OA] проигнорирует все файлы в репозитории, заканчивающемся в.o или.a (объектные и архивные файлы)
  • , Если шаблон будет иметь каталог, заканчивающийся мерзавцем наклонной черты, то будет только соответствовать этому каталогу и путям под ним. Это исключает регулярные файлы и символьные ссылки от соответствия.
  • наклонная черта продвижения А будет соответствовать всем файлам в том пути.
    • Исключая: шаблон /*.c будет соответствовать файлу foo.c , но не яркий пример bar/awesome.c

от 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 быть лучшим ресурсом для получения дополнительной информации.

56
ответ дан Greg Hewgill 23 May 2017 в 12:34
поделиться

Графический интерфейсы пользователя для мерзавца

<час>

мерзавец GUI

, Включенный с мерзавцем — Выполненный git gui из командной строки и установщика Windows msysgit добавляет его к Меню "Пуск".

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

Одной из моих любимых функций является "строка этапа" и "ярлыки" ломтя этапа в контекстном меню, которое позволяет Вам фиксировать определенные части файла. Можно достигнуть того же через git add -i, но я нахожу легче использовать.

Это не самое симпатичное приложение, но это продолжает работать почти все платформы (являющийся основанным на Tcl/Tk)

Снимки экрана | экранная демонстрация

<час>

GitK

, Также включенный с мерзавцем. Это - средство просмотра истории мерзавца и позволяет Вам визуализировать историю репозитория (включая ответвления, когда они создаются и объединяются). Можно просмотреть и искать фиксации.

Сочетается приятно с мерзавцем-gui.

<час>

приложение Mac OS X Gitnub

. Главным образом эквивалент git log, но имеет некоторую интеграцию с [1 110] github (как "Представление сети").

симпатичные Взгляды, и соответствия с Mac OS X. Можно искать репозитории. Самая большая критика Gitnub состоит в том, что он показывает историю линейным способом (единственное ответвление за один раз) - он не визуализирует ветвление и слияние, которое может быть важным с мерзавцем, хотя это - запланированное улучшение.

ссылки на загрузку, журнал изменений и снимки экрана | репозиторий мерзавца

<час>

GitX

Намеревается быть "gitk клон для OS X".

Это может визуализировать нелинейную переходящую историю, выполнить фиксации, представление и искать фиксации, и это имеет некоторые другие хорошие функции как способность к "Quicklook" любой файл в любом пересмотре (нажмите пространство в представлении списка файлов), экспортируйте любой файл (через перетаскивание).

Это намного лучше интегрируется в OS X, чем git-gui / gitk, и быстро и стабильно даже с исключительно большими репозиториями.

исходный репозиторий мерзавца pieter недавно не обновил (более чем год во время записи). Более активно сохраняемое ответвление доступно в [1 115] brotherbard/gitx - это добавляет, что "боковая панель, выборка, вытягивает, продвигает, добавляет удаленный, слияние, избирательный подход, переоснова, клон, клон к"

Загрузка | Снимки экрана | репозиторий мерзавца | brotherbard ветвление | laullon ветвление

<час>

SmartGit

От домашней страницы:

SmartGit является фронтендом для распределенного Мерзавца системы управления версиями и работает на Windows, Mac OS X и Linux. SmartGit предназначается для разработчиков, которые предпочитают графический интерфейс пользователя по клиенту командной строки, чтобы быть еще более продуктивными с Мерзавцем — самый мощный DVCS сегодня.

можно загрузить его от [1 122] их веб-сайт .

Загрузка

<час>

версия TortoiseGit

TortoiseSVN Мерзавца для пользователей Windows.

Это портирует TortoiseSVN на TortoiseGit последний выпуск 1.2.1.0, который Этот выпуск может выполнить регулярную задачу, такую фиксацию, показать журналу, разность две версии, создать ответвление и тег, Создать патч и так далее. См. ReleaseNotes для детали. Добро пожаловать для содействия этого проекта.

Загрузка

<час>

QGit

QGit является средством просмотра GUI мерзавца, основывался на QT/C++

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

Загрузка

<час>

gitg

gitg является средством просмотра репозитория мерзавца, предназначающимся gtk +/GNOME. Одна из его основных целей состоит в том, чтобы предоставить более объединенный пользовательский опыт мерзавцу frontends через несколько рабочих столов. Это делает это не записать межплатформенное приложение, но тесным сотрудничеством с подобными клиентами для других операционных систем (как GitX для OS X).

Функции

  • история пересмотра Обзора.
  • Дескриптор большие репозитории (загружает репозиторий Linux, 17000 + изменения, менее чем 1 секунда).
  • изменения Фиксации.
  • скряга человека Этапа/неэтапа.
  • Возвращаются изменения.
  • Шоу цветная разность изменений в изменениях.
  • дерево Обзора для данного пересмотра.
  • части Экспорта дерева данного пересмотра.
  • Предоставление любой refspec, который команда, такая как 'журнал мерзавца' может понять к созданному историю.
  • Шоу и переключатель между ответвлениями в представлении истории.

Загрузка: источник выпусков или

<час>

Gitbox

Gitbox является графическим интерфейсом Mac OS X для системы управления версиями Мерзавца. В единственном окне Вы видите ответвления, историю и рабочее состояние каталога.

Повседневные операции легки: этап и неэтап изменяются с флажком. Фиксация, вытяните, объедините и продвиньте одним щелчком. Дважды щелкните по изменению для показа разности с FileMerge.app.

Загрузка

<час>

Gity

веб-сайт Gity не имеет большой информации, но из снимков экрана на там это, кажется, многофункциональный мерзавец OS X с открытым исходным кодом gui.

Загрузка или источник

<час>

Комбинация

Комбинация является визуальной разностью и инструментом слияния. Можно сравнить два или три файла и отредактировать их на месте (diffs обновление динамично). Можно сравнить две или три папки и запустить сравнения файлов. Можно просмотреть и просмотреть рабочую копию с популярных систем управления версиями такой, таких как CVS, Подрывная деятельность, Базар-ng и Подвижный [ и Мерзавец ].

Загрузки

<час>

Катана

Мерзавец А GUIfor OSX Steve Dekorte.

Сразу, посмотрите, какие удаленные ответвления имеют изменения в получении по запросу, и локальные repos имеют изменения в нажатии. Операция в секунду мерзавца добавляет, фиксирует, продвигает, вытягивает, отмечает и сбрасывает, поддерживаются, а также визуальный diffs и визуальный просмотр проекта hieracy, который выделяет локальные изменения и дополнения.

Свободный для 1 репозитория, 25$ для больше.

Загрузка

<час>

Росток (раньше GitMac)

Внимание на создание простого в использовании Мерзавца. Показывает собственное Какао (подобный Mac) UI, быстрый просмотр репозитория, клонирование, продвигает/вытягивает, ветвление/слияние, визуальная разность, удаленные ответвления, легкий доступ к Терминалу, и т.д.

Путем создания большинства наиболее часто используемых действий Мерзавца интуитивным и легким работать, Вырастите (раньше, GitMac) делает Мерзавца удобным для пользователя. Совместимый с большинством рабочих процессов Мерзавца, Росток является большим для разработчиков и разработчиков, сотрудничества команды и опытных и неопытных пользователей одинаково.

Загрузка | Веб-сайт

<час>

Башня

А многофункциональный GUI Мерзавца для MAC OSX. 30-дневная бесплатная демонстрационная версия, $59 для однопользовательской лицензии.

Загрузка | Веб-сайт

<час>

EGit

EGit является поставщиком Команды Eclipse для системы управления версиями Мерзавца. Мерзавец является распределенным SCM, что означает, что у каждого разработчика есть полная копия всей истории каждого пересмотра кода, делая запросы против истории очень быстрыми и универсальными.

проект EGit реализует инструменты Eclipse сверх реализации Java JGit Мерзавца.

Загрузка | Веб-сайт

<час>

Расширения Мерзавца

Открытый исходный код для Windows - устанавливает все, что необходимо работать с Мерзавцем в единственном пакете, простом в использовании.

Расширения Мерзавца инструментарий для создания работы с Мерзавцем в Windows более интуитивной. Расширение оболочки будет межтереть в Windows Explorer и представляет контекстное меню на файлах и каталогах. Существует также плагин Visual Studio для использования мерзавца из Visual Studio.

Загрузка

Большой благодаря [1 152] dbr для разработки на мерзавце gui материал.

<час>

SourceTree

SourceTree свободен клиент Mac для Мерзавца, Подвижного и SVN. Созданный Atlassian, людьми позади BitBucket, это, кажется, работает одинаково хорошо с любой системой VC, которая позволяет Вам осваивать единственный инструмент для использования со всеми Вашими проектами, однако они управляются версией. Упакованный функцией и СВОБОДНЫЙ.

Опытно-готовый & упакованный функцией и для неопытных и для опытных пользователей:

выход Обзора и поступление changesets. Избирательный подход между ответвлениями. Обработка патча, переоснова, притон / откладывают и многое другое.

Загрузка | Веб-сайт

<час>
110
ответ дан 20 revs, 8 users 68% 23 May 2017 в 12:34
поделиться

WRT хороший GUIs/frontends, можно также хотеть проверить qgit, который является межплатформенным (Linux/Win32) средство просмотра репозитория для Мерзавца и может также использоваться в качестве высокого уровня frontend для наиболее распространенных операций Мерзавца, на самом деле это может быть легко улучшено так называемыми "пользовательскими действиями" так, чтобы пользователи могли обеспечить настроенные действия.

5
ответ дан Peter Mortensen 23 May 2017 в 22:34
поделиться

Я начал с официальным учебным руководством Мерзавца. Я думаю, что это достаточно практично для новичков (я был и все еще, новичок, по Вашему определению! Я едва схватываю make-файлы, я только играл немного с Подверсией Apache, и т.д.).

8
ответ дан 22 November 2019 в 21:11
поделиться

Как объединить ветви?

Если вы хотите объединить ветвь (например, от master до выпуска ), убедитесь, что ваша текущая ветвь является целевой ветвью, в которую вы хотите слиться (используйте git branch или git status , чтобы увидеть вашу текущую ветку).

Затем используйте

git merge master

(где master - это имя ветви, которую вы хотите объединить с текущей веткой).

Если есть Если есть какие-либо конфликты, вы можете использовать

git diff

, чтобы увидеть ожидающие конфликты, которые вам нужно разрешить.

16
ответ дан 22 November 2019 в 21:11
поделиться

Как вы ветвитесь?

Ветвь по умолчанию в репозитории 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>
27
ответ дан 22 November 2019 в 21:11
поделиться

Получение последней версии кода

$ 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

Это почти охватывает все случаи получения последней копии кода из удаленного репозитория.

21
ответ дан 22 November 2019 в 21:11
поделиться

Как можно Я создаю ветку в удаленном репозитории?

Предполагая, что вы клонировали свой удаленный репозиторий из какого-то единственного удаленного репозитория.

# 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
8
ответ дан 22 November 2019 в 21:11
поделиться

Как отслеживать удаленные ветки

Предполагая, что существует удаленный репозиторий, из которого вы клонировали ваш локальный репозиторий, а также предполагая, что в этом удаленном репозитории есть ветка с именем '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
12
ответ дан 22 November 2019 в 21:11
поделиться

Я также обнаружил, что Git Internals очень полезен . Он написан Скоттом Чаконом (автором Pro Git и сопровождающим книги сообщества Git). Что мне нравится в Git Internals, так это то, что он фокусируется сначала на концепциях, а затем на командах , и, поскольку это ~ 100 маленьких страниц, он быстро усваивается.

16
ответ дан 22 November 2019 в 21:11
поделиться

Как вы сравниваете две версии файла или текущий файл и предыдущую версию?

Команда сравнения - git diff .

Для сравнения 2 версии файла:

$ git diff <commit1> <commit2> <file_name>

Это отличает commit1 от commit2; если вы измените порядок, тогда файлы будут различаться в обратном порядке, что может быть не тем, что вы ожидаете ...

Чтобы сравнить текущий подготовленный файл с репозиторием:

$ git diff --staged <file_name>

Чтобы сравнить текущий неустановленный файл с репозиторием:

$ git diff <file_name>
10
ответ дан 22 November 2019 в 21:11
поделиться

По-настоящему хороший документ для понимания того, как работает Git, - это The Git Parable . Очень рекомендуется!

11
ответ дан 22 November 2019 в 21:11
поделиться

Как вы видите историю изменений в файл?

git log -- filename
13
ответ дан 22 November 2019 в 21:11
поделиться
7
ответ дан 22 November 2019 в 21:11
поделиться

Вот копия сообщения 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, соответственно. Только одна команда в обоих случаях.

39
ответ дан 22 November 2019 в 21:11
поделиться

Как настроить общий командный репозиторий?

Как настроить обычный ​​репозиторий здесь , но как создать командный репозиторий, каждый может тянуть и проталкивать из и в?

Использование совместно используемой файловой системы NFS

Предположим, что ваша команда уже имеет, например, членство в совместно используемой группе, которое можно использовать.

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

Использование SSH

Создать учетную запись пользователя на целевом сервере. Независимо от того, используете ли вы учетную запись без пароля, учетную запись с паролем или используете 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
31
ответ дан 22 November 2019 в 21:11
поделиться

Бесплатная книга Pro Git определенно моя любимая, особенно для начинающих.

20
ответ дан 22 November 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: