Инструкция-шпаргалка для начинающих / Хабр

datacompboy

Время на прочтение 2 мин

Количество просмотров

131K

Туториал

Если в один прекрасный момент вам ударило в голову желание насадить разумное, доброе, вечное, и пересадить всех с SVN на GIT, сразу встают три проблемы:

  • Объяснить зачем это нужно разработчикам и руководству
  • Ввести в обиход новую схему работы с кодом
  • Научить ничего не подозревающих девелоперов новым техникам

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

Основные постулаты работы с кодом:

  • Каждая задача решается в своей ветке.
  • Коммитим сразу, как что-то получили осмысленное.
  • В master мержится не разработчиком, а вторым человеком, который производит вычитку и тестирование изменения
  • Все коммиты должны быть осмысленно подписаны.
  • Репозиторий должен держаться сухим и шелковистым

Так как некоторые разработчики почему-то работают под Windows, пришлось описать в том числе и установку-настройку-рецепты при работе под Windows.

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

Предупреждаю сразу, инструкция отвечает на вопрос «зачем» разработчику, незнакомому с DVCS, а не начальству.
Так же, предполагается, что master ветку никогда не трогают с —force, желательно, чтобы это было невозможно вообще (зарезано на уровне gitolite).
Инструкция — начинающих разработчиков, а не Tips & Tricks, из этих соображений я опустил моменты «выхода из самосозданной задницы». Все случаи не упомнишь, гораздо проще разрулить на месте по факту если что-то из ряда вон выходящее.

Собственно инструкция: Работа с Git.pdf (135Kb).
Для желающих адаптировать её к своей ситуации, исходник: Работа с Git.odt (90Kb).
p.s.: Забыл сказать о лицензии: Public Domain. Делайте что хотите, только в терновый куст не бросайте.

Буду благодарен каким-либо полезным комментариям, указанием на очепятки и прочему фидбеку.

Теги:

  • новичкам
  • инструкции
  • рецепты
  • git
  • tortoisegit

Хабы:

  • Git

Всего голосов 117: ↑100 и ↓17 +83

Комментарии 65

Anton Fedorov @datacompboy

Программист / сисадмин (Sr. SRE)

Комментарии Комментарии 65

Шпаргалка по основам Git/GitHub.

Руководство по контролю версий для… | by Vlad Kopenkin

Если Вы всё еще не знакомы с системой контроля версий и её использование не входит в Ваш рабочий процесс, то сейчас — самое время начать! Это основополагающее руководство поможет Вам начать работу с Git и даст Вам прочный фундамент для дальнейшего развития. Git почти наверняка используется на любом серьёзном проекте и чем раньше Вы научитесь им пользоваться, тем более ценным сотрудником Вы станете для работодателей. Так же, это улучшит Ваш личный опыт, так как Вы без проблем сможете переключаться между несколькими компьютерами, не волнуясь при этом о переносе проекта через флэш накопители… Работа в команде станет гораздо легче. Бывали ли у Вас случаи, когда код становился настолько запутанным, что казалось, будто было бы легче начать проект с нуля? С системой контроля версий Вы сможете просто вернуться к стабильной версии, без всего того что Вы успели воплотить в 4 часа утра.

Git — это одна из систем контроля версий. По существу это значит, что она хранит всю историю изменений проекта. История Вашего проекта и история изменений этого же проекта у Ваших коллег — у всего будет копия. Это полная противоположность SVN, где вся история изменений храниться в одном месте.

GitHub, часто путают с Git. На самом деле — это хостинг репозиториев. Возможно Вам пока непонятно что такое репозиторий, но не спешите закрывать статью, к концу всё прояснится. Вкратце, GitHub — это то место, куда Вы будете загружать историю изменений проекта используя Git.

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

Первым делом мы загрузим Git. Для пользователей Windows я советую установить и Git Bash, который доступен после установки Git. Для пользователей Mac, использование Terminal будет достаточным. После завершения установки приступайте к регистрации аккаунта GitHub. Итак, у Вас есть Git, инструмент командной строки, и GitHub аккаунт, куда Вы будете загружать свои репозитории.

Используя Git Bash или Terminal перейдите в корневую директорию проекта. Если Вы используете Git Bash, то с помощью правого клика можно выбрать “Git Bash Here” и он запустится в рабочей директории.

git init
Эта команда создаст .git репозиторий в Вашем проекте. Репозиторий или “repo” это коллекция всех изменений, которые были совершены на протяжении всего времени после инициализации репозитория. Это первое что нужно сделать для нового проекта.

