remove - git tag vs branch




Git для начинающих: окончательное практическое руководство (20)

GUI для git

Git GUI

Включен в git-Run git gui из командной строки, а msysgit Windows msysgit добавляет его в меню «Пуск».

Git GUI может делать большинство того, что вам нужно делать с git. Включая сценические изменения, настраивайте git и репозитории, нажимайте изменения, создавайте / проверяете / удаляете ветки, объединяете и многое другое.

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

Это не самое приятное приложение, но оно работает практически на всех платформах (основываясь на Tcl / Tk)

Screenshots | скринкаст

GitK

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

Хорошо сочетается с git-gui.

Gitnub

Приложение Mac OS X. В основном эквивалент git log , но имеет некоторую интеграцию с github (например, «Сетевой вид»).

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

Gitnub | github

GitX

Предназначен для «клонирования gitk для OS X».

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

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

Первоначальный git-репозиторий pieter не обновлялся недавно (более года на момент написания). Более активная поддерживаемая ветка доступна на brotherbard/gitx - она ​​добавляет «боковую панель, извлекает, тянет, нажимает, добавляет удаленный, слияние, вишневый выбор, rebase, clone, clone to»

Download | Screenshots | git repository | brotherbard/gitx | вилка lallon

SmartGit

На главной странице:

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

Вы можете скачать его со SmartGit .

Download

TortoiseGit

Версия TortoiseSVN Git для пользователей Windows.

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

Download

QGit

QGit - это git-графический просмотрщик, построенный на Qt / C ++.

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

Download

gitg

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

Характеристики

  • Просмотрите историю изменений.
  • Обрабатывайте большие репозитории (загружает репозиторий linux, 17000+ ревизий, менее 1 секунды).
  • Зафиксировать изменения.
  • Стадия / неустановленные отдельные куски.
  • Отменить изменения.
  • Показать раскрашенные различия в изменениях.
  • Просмотрите дерево для данной версии.
  • Экспортировать части дерева данной ревизии.
  • Поставьте любой refspec, который команда, такая как «git log», может понять, чтобы построить историю.
  • Показывать и переключаться между ветвями в режиме просмотра истории.

Скачать: releases или source

Gitbox

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

Быстрые операции легко: сценические и неустановленные изменения с помощью флажка. Зафиксируйте, потяните, объедините и нажмите одним щелчком мыши. Дважды щелкните изменение, чтобы показать diff с помощью FileMerge.app.

Gitbox

Gity

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

Download или Download

Meld

Meld - это инструмент визуального разграничения и слияния. Вы можете сравнить два или три файла и отредактировать их на месте (diffs update динамически). Вы можете сравнить две или три папки и выполнить сопоставления файлов. Вы можете просматривать и просматривать рабочую копию из популярных систем управления версиями, таких как CVS, Subversion, Bazaar-ng и Mercurial [ и Git ].

Downloads

Katana

Git GUI для OSX от Steve Dekorte.

С первого взгляда, посмотрите, какие удаленные ветви имеют изменения для вытаскивания, а локальные репозитории имеют изменения для нажатия. Поддерживаются операции git ops добавления, фиксации, push, pull, tag и сброса, а также визуальные различия и визуальный просмотр иерархии проектов, которые выделяют локальные изменения и дополнения.

Бесплатно для 1 репозитория, 25 долларов США.

Katana

Sprout (ранее GitMac)

Фокусируется на том, чтобы сделать Git простым в использовании. Он поддерживает собственный пользовательский интерфейс Cocoa (mac-like), быстрый просмотр репозитория, клонирование, push / pull, разветвление / слияние, визуальный diff, удаленные филиалы, легкий доступ к терминалу и многое другое.

Используя наиболее распространенные действия Git, интуитивно понятные и легко выполняемые, Sprout (ранее GitMac) делает Git удобным для пользователя. Sprout, совместимый с большинством рабочих процессов Git, отлично подходит для дизайнеров и разработчиков, коллективной работы и продвинутых и начинающих пользователей.

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

Tower

