Updated Russian translations (#187)

This commit is contained in:
Artem Buslov 2017-12-23 18:50:23 +03:00 committed by Richard Littauer
parent 7dc4eedb17
commit 84322067fe
1 changed files with 199 additions and 64 deletions

View File

@ -1,11 +1,11 @@
# Правила полета на git
# Правила полета на Git
🌍
*[English](README.md) ∙ [Русский](README_ru.md) ∙ [简体中文](README_zh-cn.md)*
*[English](README.md) ∙ [Русский](README_ru.md) ∙ [简体中文](README_zh-CN.md)*
#### Что это за "правила полета" такие?
Есть [инструкции для астронавтов](http://www.jsc.nasa.gov/news/columbia/fr_generic.pdf) (а здесь подобное руководство для пользователей git) о том, как быть, если что-то пошло не так.
Есть [инструкции для астронавтов](https://www.jsc.nasa.gov/news/columbia/fr_generic.pdf) (а здесь подобное руководство для пользователей Git) о том, как быть, если что-то пошло не так.
> *Полетные правила* - это с большим трудом полученный запас знаний, записанный в форме инструкций, в которых указан последовательный порядок действий в разных ситуациях и сказано, почему нужно делать именно так. По сути это крайне подробный, стандартный план действий в ситуациях, развивающихся по прописанным сценариям. [...]
@ -17,7 +17,7 @@
Для наглядности во всех примерах в этом документе используется измененное приглашение командной строки, чтобы показать текущую ветку и есть ли подготовленные изменения. Ветка заключена в кавычки, а символ `*` после ветки означает подготовленные изменения.
[![Подключайтесь к чату https://gitter.im/k88hudson/git-flight-rules](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/k88hudson/git-flight-rules?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Заходите в чат https://gitter.im/k88hudson/git-flight-rules](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/k88hudson/git-flight-rules?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Содержание** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
@ -26,7 +26,7 @@
- [Что я только что сохранил?](#%D0%A7%D1%82%D0%BE-%D1%8F-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-%D1%87%D1%82%D0%BE-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB)
- [Я неправильно написал сообщение коммита](#%D0%AF-%D0%BD%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BB-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82%D0%B0)
- [Я сделал коммит с неправильным именем автора и адресом электронной почты](#%D0%AF-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D0%BB-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82-%D1%81-%D0%BD%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BC-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B0-%D0%B8-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%BC-%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BE%D1%87%D1%82%D1%8B)
- [Я хочу удалить файл из коммита](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D0%B8%D0%B7-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82%D0%B0)
- [Я хочу удалить файл из предыдущего коммита](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D0%B8%D0%B7-%D0%BF%D1%80%D0%B5%D0%B4%D1%8B%D0%B4%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82%D0%B0)
- [Я хочу удалить последний коммит](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82)
- [Удалить произвольный коммит](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82)
- [Я пытаюсь опубликовать исправленный коммит, но получаю сообщение об ошибке](#%D0%AF-%D0%BF%D1%8B%D1%82%D0%B0%D1%8E%D1%81%D1%8C-%D0%BE%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%BA%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82-%D0%BD%D0%BE-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D1%8E-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B1-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B5)
@ -45,6 +45,7 @@
- [Я хочу убрать все неподготовленные локальные изменения](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%83%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D0%BD%D0%B5%D0%BF%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F)
- [Я хочу удалить все неотслеживаемые файлы](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D0%BD%D0%B5%D0%BE%D1%82%D1%81%D0%BB%D0%B5%D0%B6%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B)
- [Ветки](#%D0%92%D0%B5%D1%82%D0%BA%D0%B8)
- [Я хочу получить список всех веток](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C-%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%B2%D1%81%D0%B5%D1%85-%D0%B2%D0%B5%D1%82%D0%BE%D0%BA)
- [Создать ветку на определенном коммите](#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%B2%D0%B5%D1%82%D0%BA%D1%83-%D0%BD%D0%B0-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82%D0%B5)
- [Я стянул изменения (pull) из неправильной ветки или в неправильную ветку](#%D0%AF-%D1%81%D1%82%D1%8F%D0%BD%D1%83%D0%BB-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-pull-%D0%B8%D0%B7-%D0%BD%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9-%D0%B2%D0%B5%D1%82%D0%BA%D0%B8-%D0%B8%D0%BB%D0%B8-%D0%B2-%D0%BD%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D0%B2%D0%B5%D1%82%D0%BA%D1%83)
- [Я хочу отменить локальные коммиты, чтобы моя ветка стала такой же как на сервере](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BE%D1%82%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82%D1%8B-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-%D0%BC%D0%BE%D1%8F-%D0%B2%D0%B5%D1%82%D0%BA%D0%B0-%D1%81%D1%82%D0%B0%D0%BB%D0%B0-%D1%82%D0%B0%D0%BA%D0%BE%D0%B9-%D0%B6%D0%B5-%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5)
@ -57,6 +58,8 @@
- [Я хочу переименовать ветку](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BF%D0%B5%D1%80%D0%B5%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B2%D0%B5%D1%82%D0%BA%D1%83)
- [Я хочу перейти на удаленную ветку, над которой работает кто-то еще](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BF%D0%B5%D1%80%D0%B5%D0%B9%D1%82%D0%B8-%D0%BD%D0%B0-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B2%D0%B5%D1%82%D0%BA%D1%83-%D0%BD%D0%B0%D0%B4-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D0%BE%D0%B9-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82-%D0%BA%D1%82%D0%BE-%D1%82%D0%BE-%D0%B5%D1%89%D0%B5)
- [Я хочу создать новую удаленную ветку из текущей локальной](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C-%D0%BD%D0%BE%D0%B2%D1%83%D1%8E-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%B2%D0%B5%D1%82%D0%BA%D1%83-%D0%B8%D0%B7-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B9-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9)
- [Я хочу настроить локальную ветку на отслеживание удаленной (upstream) ветки](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%83%D1%8E-%D0%B2%D0%B5%D1%82%D0%BA%D1%83-%D0%BD%D0%B0-%D0%BE%D1%82%D1%81%D0%BB%D0%B5%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-upstream-%D0%B2%D0%B5%D1%82%D0%BA%D0%B8)
- [Я хочу настроить HEAD на отслеживание основной удаленной ветки](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-head-%D0%BD%D0%B0-%D0%BE%D1%82%D1%81%D0%BB%D0%B5%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%B2%D0%B5%D1%82%D0%BA%D0%B8)
- [Перебазирование (rebase) и слияние (merge)](#%D0%9F%D0%B5%D1%80%D0%B5%D0%B1%D0%B0%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-rebase-%D0%B8-%D1%81%D0%BB%D0%B8%D1%8F%D0%BD%D0%B8%D0%B5-merge)
- [Я хочу отменить перебазирование/слияние](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BE%D1%82%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%B0%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D0%BB%D0%B8%D1%8F%D0%BD%D0%B8%D0%B5)
- [Я сделал перебазирование, но я не хочу делать принудительный push](#%D0%AF-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D0%BB-%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%B0%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BD%D0%BE-%D1%8F-%D0%BD%D0%B5-%D1%85%D0%BE%D1%87%D1%83-%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D0%BF%D1%80%D0%B8%D0%BD%D1%83%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-push)
@ -74,19 +77,25 @@
- [Отложить заданные файлы](#%D0%9E%D1%82%D0%BB%D0%BE%D0%B6%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B)
- [Отложить с сообщением](#%D0%9E%D1%82%D0%BB%D0%BE%D0%B6%D0%B8%D1%82%D1%8C-%D1%81-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC)
- [Применить заданный stash из списка](#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9-stash-%D0%B8%D0%B7-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0)
- [Разное](#%D0%A0%D0%B0%D0%B7%D0%BD%D0%BE%D0%B5)
- [Поиск](#%D0%9F%D0%BE%D0%B8%D1%81%D0%BA)
- [Я хочу найти строку в коммитах](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BD%D0%B0%D0%B9%D1%82%D0%B8-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%BC%D0%B8%D1%82%D0%B0%D1%85)
- [Я хочу искать по автору или сохранившему изменения (committer)](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%B8%D1%81%D0%BA%D0%B0%D1%82%D1%8C-%D0%BF%D0%BE-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D1%83-%D0%B8%D0%BB%D0%B8-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%B2%D1%88%D0%B5%D0%BC%D1%83-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-committer)
- [Субмодули](#%D0%A1%D1%83%D0%B1%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B8)
- [Клонировать все субмодули](#%D0%9A%D0%BB%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D1%81%D1%83%D0%B1%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B8)
- [Удалить субмодуль](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%81%D1%83%D0%B1%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C)
- [Разное](#%D0%A0%D0%B0%D0%B7%D0%BD%D0%BE%D0%B5)
- [Восстановить удаленный файл](#%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B0%D0%B9%D0%BB)
- [Удалить метку](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%BC%D0%B5%D1%82%D0%BA%D1%83)
- [Восстановить удаленную метку](#%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%83%D1%8E-%D0%BC%D0%B5%D1%82%D0%BA%D1%83)
- [Удаленный патч](#%D0%A3%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D0%BF%D0%B0%D1%82%D1%87)
- [Экспорт репозитория в Zip-файл](#%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8F-%D0%B2-zip-%D1%84%D0%B0%D0%B9%D0%BB)
- [Отслеживание файлов](#%D0%9E%D1%82%D1%81%D0%BB%D0%B5%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2)
- [Я хочу изменить регистр в имени файла, не меняя содержимое файла.](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80-%D0%B2-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-%D0%BD%D0%B5-%D0%BC%D0%B5%D0%BD%D1%8F%D1%8F-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0)
- [Я хочу переписать локальные файлы при выполнении git pull.](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%BF%D1%80%D0%B8-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8-git-pull)
- [Я хочу изменить регистр в имени файла, не меняя содержимое файла](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80-%D0%B2-%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-%D0%BD%D0%B5-%D0%BC%D0%B5%D0%BD%D1%8F%D1%8F-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0)
- [Я хочу переписать локальные файлы при выполнении git pull](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%BF%D1%80%D0%B8-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8-git-pull)
- [Я хочу удалить файл из git, но оставить сам файл](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D0%B8%D0%B7-git-%D0%BD%D0%BE-%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%81%D0%B0%D0%BC-%D1%84%D0%B0%D0%B9%D0%BB)
- [Я хочу откатить файл до заданной ревизии](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%BE%D1%82%D0%BA%D0%B0%D1%82%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D0%B4%D0%BE-%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9-%D1%80%D0%B5%D0%B2%D0%B8%D0%B7%D0%B8%D0%B8)
- [Конфигурация](#%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8F)
- [Я хочу добавить псевдонимы для некоторых команд git](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%BD%D0%B8%D0%BC%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B5%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D1%85-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4-git)
- [Я хочу добавить псевдонимы для некоторых команд Git](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%BD%D0%B8%D0%BC%D1%8B-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B5%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D1%85-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4-git)
- [Я хочу добавить в свой репозиторий пустую папку](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B2-%D1%81%D0%B2%D0%BE%D0%B9-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9-%D0%BF%D1%83%D1%81%D1%82%D1%83%D1%8E-%D0%BF%D0%B0%D0%BF%D0%BA%D1%83)
- [Я хочу сохранить имя пользователя и пароль для репозитория](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C-%D0%B8%D0%BC%D1%8F-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%B8-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D1%8F)
- [Я хочу, чтобы Git игнорировал изменения разрешений и прав файлов](#%D0%AF-%D1%85%D0%BE%D1%87%D1%83-%D1%87%D1%82%D0%BE%D0%B1%D1%8B-git-%D0%B8%D0%B3%D0%BD%D0%BE%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BB-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B9-%D0%B8-%D0%BF%D1%80%D0%B0%D0%B2-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2)
@ -111,12 +120,18 @@
(master)$ git show
```
или
Или
```sh
$ git log -n1 -p
```
Если Вы хотите просмотреть файл из определенного коммита, Вы можете сделать так (`<commitid>` - нужный Вам коммит):
```sh
$ git show <commitid>:filename
```
<a name="#i-wrote-the-wrong-thing-in-a-commit-message"></a>
### Я неправильно написал сообщение коммита
@ -139,16 +154,22 @@ $ git commit --amend -m 'xxxxxxx'
Если это один коммит, то исправьте его с помощью `amend`
```sh
$ git commit --amend --author "New Authorname <authoremail@mydomain.com>"
$ git commit --amend --no-edit --author "New Authorname <authoremail@mydomain.com>"
```
Если Вам нужно изменить всю историю, то смотрите документацию для 'git filter-branch'.
Или Вы можете сконфигурировать глобальные настройки автора `git config --global author.(name|email)`, а затем выполнить
```sh
$ git commit --amend --reset-author --no-edit
```
Если Вам нужно изменить всю историю, то смотрите документацию для `git filter-branch`.
<a href="#i-want-to-remove-a-file-from-a-commit"></a>
### Я хочу удалить файл из коммита
<a href="#i-want-to-remove-a-file-from-the-previous-commit"></a>
### Я хочу удалить файл из предыдущего коммита
Чтобы удалить файл из коммита, сделайте следующее:
Чтобы удалить изменения файла из предыдущего коммита, сделайте следующее:
```sh
$ git checkout HEAD^ myfile
@ -156,7 +177,7 @@ $ git add myfile
$ git commit --amend --no-edit
```
Когда в коммит был добавлен новый файл и вы хотите его удалить (только из Git), выполните:
Когда в коммит был добавлен новый файл и Вы хотите его удалить (только из Git), выполните:
```sh
$ git rm --cached myfile
@ -168,7 +189,7 @@ $ git commit --amend --no-edit
<a name="delete-pushed-commit"></a>
### Я хочу удалить последний коммит
Если хотите удалить опубликованные коммиты, воспользуйтесь приведенным ниже приемом. Однако, это бесповоротно изменит у Вас историю git, а также испортит историю git у любого, что уже стянул (pull) изменения из репозитория. Короче говоря, никогда так не делайте, если не уверены.
Если хотите удалить опубликованные коммиты, воспользуйтесь приведенным ниже приемом. Однако, это бесповоротно изменит у Вас историю Git, а также испортит историю Git у любого, что уже стянул (pull) изменения из репозитория. Короче говоря, никогда так не делайте, если не уверены.
```sh
$ git reset HEAD^ --hard
@ -222,7 +243,7 @@ hint: See the 'Note about fast-forwards' in 'git push --help' for details.
<a href="undo-git-reset-hard"></a>
### Я случайно сделал жесткий сброс (--hard) и теперь хочу вернуть свои изменения
Если Вы случайно сделали `git reset --hard`, то вы можете вернуть назад коммиты, т.к. git несколько дней хранит все действия в журнале.
Если Вы случайно сделали `git reset --hard`, то вы можете вернуть назад коммиты, т.к. Git несколько дней хранит все действия в журнале.
Замечание: Это относится только если ваша работа была сохранена, т.е. Вы сделали коммит или stash. `git reset --hard` _удалит_ несохраненные изменения, так что пользуйтесь им с осторожностью. (Безопасная опция это `git reset --keep`.)
@ -341,10 +362,10 @@ $ git reset --hard HEAD
Это удалит все локальные неотслеживаемые файлы, так что останутся только отслеживаемые:
```sh
$ git clean -fdx
$ git clean -fd
```
ПРЕДУПРЕЖДЕНИЕ: -x удалит также и игнорируемые файлы!
`-x` удалит также и игнорируемые файлы.
<a href="i-want-to-discard-specific-unstaged-changes"></a>
### Я хочу отменить некоторые неподготовленные изменения
@ -408,6 +429,27 @@ $ git clean -f
```
## Ветки
<a name="i-want-to-list-all-branches"></a>
### Я хочу получить список всех веток
Список локальных веток
```sh
$ git branch
```
Список удаленных веток
```sh
$ git branch -r
```
Список всех веток (локальных и удаленных)
```sh
$ git branch -a
```
<a name="create-branch-from-commit"></a>
### Создать ветку на определенном коммите
```sh
@ -595,12 +637,14 @@ HEAD is now at a13b85e
<a name="delete-stale-local-branches"></a>
### Я хочу удалить локальные ветки, которые были удалены в upstream
Как только Вы слили пулл-реквест на github, Вам предлагают удалить слитую ветку из Вашего форка. Если Вы не планируете продолжать работу в этой ветке, то для поддержания рабочей копии в чистоте Вы можете удалить локальные копии ненужных веток, чтобы не путаться в них.
Как только Вы слили пулл-реквест на GitHub, Вам предлагают удалить слитую ветку из Вашего форка. Если Вы не планируете продолжать работу в этой ветке, то для поддержания рабочей копии в чистоте Вы можете удалить локальные копии ненужных веток, чтобы не путаться в них.
```sh
$ git fetch -p
$ git fetch -p upstream
```
где `upstream` - удаленная ветка, из которой Вы хотите получить изменения.
<a name='restore-a-deleted-branch'></a>
### Я нечаянно удалил мою ветку
@ -669,7 +713,7 @@ HEAD is now at 4e3cd85 foo.txt added
README.md foo.txt
```
Вуаля! Мы вернули наш удаленный файл обратно. Git reflog также бывает полезен, когда перебазирование срабатывает не так, как Вы хотели.
Вуаля! Мы вернули наш удаленный файл обратно. `git reflog` также бывает полезен, когда перебазирование срабатывает не так, как Вы хотели.
<a name="i-want-to-delete-a-branch"></a>
### Я хочу удалить ветку
@ -688,6 +732,12 @@ README.md foo.txt
Чтобы удалить локальную ветку:
```sh
(master)$ git branch -d my-branch
```
Чтобы удалить локальную ветку, которая *не была* слита с отслеживаемой веткой (заданной с помощью `--track` или `--set-upstream`) или с HEAD:
```sh
(master)$ git branch -D my-branch
```
@ -695,13 +745,13 @@ README.md foo.txt
<a name="i-want-to-rename-a-branch"></a>
### Я хочу переименовать ветку
Чтобы переименовать текущую локальную ветку:
Чтобы переименовать текущую (локальную) ветку:
```sh
(master)$ git branch -m new-name
```
Чтобы переименовать другую локальную ветку:
Чтобы переименовать другую (локальную) ветку:
```sh
(master)$ git branch -m old-name new-name
@ -731,28 +781,58 @@ Switched to a new branch 'daves'
<a name="i-want-to-create-a-new-remote-branch-from-current-local-one"></a>
### Я хочу создать новую удаленную ветку из текущей локальной
```sh
$ git config push.default upstream
$ git push -u origin HEAD
$ git push <remote>
```
Если Вы хотите узнать какие еще настройки по-умолчанию может принимать ```git push```, обратитесь к документации на Git https://git-scm.com/docs/git-config#git-config-pushdefault
Если Вы не хотите изменять настройку git, можете использовать:
Если Вы хотите, чтобы текущая локальная ветка отслеживала соответствующую удаленную (upstream) ветку, тогда выполните следующее:
```sh
$ git push -u <remote> HEAD
$ git push -u <remote>
```
В режиме ```upstream``` или в режиме ```simple``` (по-умолчанию в Git 2.0), следующая команда отправит текущую ветку в удаленную ветку, которая была ранее зарегистрирована с помощью -u :
В режиме `upstream` или в режиме `simple` (по-умолчанию в Git 2.0) параметра `push.default`, следующая команда отправит текущую ветку в удаленную ветку, которая была ранее зарегистрирована с помощью -u :
```sh
$ git push
```
Поведение других режимов ```git push``` описано в документации на push.default.
Поведение других режимов `git push` описано в документации на push.default.
<a name="i-want-to-set-a-remote-branch-as-the-upstream-for-a-local-branch"></a>
### Я хочу настроить локальную ветку на отслеживание удаленной (upstream) ветки
Вы можете настроить текущую локальную ветку на отслеживание удаленной (upstream) ветки используя:
```sh
$ git branch --set-upstream-to [remotename]/[branch]
# или для краткости:
$ git branch -u [remotename]/[branch]
```
Для настройки отслеживаемой удаленной ветки на другую локальную ветку:
```sh
$ git branch -u [remotename]/[branch] [local-branch]
```
<a name="i-want-to-set-my-HEAD-to-track-the-default-remote-branch"></a>
### Я хочу настроить HEAD на отслеживание основной удаленной ветки
При просмотре удаленных веток можно увидеть какую удаленную ветку отслеживает HEAD. Может оказаться, что это не та ветка что нужно.
```sh
$ git branch -rr
origin/HEAD -> origin/gh-pages
origin/master
```
Чтобы `origin/HEAD` отслеживала `origin/master`, выполните команду:
```sh
$ git remote set-head origin --auto
origin/HEAD set to master
```
## Перебазирование (rebase) и слияние (merge)
@ -768,7 +848,7 @@ $ git push
<a name="force-push-rebase"></a>
### Я сделал перебазирование, но я не хочу делать принудительный push
К сожалению, вы должны сделать принудительный push, если хотите, чтобы изменения были отражены на удаленной ветке. Это потому что у вас есть перемотанный (fast-forward) коммит и измененная история git. Удаленная ветка не примет изменения, если не сделать принудительный push. Это одна из основных причин, по которым большинство людей основывает свой рабочий процесс на слиянии вместо перебазирования - большие команды могут столкнуться с проблемами, если разработчики будут делать принудительный `push`. Используйте это с осторожностью. Безопасный способ использовать перебазирование - это не отражать Ваши изменения напрямую на удаленную ветку, а вместо этого делать следующее:
К сожалению, вы должны сделать принудительный push, если хотите, чтобы изменения были отражены на удаленной ветке. Это потому что у вас изменена история. Удаленная ветка не примет изменения, если не сделать принудительный push. Это одна из основных причин, по которым большинство людей основывает свой рабочий процесс на слиянии вместо перебазирования - большие команды могут столкнуться с проблемами, если разработчики будут делать принудительный `push`. Используйте это с осторожностью. Безопасный способ использовать перебазирование - это не отражать Ваши изменения напрямую на удаленную ветку, а вместо этого делать следующее:
```sh
(master)$ git checkout my-branch
@ -777,7 +857,7 @@ $ git push
(master)$ git merge --ff-only my-branch
```
Чтобы узнать больше, см. [эту SO ветку](http://stackoverflow.com/questions/11058312/how-can-i-use-git-rebase-without-requiring-a-forced-push).
Чтобы узнать больше, см. [эту SO ветку](https://stackoverflow.com/questions/11058312/how-can-i-use-git-rebase-without-requiring-a-forced-push).
<a name="interactive-rebase"></a>
### Я хочу объединить коммиты
@ -861,7 +941,7 @@ Newer, awesomer features
# You are currently editing a commit while rebasing branch 'master' on '8074d12'.
#
# Changes to be committed:
# modified: README.md
# modified: README.md
#
```
@ -905,7 +985,7 @@ Newer, awesomer features
(my-branch)$ git merge --abort
```
Эта команда доступна начиная с версии git >= 1.7.4
Эта команда доступна начиная с версии Git >= 1.7.4
<a name="check-if-all-commits-on-a-branch-are-merged"></a>
### Проверить, что все коммиты ветви были слиты
@ -973,7 +1053,7 @@ Changes not staged for commit:
```
- Во время *слияния* используйте `--ours` для сохранения изменений из локальной ветки или `--theirs` для сохранения изменений из другой ветки.
- Во время *перебазирования* используйте `--theirs` для сохранения изменений из локальной ветки или `--ours` для сохранения изменений из другой ветки. Для объяснения такого обмена см. [эту заметку в документации git](https://git-scm.com/docs/git-rebase#git-rebase---merge).
- Во время *перебазирования* используйте `--theirs` для сохранения изменений из локальной ветки или `--ours` для сохранения изменений из другой ветки. Для объяснения такого обмена см. [эту заметку в документации Git](https://git-scm.com/docs/git-rebase#git-rebase---merge).
Если слияние более сложное, можете воспользоваться визуальным редактором различий:
@ -995,6 +1075,7 @@ Changes not staged for commit:
```sh
(my-branch)$ git rebase --abort
```
<a name="stashing"></a>
## Отложенные изменения (stash)
@ -1052,9 +1133,39 @@ $ git stash apply "stash@{n}"
Здесь 'n' показывает позицию stash-а в стеке. Верхний stash имеет позицию 0.
<a name="finding"></a>
## Поиск
<a name="miscellaneous-objects"></a>
## Разное
<a name="i-want-to-find-a-string-in-any-commit"></a>
### Я хочу найти строку в коммитах
Чтобы найти коммиты с заданной строкой, используйте следующее:
```sh
$ git log -S "string to find"
```
Общие параметры:
* `--source` показывает ссылки, от которых можно добраться до каждого коммита.
* `--all` ищет во всех ветках.
* `--reverse` выводит коммиты в обратном порядке, это значит, что вверху будет первый коммит, в котором сделано это изменение.
<a name="i-want-to-find-by-author-committer"></a>
### Я хочу искать по автору или сохранившему изменения (committer)
Найти все коммиты по автору или сохранившему изменения:
```sh
$ git log --author=<name or email>
$ git log --committer=<name or email>
```
Не забывайте, что автор и сохранивший изменения - это не всегда один и тот же человек. `--author` - это тот, кто написал код, а `--committer` - тот, кто сохранил код, написанный автором.
## Субмодули
<a name="clone-submodules"></a>
### Клонировать все субмодули
@ -1081,6 +1192,23 @@ $ git rm --cached submodulename
$ rm -rf .git/modules/submodulename
```
<a name="miscellaneous-objects"></a>
## Разное
### Восстановить удаленный файл
Сначала нужно найти последний коммит, где файл еще существует:
```sh
$ git rev-list -n 1 HEAD -- filename
```
Затем взять версию файла из коммита непосредственно перед удалением:
```
git checkout deletingcommitid^ -- filename
```
<a name="delete-tag"></a>
### Удалить метку
@ -1098,7 +1226,7 @@ $ git push <remote> :refs/tags/<tag_name>
$ git fsck --unreachable | grep tag
```
Запомните для себя хэш метки. Затем восстановите удаленную метку, используя команду git [update-ref](http://git-scm.com/docs/git-update-ref):
Запомните для себя хэш метки. Затем восстановите удаленную метку, используя команду [`git update-ref`](https://git-scm.com/docs/git-update-ref):
```sh
$ git update-ref refs/tags/<tag_name> <hash>
@ -1117,17 +1245,23 @@ From github.com:foo/bar
* [new ref] refs/pull/1/head -> pr_1
```
### Экспорт репозитория в Zip-файл
```sh
$ git archive --format zip --output /full/path/to/zipfile.zip master
```
## Отслеживание файлов
<a href="i-want-to-change-a-file-names-capitalization-without-changing-the-contents-of-the-file"></a>
### Я хочу изменить регистр в имени файла, не меняя содержимое файла.
### Я хочу изменить регистр в имени файла, не меняя содержимое файла
```sh
(master)$ git mv --force myfile MyFile
```
<a href="i-want-to-overwrite-local-files-when-doing-a-git-pull"></a>
### Я хочу переписать локальные файлы при выполнении git pull.
### Я хочу переписать локальные файлы при выполнении git pull
```sh
(master)$ git fetch --all
@ -1159,9 +1293,9 @@ From github.com:foo/bar
## Конфигурация
<a name="adding-command-aliases"></a>
### Я хочу добавить псевдонимы для некоторых команд git
### Я хочу добавить псевдонимы для некоторых команд Git
В OS X и Linux Ваш файл конфигурации git хранится в ```~/.gitconfig```. В качестве примера я добавил некоторые псевдонимы, которые сам использую для краткости (а также некоторые из моих типичных опечаток), в раздел ```[alias]``` как показано ниже:
В OS X и Linux Ваш файл конфигурации Git хранится в ```~/.gitconfig```. В качестве примера я добавил некоторые псевдонимы, которые сам использую для краткости (а также некоторые из моих типичных опечаток), в раздел ```[alias]``` как показано ниже:
```vim
[alias]
@ -1257,7 +1391,7 @@ reflog выше показывает переход с ветки master на в
$ git reset --hard 0254ea7
```
С помощью git reset можно вернуть ветку master обратно на коммит, на котором она была прежде. Это обеспечивает безопасность при случайном изменении истории.
С помощью `git reset` можно вернуть ветку master обратно на коммит, на котором она была прежде. Это обеспечивает безопасность при случайном изменении истории.
(взято из [Источник](https://www.atlassian.com/git/tutorials/rewriting-history/git-reflog)).
@ -1266,36 +1400,37 @@ $ git reset --hard 0254ea7
## Книги
* [Pro Git](https://git-scm.com/book/en/v2) - великолепная книга Скотта Чакона
* [Git Internals](https://github.com/pluralsight/git-internals-pdf) - еще одна великолепная книга Скотта Чакона
* [Pro Git](https://git-scm.com/book/en/v2) - великолепная книга Скотта Чакона и Бена Страуба про Git
* [Git Internals](https://github.com/pluralsight/git-internals-pdf) - еще одна великолепная книга Скотта Чакона, посвященная Git
## Учебники
* [Atlassian's Git tutorial](https://www.atlassian.com/git/tutorials) Получите Git сразу с учебниками от начального до продвинутого уровня.
* [Изучаем ветвление в Git](https://learngitbranching.js.org/) Интерактивный веб-учебник по ветвлению/слиянию/перебазированию
* [Getting solid at Git rebase vs. merge](https://medium.com/@porteneuve/getting-solid-at-git-rebase-vs-merge-4fa1a48c53aa)
* [git-workflow](https://github.com/asmeurer/git-workflow) - Руководство от [Aaron Meurer](https://github.com/asmeurer) по использованию git в совместной разработке проектов с открытым исходным кодом
* [GitHub как рабочий процесс](http://hugogiraudel.com/2015/08/13/github-as-a-workflow/) - Интересный подход к использованию GitHub в качестве рабочего процесса, в частности с пустыми пулл-реквестами
* [Githug](https://github.com/Gazler/githug) - Игра для изучения более общих рабочих процессов git
* [git-workflow](https://github.com/asmeurer/git-workflow) - Руководство от [Aaron Meurer](https://github.com/asmeurer) по использованию Git в совместной разработке проектов с открытым исходным кодом
* [GitHub как рабочий процесс](https://hugogiraudel.com/2015/08/13/github-as-a-workflow/) - Интересный подход к использованию GitHub в качестве рабочего процесса, в частности с пустыми пулл-реквестами
* [Githug](https://github.com/Gazler/githug) - Игра для изучения более общих рабочих процессов Git
## Скрипты и инструменты
* [firstaidgit.io](http://firstaidgit.io/) Выборка наиболее частых вопросов и ответов по git c поиском
* [git-extra-commands](https://github.com/unixorn/git-extra-commands) - сборник полезных дополнительных скриптов для git
* [firstaidgit.io](http://firstaidgit.io/) Выборка наиболее частых вопросов и ответов по Git c поиском
* [git-extra-commands](https://github.com/unixorn/git-extra-commands) - сборник полезных дополнительных скриптов для Git
* [git-extras](https://github.com/tj/git-extras) - GIT utilities -- статистика репозитория, REPL, генерация журнала изменений, статистика по авторам изменений и многое другое
* [git-fire](https://github.com/qw3rtman/git-fire) - git-fire - это плагин для Git, который предупреждает при потенциально опасных действиях, таких как: добавление всех файлов из текущей папки, создание коммита и публикация измений в новую ветку (для предотвращения конфликтов при слиянии).
* [git-tips](https://github.com/git-tips/tips) - Краткие советы по git
* [git-tips](https://github.com/git-tips/tips) - Краткие советы по Git
* [git-town](https://github.com/Originate/git-town) - Общая высокоуровневая поддержка рабочего процесса Git! http://www.git-town.com
## Графические клиенты
* [GitKraken](https://www.gitkraken.com/) - роскошный Git-клиент для Windows, Mac и Linux
* [git-cola](https://git-cola.github.io/) - еще один git-клиент для Windows и OS X
* [GitUp](https://github.com/git-up/GitUp) - новый графический клиент, имеющий весьма своеобразные методы работы со сложностями git
* [gitx-dev](https://rowanj.github.io/gitx/) - еще один графический git-клиент для OS X
* [Source Tree](https://www.sourcetreeapp.com/) - свободный графический git-клиент для Windows и OS X
* [Tower](http://www.git-tower.com/) - графический git-клиент для OS X (платный)
* [git-cola](https://git-cola.github.io/) - еще один Git-клиент для Windows и OS X
* [GitUp](https://github.com/git-up/GitUp) - новый графический клиент, имеющий весьма своеобразные методы работы со сложностями Git
* [gitx-dev](https://rowanj.github.io/gitx/) - еще один графический Git-клиент для OS X
* [Sourcetree](https://www.sourcetreeapp.com/) - Простота и мощь в красивом и свободном графическом Git-клиенте. Для Windows и Mac.
* [Tower](https://www.git-tower.com/) - графический Git-клиент для OS X (платный)
* [tig](https://jonas.github.io/tig/) - консольный текстовый интерфейс для Git
* [Magit](https://magit.vc/) - интерфейс для git, реализованный в виде модуля Emacs.
* [Magit](https://magit.vc/) - интерфейс для Git, реализованный в виде модуля Emacs.
* [GitExtensions](https://github.com/gitextensions/gitextensions) - расширение оболочки, плагин для Visual Studio 2010-2015 и автономный инструмент для управления репозиториями Git.
* [Fork](https://git-fork.com/) - быстрый и дружелюбный git-клиент для Mac (бета)
* [gmaster](https://gmaster.io/) - git-клиент для Windows с трехсторонним слиянием, обнаружением рефакторинга, семантическим сравнением и слиянием (бета)
* [gitk](https://git-scm.com/docs/gitk) - git-клиент под Linux для просмотра состояния репозитория.
* [Fork](https://git-fork.com/) - быстрый и дружелюбный Git-клиент для Mac (бета)
* [gmaster](https://gmaster.io/) - Git-клиент для Windows с трехсторонним слиянием, обнаружением рефакторинга, семантическим сравнением и слиянием (бета)
* [gitk](https://git-scm.com/docs/gitk) - Git-клиент под Linux для просмотра состояния репозитория.