git config --global user.name "Ваше Имя"
git config --global user.email "ВашаПочта@mail.com"
Эти команды определят информацию, которая будет использоваться при каждом commit(фиксирование изменений). Их стоит выполнить всего один раз при первичной установке Git.

git add имяФайла.расширение
Замените “имяФайла.расширение” на любой файл, изменения которого Вы пытаетесь зафиксировать, например “index.html”. Эта команда добавит файл в “staging area”(участок подготовки). Воспринимайте staging area, как секцию в которой файлы проходят подготовку к перемещению в Ваш репозиторий.

git add .
Если Вы хотите добавить всё из директории проекта в staging area, то эта команда сделает всё сама.

git add *.html
Если Вы хотите добавить все файлы с расширением .html в staging area то эта команда отлично подойдет. Расширение можно менять в зависимости от предпочтений.

git status
Покажет что уже было добавлено в staging area и какие файлы были изменены и ждут перемещения в staging area.

git reset имяФайла. расширение
Убирает выбранный файл из staging area.

git rm --cached имяФайла.расширение
Убирает файл из staging area и определяет его как игнорируемый.

git commit -m "Описание коммита"
Берёт файлы из staging area и “фиксирует” их в Ваш локальный репозиторий. В кавычки следует вставить краткое описание изменений для конкретного коммита. Постарайтесь описать коммит краткими деталями, например: “устранил проблему при изменении имени пользователя” вместо подобных сообщений “какие-то изменения”

touch .gitignore
Эта команда создаст файл с названием .gitignore. Вы можете открыть этот файл в текстовом редакторе и прописать названия файлов или директорий, изменения в которых Вы не хотели бы отслеживать (они будут игнорироваться Git). Изменения в игнорируемых файлах не будут отображаться при выполнении git status.

git branch названиеВетки
Создает сущность, называемую branch(ветвь). Ветвь — это точная копия Ваших файлов.

git checkout “названиеВетки”
Позволит Вам переключить контроль над созданной Вами веткой и работать в её пределах. Здесь Вы можете совершать любые изменения кода. Когда Вы будете готовы можно совершить commit изменений и отправить изменения в GitHub (об этом ниже) или же можно удалить ветвь, если что-то пошло не так или Вам больше не нужны изменения сделанные в этой ветке.

git merge названиеВетки
Находясь в Master(главной) ветви, Вы можете использовать эту команду, чтобы взять коммиты из любой из ветвей и соединить их вместе.

git remote add origin https://github.com/имяПользователя/проект.git
Эта команда определит “местоположение” Вашего удалённого репозитория. Всё что было до этого происходило исключительно в локальном репозитории на Вашем компьютере. Вам нужно будет перейти в GitHub аккаунт и создать новый удалённый репозиторий, куда Вы сможете отправлять изменения из локального репозитория. After you created your remote repository you will be provided with a link and that link is the location you will want to use in the above command.

git remote
Выведет список из всех удалённых репозиториев, которые были добавлены к Вашему проекту.

git push -u origin master
Эта команда отправит локальные изменения в удалённый репозиторий. Таким образом эту команду стоит прописывать только первый раз.

git push
This is what you will use to push your code to GitHub after your initial push.

git clone https://github.com/имяПользователя/проект.git
Если у Вас отсутствует проект на личном или рабочем компьютере, то эта команда поможет клонировать/загрузить весь проект в текущую директорию.

git pull
Если Вы работаете над одним и тем же проектом с несколькими людьми, то эта команда позволит загрузить последнюю версию из удалённого репозитория и обновить вашу локальную версию.

Надеюсь это руководство поможет Вам начать и понимать что вообще происходит. Буду рад помочь с уточнениями и ответами на вопросы в комментариях.

Оригинал статьи — ссылка

Git шпаргалка для начинающих. Гит | Шпаргалка | Новичок |… | от Shanika Ediriweera

Git | Шпаргалка | Новичок | Программист

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

Системы контроля версий — это категория программных инструментов, которые помогают команде разработчиков программного обеспечения управлять изменениями в исходном коде с течением времени. Если допущена ошибка, разработчики могут повернуть время вспять и сравнить более ранние версии кода, чтобы исправить ошибку и свести к минимуму неудобства для всех членов команды.

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

Хватит интро.

Ниже приведены команды git, которые будут наиболее полезны для всех разработчиков.

Для начинающих используйте это как шпаргалку, пока ваш мозг не запомнит их автоматически!!! 😉

Глобальная настройка имени пользователя и электронной почты Git. Эти данные будут связаны с вашими коммитами. Используйте без флага --global , чтобы установить имя пользователя и адрес электронной почты Git для текущего репозитория.

 $ git config --global user.name "JohnDoe" 