Богатый графический интерфейс Git для Mac OSX. 30-дневная бесплатная пробная версия, $ 59USD для однопользовательской лицензии.

Download | Tower

EGit

EGit является поставщиком Eclipse Team для системы контроля версий Git. Git - это распределенный SCM, что означает, что каждый разработчик имеет полную копию всей истории каждой ревизии кода, делая запросы к истории очень быстрыми и универсальными.

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

Download | EGit

Расширения Git

Open Source для Windows - устанавливает все необходимое для работы с Git в одном пакете, прост в использовании.

Git Extensions - это инструментарий, позволяющий работать с Git на Windows более интуитивно понятным. Расширение оболочки будет взаимодействовать в проводнике Windows и представляет контекстное меню для файлов и каталогов. Существует также плагин Visual Studio для использования git из Visual Studio.

Download

Большое спасибо dbr за разработку материалов git gui.

SourceTree

SourceTree - бесплатный клиент Mac для Git, Mercurial и SVN. Построенный Atlassian, людьми, стоящими за BitBucket, он работает одинаково хорошо с любой системой VC, которая позволяет вам овладеть одним инструментом для использования со всеми вашими проектами, однако они контролируются версиями. Функциональный и БЕСПЛАТНЫЙ.

Expert-Ready & Feature-pack для начинающих и продвинутых пользователей:

Просмотрите исходящие и входящие изменения. Вишневый забор между ветвями. Обработка патчей, переустановка, прикрытие / полка и многое другое.

Download | SourceTree

Хорошо, увидев этот пост от PJ Hyett , я решил пропустить до конца и пойти с Git .

Так что мне нужно, это практическое руководство для новичков в Git. «Новичок» определяется как кто-то, кто знает, как обрабатывать свой компилятор, понимает на каком-то уровне, что такое Makefile , и коснулся контроля источника, не понимая его очень хорошо.

«Практический» определяется как этот человек не хочет подробно разбираться в том, что делает Git на заднем плане, и даже не заботится (или не знает), что он распространяется. Ваши ответы могут намекать на возможности, но старайтесь стремиться к новичкам, которые хотят сохранить «основной» репозиторий на «сервере», который подкреплен и защищен, и обрабатывать их локальный репозиторий как просто «клиентский» ресурс.

Так:

Установка / настройка

Работа с кодом

Маркировка, ветвление, выпуски, базовые линии

Другой

  • Опишите и ссылку на хороший графический интерфейс, плагин IDE и т. Д., Что делает Git ресурсом без командной строки, но, пожалуйста, перечислите его ограничения, а также его хорошее.
    • msysgit - кросс-платформа, входящая в комплект Git
    • msysgit - просмотрщик истории кроссплатформенности, включенный в Git
    • msysgit - Mac OS X
    • msysgit - просмотрщик Mac OS X
    • msysgit - кроссплатформенная, коммерческая, бета-версия
    • tig - консольный GUI для Linux
    • qgit - графический интерфейс для Windows, Linux
    • msysgit - пакет для Windows, включает в себя дружественный графический интерфейс
  • Любые другие общие задачи, которые должен знать новичок?
  • Как эффективно работать с репозиторием subversion, установленным в качестве источника исходного источника?

Другие ссылки для начинающих Git

Вступление в Git

Время от времени я буду перебирать записи и «аккуратно» их, чтобы они имели постоянный внешний вид и легко сканировать список - не стесняйтесь следовать простому «заголовку» - краткому пояснению - списку инструкций - gotchas и Дополнительная информация ". Я также буду ссылаться на записи из списка маркеров выше, поэтому их легко найти позже.


Git Reset

Скажите, что вы делаете тягу, сливаете ее в свой код и решаете, что вам это не нравится. Используйте git-log или tig и найдите хэш в любом месте, куда бы вы хотели вернуться (возможно, ваш последний фиксат до вытягивания / слияния), скопируйте хеш и выполните:

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

Вместо хэша вы можете использовать HEAD ^ как ярлык для предыдущего коммита.

# Revert to previous commit:
git-reset --hard HEAD^

Как вы в отрасли?

Разделение по умолчанию в репозитории 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 - это просто каталог, содержащий специальный каталог .git .

Это отличается от «централизованных» систем контроля версий (например, подрывной деятельности), где «репозиторий» размещен на удаленном сервере, который вы checkout в каталоге «рабочая копия». С git ваша рабочая копия - это репозиторий.

Просто запустите git init в каталоге, который содержит файлы, которые вы хотите отслеживать.

Например,

cd ~/code/project001/
git init

Это создает папку .git (скрытую) в текущем каталоге.

Чтобы создать новый проект, запустите git init с дополнительным аргументом (имя создаваемого каталога):

git init project002

(This is equivalent to: mkdir project002 && cd project002 && git init)

Чтобы проверить, находится ли текущий текущий путь в репозитории git, просто запустите git status - если это не репозиторий, он сообщит «фатальный: не репозиторий git»,

Вы также можете перечислить каталог .git и проверить, содержит ли он файлы / каталоги, похожие на следующие:

$ ls .git
HEAD         config       hooks/       objects/
branches/    description  info/        refs/

Если по какой-либо причине вы хотите «де-git» репозиторий (вы хотите прекратить использовать git для отслеживания этого проекта). Просто удалите каталог .git на базовом уровне репозитория.

cd ~/code/project001/
rm -rf .git/

Внимание: это уничтожит всю историю изменений, все ваши теги, все , что сделал git. Он не коснется «текущих» файлов (файлы, которые вы видите в данный момент), но предыдущие изменения, удаленные файлы и т. Д. Будут невосстановимы!


Как установить Git

В Windows:

Установить msysgit

Есть несколько загрузок:

  • Git: используйте это, если вам не нужен один из других вариантов ниже.
  • PortableGit: используйте это, если вы хотите запустить Git на ПК без установки на этом ПК (например, запустить Git с USB-накопителя)
  • msysGit: Используйте это, если вы хотите разработать Git. Если вы просто хотите использовать Git для своего исходного кода, но не хотите редактировать исходный код Git , вам это не нужно.

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

Mac OS X

Используйте git-osx-installer , или вы также можете установить из источника

Через менеджера пакетов

Установите git используя собственный менеджер пакетов. Например, на Debian (или Ubuntu):

apt-get install git-core

Или в Mac OS X через MacPorts :

sudo port install git-core+bash_completion+doc

... или fink:

fink install git

... или Homebrew :

brew install git

В дистрибутивах на основе Red Hat, таких как Fedora:

yum install git

В Cygwin пакет Git можно найти в разделе «devel»

Из источника (Mac OS X / Linux / BSD / и т. Д.)

В Mac OS X, если у вас установлены инструменты для разработчиков, вы можете легко скомпилировать Git из исходного кода. Загрузите последнюю версию Git как .tar.bz или .tar.gz из http://git-scm.com/ и извлеките ее (дважды щелкните в Finder)

В Linux / BSD / и т. Д. это должно быть почти то же самое. Например, в Debian (и Ubuntu) вам необходимо установить пакет build-essential через apt .

Затем в Terminal, cd где вы извлекли файлы (Запуск cd ~/Downloads/git*/ должен работать), а затем запустите.

./configure && make && sudo make install

Это установит Git в место по умолчанию ( /usr/local - так что git будет в /usr/local/bin/git )

Он попросит вас ввести ваш пароль (для sudo ), поэтому он может писать в каталог /usr/local/ , доступ к которому может получить только пользователь root, поэтому sudo требуется!

Если вам нужно установить его где-то отдельно (поэтому файлы Git не смешиваются с другими инструментами), используйте --prefix с командой configure:

./configure --prefix=/usr/local/gitpath
make
sudo make install

Это установит двоичный файл git в /usr/local/bin/gitpath/bin/git поэтому вам не нужно вводить его каждый раз, когда вы добавите его в свой $PATH , добавив следующую строку в ваш ~/.profile :

export PATH="${PATH}:/usr/local/bin/gitpath/bin/"