$ git config --global user.email "[email protected]"

Инициализировать репозиторий Git существующим проектом. Внутри папки проекта:

 $ git init 

ВСЕГДА ПРОВЕРЯЙТЕ СТАТУС!!!

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

 $ git статус 

Справка. Получить справку по командам git

 $ git help  

Клонирование существующего репозитория
 $ git clone  

Настройка удаленного URL-адреса для репозитория. (Полезно при настройке форка)

 $ git remote -v // перечислить все удаленные устройства 
$ git remote add origin // добавить происхождение
$ git remote rename // переименовать удаленный

Добавить исходный URL-адрес репо как Upstream. (также можно использовать любое другое имя)

 $ git remote add upstream https://github.com/  ORIGINAL_REPOSITORY  .git 
$ git remote show upstream //детали

Синхронизация форка с upstream. (синхронизация основной ветки)

 $ git fetch upstream 
$ git checkout master
$ git merge upstream/master

Branching
 $ git branch //список веток 
$ git branch -a //список всех удаленных веток
$ git branch // создать новую ветку
$ git branch -d // удалить ветку
$ git branch -D // принудительно удалить ветку
$ git branch -m // rename$ git checkout <ветка> //изменить текущую ветку
$ git checkout -b //создать и изменить ветку

Настроить локальную ветку для отслеживания удаленной ветки

 $ git branch -u origin/  

Удалить удаленную ветку

$ git push origin —delete имя удаленной ветки

Основной рабочий процесс Git
 $ git add .  //подготовить все файлы с изменениями после работы 
ИЛИ
$ git add $ git commit //открывает интерактивную оболочку для типа сообщения фиксации
ИЛИ
$ git commit -m "ВАШЕ СООБЩЕНИЕ КОММИТА"$ git pull //вытягивание из удаленной ветки, отслеживаемой текущей локальной веткой
ИЛИ
$ git pull origin //BRANCH - master, dev, feature-x. .$ git push //если уже отслеживается удаленная ветка

Нажать на удаленную ветку. (создайте удаленную ветку, если она не существует)

 $ git push -u origin  

Изменить коммит. Добавить больше изменений в последнюю фиксацию. Изменить сообщение коммита.

 $ git commit --amend 
$ git commit --amend -m «сообщение»

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

 $ git diff 
$ git diff --staged //отличие от подготовленных (git add) файлов

Для более сложного использования, такого как сравнение 2 файлов, сравнение 2 коммитов, сравнение 2 веток, посетите https://www. atlassian.com/git/tutorials/saving-changes/git-diff

Журнал Git. ( Проверить историю коммитов)

 $ git log 
$ git log -n // лимит
$ git log --oneline //Конденсация
$ git log --stat //статистика
$ git log --author="" //коммиты от конкретного автора
$ git log //коммиты включая a file$ git log --graph --decorate --oneline

Blame (проверить все подробные изменения в файле)

 $ git fault <ФАЙЛ> 
$ git fault <ФАЙЛ> --date short

Remove

 $ git rm  //удаляет файл 
$ git rm '*.txt' //удаляет все файлы с расширением .txt

Сделать файл неотслеживаемым. Удалить файл из индекса git. Но сохраните файл:

 $ git rm — cached  // сделать файл неотслеживаемым 

Или вы можете использовать файл .gitignore .

Силовая тяга. (Получить версию на удаленке)

 $ git fetch --all 
$ git reset --hard origin/
$ git checkout -- .

Принудительное нажатие. (Принудительно перезаписать удаленную ветку историей локальных коммитов) 9

Сброс до последней фиксации. ( Полезно для отмены конфликтов слияния слияния до последней фиксации)

 $ git reset --hard HEAD 

Сохранение

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

 $ git stash //сохранение неустановленных изменений 
$ git stash save "добавить стиль на наш сайт" //сохранение с сообщением//вытащить с удаленного сервера и слить$ git stash show //показать схрон
$ git stash show -p //показать разницу тайника
$ git stash list$ git stash pop
ИЛИ
$ git stash pop stash@{0} //stash@{0} - номер тайника$ git stash apply

Создать ветку из тайника

 $ git stash branch  stash@{1} //тайник@{1} - номер тайника. 

Очистить тайник

 $ git stash drop stash@{1} 
$ git stash clear //очистить все тайники

Маркировка

Полезно для отслеживания выпусков/версий.

 $ git tag // список тегов 
$ git checkout // проверка кода по тегу (версия)
$ git tag -a v0.0.3 -m "версия 0.0.3" //создать новый тег v0.0.3
$ git push --tags

Оформить заказ https://www.atlassian.com/git/tutorials/ inspecting-a-repository/git-tag для расширенного использования.