Если у вас нет доступа sudo, вы можете использовать --prefix=/Users/myusername/bin и установить в свой домашний каталог. Не забудьте добавить ~/bin/ в $PATH

Скрипт x-git-update-to-latest-version автоматизирует многого:

Этот скрипт обновляет мой локальный клон git repo (localy at ~/work/track/git ), а затем настраивает, устанавливает (в /usr/local/git git describe ) и обновляет символическую ссылку /usr/local/git .

Таким образом, я могу иметь /usr/local/git/bin в моей PATH и я всегда использую последнюю версию.

В последней версии этого скрипта также устанавливаются справочные страницы. Вам нужно настроить ваш MANPATH чтобы включить MANPATH /usr/local/git/share/man .


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

git log -- filename

Как объединить филиалы?

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

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

git merge master

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

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

git diff

для просмотра ожидающих конфликтов, которые вы должны решить.


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

Предполагая, что существует удаленный репозиторий, из которого клонирован ваш локальный репозиторий, а также предполагается, что в этом удаленном репозитории есть ветвь с именем «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 init», чтобы сделать его репозиторием, затем клонируйте удаленное репо в свое собственное.

git clone [email protected]:/dir/to/repo

Везде, где вы изначально клонировали, это то, где «git pull» потянет по умолчанию.


Консольный интерфейс - Tig

Монтаж:

apt-get install tig

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

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

пустяки

«Тиг» - «Гит» назад.


Переменные изменения

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

$ git commit source/main.c

Скопирует файл main.c в каталог ./source/

$ git commit -a # the -a flag pulls in all modified files

будет передавать все измененные файлы (но не новые файлы, их нужно добавить в индекс с помощью git-add). Если вы хотите зафиксировать только определенные файлы, вам необходимо сначала сгенерировать их с помощью git-add, а затем зафиксировать без флага -a.

Commating изменяет только локальный репозиторий, но не удаленные репозитории. Если вы хотите отправить коммиты в удаленный репозиторий, вам нужно будет нажать.

$ git push <remote> <branch> # push new commits to the <branch> on the <remote> repository

Для кого-то из CVS или SVN это изменение, так как фиксация в центральном репозитории теперь требует двух шагов.


Получение последнего кода

$ 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

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


Вот копия сообщения PJ Hyett, поскольку он больше не доступен:

Гит не тяжело

23 ноября 2008 г.

Когда мы рассказываем людям, почему они должны использовать Git over Subversion, то есть «Git делает Subversion лучше, чем Subversion, но это намного больше».

«Много больше» состоит из множества вещей, которые делают Git действительно сияющим, но он может быть довольно подавляющим для тех, кто приходит из других SCM, таких как Subversion.

Тем не менее, нет ничего, что помешает вам использовать Git так же, как вы используете Subversion, пока вы делаете переход.

Предполагая, что вы установили необходимое программное обеспечение и где-то есть удаленный репозиторий, вот как вы могли бы захватить код и вернуть свои изменения с помощью Subversion:

$ svn checkout svn://foo.googlecode.com/svn/trunk foo
# make your changes
$ svn commit -m "my first commit"

И как бы вы сделали это в Git:

$ git clone [email protected]:pjhyett/foo.git
# make your changes
$ git commit -a -m "my first commit"
$ git push

Еще одна команда, чтобы это произошло в Git. Эта дополнительная команда имеет большие последствия, но для целей этой статьи это все, о чем мы говорим, одна дополнительная команда.

Понимаете, это действительно не так сложно.

Обновление: я не буду упоминать, что эквивалент обновления локальной копии в Subversion по сравнению с Git - это svn update и git pull , соответственно. В обоих случаях имеется только одна команда.


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

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


Git Magic - это все, что вам когда-либо понадобится. Гарантированные или ваши деньги обратно!


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

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

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

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


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



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

В я бы предпочел увидеть ваши любимые трюки!

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

EDIT: как предыдущий пост, если вы действительно предпочитаете формат stackoverlow с сообщениями в качестве вики, я удалю этот ответ


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





version-control