Перебазирование (выборка и перебазирование)

Перебазирование — это процесс перемещения или объединения последовательности коммитов в новый базовый коммит. Также известен как переписывание истории git.

 $ git fetch 
$ git rebase //добавляет локальные коммиты поверх исходных коммитов, без слияния коммитов
$ git rebase -i //перебазировать интерактивную сессию

При возникновении конфликта

 $ git rebase --continue //исправить конфликт и продолжить 
$ git rebase — пропустить //пропустить конфликт
$ git rebase -- abort //прервать перебазирование

Локальное перемещение

 $ git checkout  
$ git rebase master //перебазировать главную ветку в "some_branch"
$ git checkout master
$ git merge

своего рода расширенная функция Git. Пожалуйста, следуйте документации для получения дополнительной информации. https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase

Удалить фиксацию слияния

Если вы хотите удалить фиксацию слияния так, как будто ее никогда не было, команда выглядит следующим образом:

 $ git rebase --onto    

.gitignore — удалить кэшированные файлы

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

 $ git rm -r --cached . && git добавить . && git commit -m "fixing .gitignore"// Вы можете запускать вышеуказанные команды одну за другой с большим контролем/четкостью 
$ git rm -r --cached .
$ git добавить .
$ git commit -m "fixing .gitignore"

Надеюсь, эта шпаргалка поможет разработчикам при использовании Git! 😀

Пожалуйста, прокомментируйте ниже, если я пропустил какие-либо часто используемые команды Git.

Привет!!!

  1. http://www.randallkent.com/2010/04/30/gitignore-not-working/

Памятка по Git для начинающих

Follow @Cloudways

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

Git — это огромная платформа с набором команд, которые охватывают все аспекты функций Git. Начнем сначала с терминологии Git:

Git Terminologies

# Команда Git Описание
1 Чистый репозиторий Репозиторий без рабочего каталога.
2 Филиал Филиал — это активная область разработки в Git. Самая последняя фиксация показывает верхушку ветки.
3 Виноват Описывает последнюю модификацию каждой строки в файле. Показывает редакцию, автора и время.
4 Касса Это относится к процессу, в котором любая данная фиксация выбирается из репозитория, а состояние связанного файла и дерева каталогов воссоздается в рабочем каталоге.
5 Зафиксировать Это единственная точка в истории Git, которая содержит информацию о наборе изменений.
6 Дифф. Diff — это разница в изменениях между двумя фиксациями или сохраненными изменениями.
7 Съемная головка Состояние, в котором извлекается конкретная фиксация вместо ветки.
8 Получить Извлечение означает получение последних изменений в ветке и локальных/удаленных репозиториях.
9 Вилка Разветвляя репозиторий, вы сможете добавлять коммиты и создавать запросы на извлечение.
10 Хэш Уникальный код SHA1 для каждой фиксации
11 Головка Именованная ссылка на фиксацию в конце ветки
12 Индекс Набор файлов с информацией о состоянии.
13 Объединить Чтобы вывести содержимое другой ветки в текущую ветку.
14 Мастер Ветвь разработки по умолчанию в Git
15 Происхождение Основной репозиторий по умолчанию
16 Запрос на вытягивание Предлагает внести изменения в главную ветку
17 Толчок Отправляет новые изменения после их фиксации
18 Хранилище Набор коммитов, веток и тегов для идентификации коммитов.
19 Рабочее дерево Дерево фактически извлеченных файлов

Конфигурация Git

# Команда Git Описание
1 git config – глобальное имя пользователя Установите имя пользователя, которое будет использоваться для всех действий
2 git config – глобальный user.email Укажите адрес электронной почты, который будет использоваться для всех действий.
3 git config – глобальный псевдоним. Создайте ярлык для команды Git.
4 git config – system core.editor Установить текстовый редактор для всех командных действий.
5 git config – глобальный – редактировать Откройте глобальный файл конфигурации в текстовом редакторе для ручного редактирования.
6 git config – глобальный color.ui авто Включить полезное раскрашивание выходных данных командной строки.

Настройка репозитория Git

# Команда Git Описание
1 git инициализация Инициализировать пустой репозиторий Git в текущем проекте.
2 клон git (URL-адрес репозитория) Клонируйте репозиторий с GitHub в папку проекта.
3 git clone (URL-адрес репозитория) (папка) Клонировать репозиторий в определенную папку.
4 git удаленное добавление источника
https://github.com/username/(repo_name).git
Создайте удаленное репо, указывающее на существующий репозиторий GitHub.
5 git удаленный Показывает имена удаленных репозиториев.
6 git удаленный -v Показывает имя и URL-адрес удаленных репозиториев.
7 git remote rm (имя удаленного репо) Удаляет удаленный репозиторий.
8 git удаленный набор URL-адресов (URL-адрес git) Изменяет URL-адрес репозитория.
9 git выборка Получить последние изменения из источника, но не объединять их.
10 git тянуть Получите последние изменения из источника и объедините их.

Изменения локального файла
# Команда Git Описание
1 git добавить (имя файла) Добавить текущие изменения в файл для подготовки.
2 git добавить . Добавить все изменения каталога в staging (без удаления файлов).
3 git добавить -A Добавить все новые, измененные и удаленные файлы в промежуточную среду.
4 git rm (имя_файла) Удаляет файл и отменяет его отслеживание (прекращение отслеживания).
5 git rm – кэшированный (имя_файла) Отменяет отслеживание текущего файла.
6 git mv  (имя_файла) (имя_нового_файла) Изменяет имя файла и подготавливает его к фиксации.
7 git checkout <имя удаленного файла> Восстанавливает удаленный файл и подготавливает его к фиксации
8 статус git Показывает состояние измененных файлов.
9 git ls-files –другое –игнорируется –exclude-standard Показывает список всех игнорируемых файлов.
10 git разница Показывает неустановленные изменения в индексе и рабочем каталоге.
11 git diff — поэтапно Показывает различия файлов между промежуточной и последней версией файла.
12 git diff (имя_файла) Показывает изменения в одном файле по сравнению с последней фиксацией.

Объявление коммитов

# Команда Git Описание
1 git commit -m «(сообщение)» Фиксирует изменения с помощью пользовательского сообщения.
2 git commit -am «(сообщение)» Добавляет все изменения в промежуточную среду и фиксирует их с помощью специального сообщения.
3 проверка git Переключиться на указанный коммит.
4 Гит-шоу Выводит метаданные и изменения содержимого указанной фиксации.
5 git reset – жесткий Отменить всю историю и вернуться к данной фиксации.
6 git reset — жесткая голова Отменяет все локальные изменения в рабочем каталоге.
7 журнал git Показывает историю изменений.
8 журнал git -p Показывает полное отображение каждой фиксации.
9 журнал git -oneline Показывает список коммитов с простым сообщением.
10 git log – следовать (имя_файла) Список истории для текущего файла.
11 git обвинять (имя_файла) Показывает все изменения вместе с именем пользователя.
12 git тайник Временно сохраняет все измененные отслеживаемые файлы.
13 git stash pop Восстанавливает последние сохраненные файлы.
14 список тайников git Список всех наборов изменений тайника.
15 git stash применить Применить последнее спрятанное содержимое.
16 git stash drop Удалить последние спрятанные файлы
17 git stash применить (идентификатор тайника) Повторно применить определенное содержимое тайника по идентификатору.
18 git stash drop (stash_id) Удалить определенное содержимое тайника по идентификатору.
19 git push Отправка изменений в Origin.
16 источник git push (имя_ветки) Переместить ветку в Origin.
17 Git push -f источник (название ветки) Принудительно отправляет изменения в Origin.
18 git-тег (имя_тега) Определите тег для версии.
19 git push Отправка изменений в Origin.

Ответвления

# Команда Git Описание
1 ветка git Показывает список всех ветвей.
2 ветка git Создает новую ветвь.
3 ветка git -m Переименовывает ветвь.
4 ветка git -a Список всех филиалов, локальных и удаленных.
5 git checkout -b Создает ветку и переключается на нее.
6 проверка git Переключиться на указанную ветку.
7 git checkout -b происхождение/ Получить удаленную ветвь из источника в локальный каталог.
8 ветка git -d Удалить указанную ветвь.
9 git слияние Объединить текущую ветвь с мастером (сначала извлекать из мастера)
10 git перебазировать Принимает все изменения ветки и переформулирует другие.
11 git перебазировать Перебазируйте текущую ветвь на базу. Base может быть идентификатором фиксации или именем ветки.
12 git fetch удаленный Выбирает указанную ветвь из репозитория.
13 git разн.. Показывает различия между двумя ветвями.
14 git pull – перебазировать Извлекает удаленную копию текущей ветки и перемещает ее в локальную копию.
15 git push — все Передайте все локальные ветки в указанный удаленный репозиторий.

Вы также можете скачать приведенную выше шпаргалку в формате PDF, нажав кнопку загрузки.

Заключение

Команды Git охватывают весь спектр функций Git. Важно отметить, что невозможно запомнить весь набор команд Git. Более простой способ — использовать эту шпаргалка Git при работе над сложными проектами.