From 84322067fe6fbb6ec481a23a5458f381d96ceb20 Mon Sep 17 00:00:00 2001 From: Artem Buslov Date: Sat, 23 Dec 2017 18:50:23 +0300 Subject: [PATCH] Updated Russian translations (#187) --- README_ru.md | 263 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 199 insertions(+), 64 deletions(-) diff --git a/README_ru.md b/README_ru.md index 0be92ac..cd60267 100644 --- a/README_ru.md +++ b/README_ru.md @@ -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) **Содержание** *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 ``` +Если Вы хотите просмотреть файл из определенного коммита, Вы можете сделать так (`` - нужный Вам коммит): + +```sh +$ git show :filename +``` + ### Я неправильно написал сообщение коммита @@ -139,16 +154,22 @@ $ git commit --amend -m 'xxxxxxx' Если это один коммит, то исправьте его с помощью `amend` ```sh -$ git commit --amend --author "New Authorname " +$ git commit --amend --no-edit --author "New Authorname " ``` -Если Вам нужно изменить всю историю, то смотрите документацию для 'git filter-branch'. +Или Вы можете сконфигурировать глобальные настройки автора `git config --global author.(name|email)`, а затем выполнить + +```sh +$ git commit --amend --reset-author --no-edit +``` + +Если Вам нужно изменить всю историю, то смотрите документацию для `git filter-branch`. - -### Я хочу удалить файл из коммита + +### Я хочу удалить файл из предыдущего коммита -Чтобы удалить файл из коммита, сделайте следующее: +Чтобы удалить изменения файла из предыдущего коммита, сделайте следующее: ```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 ### Я хочу удалить последний коммит -Если хотите удалить опубликованные коммиты, воспользуйтесь приведенным ниже приемом. Однако, это бесповоротно изменит у Вас историю 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. ### Я случайно сделал жесткий сброс (--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` удалит также и игнорируемые файлы. ### Я хочу отменить некоторые неподготовленные изменения @@ -408,6 +429,27 @@ $ git clean -f ``` ## Ветки + +### Я хочу получить список всех веток + +Список локальных веток + +```sh +$ git branch +``` + +Список удаленных веток + +```sh +$ git branch -r +``` + +Список всех веток (локальных и удаленных) + +```sh +$ git branch -a +``` + ### Создать ветку на определенном коммите ```sh @@ -595,12 +637,14 @@ HEAD is now at a13b85e ### Я хочу удалить локальные ветки, которые были удалены в upstream -Как только Вы слили пулл-реквест на github, Вам предлагают удалить слитую ветку из Вашего форка. Если Вы не планируете продолжать работу в этой ветке, то для поддержания рабочей копии в чистоте Вы можете удалить локальные копии ненужных веток, чтобы не путаться в них. +Как только Вы слили пулл-реквест на GitHub, Вам предлагают удалить слитую ветку из Вашего форка. Если Вы не планируете продолжать работу в этой ветке, то для поддержания рабочей копии в чистоте Вы можете удалить локальные копии ненужных веток, чтобы не путаться в них. ```sh -$ git fetch -p +$ git fetch -p upstream ``` +где `upstream` - удаленная ветка, из которой Вы хотите получить изменения. + ### Я нечаянно удалил мою ветку @@ -669,7 +713,7 @@ HEAD is now at 4e3cd85 foo.txt added README.md foo.txt ``` -Вуаля! Мы вернули наш удаленный файл обратно. Git reflog также бывает полезен, когда перебазирование срабатывает не так, как Вы хотели. +Вуаля! Мы вернули наш удаленный файл обратно. `git reflog` также бывает полезен, когда перебазирование срабатывает не так, как Вы хотели. ### Я хочу удалить ветку @@ -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 ### Я хочу переименовать ветку -Чтобы переименовать текущую локальную ветку: +Чтобы переименовать текущую (локальную) ветку: ```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' ### Я хочу создать новую удаленную ветку из текущей локальной - ```sh -$ git config push.default upstream -$ git push -u origin HEAD +$ git push ``` -Если Вы хотите узнать какие еще настройки по-умолчанию может принимать ```git push```, обратитесь к документации на Git https://git-scm.com/docs/git-config#git-config-pushdefault - -Если Вы не хотите изменять настройку git, можете использовать: +Если Вы хотите, чтобы текущая локальная ветка отслеживала соответствующую удаленную (upstream) ветку, тогда выполните следующее: ```sh -$ git push -u HEAD +$ git push -u ``` -В режиме ```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. + +### Я хочу настроить локальную ветку на отслеживание удаленной (upstream) ветки + +Вы можете настроить текущую локальную ветку на отслеживание удаленной (upstream) ветки используя: + +```sh +$ git branch --set-upstream-to [remotename]/[branch] +# или для краткости: +$ git branch -u [remotename]/[branch] +``` + +Для настройки отслеживаемой удаленной ветки на другую локальную ветку: + +```sh +$ git branch -u [remotename]/[branch] [local-branch] +``` + + +### Я хочу настроить 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 ### Я сделал перебазирование, но я не хочу делать принудительный 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). ### Я хочу объединить коммиты @@ -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 ### Проверить, что все коммиты ветви были слиты @@ -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 ``` + ## Отложенные изменения (stash) @@ -1052,9 +1133,39 @@ $ git stash apply "stash@{n}" Здесь 'n' показывает позицию stash-а в стеке. Верхний stash имеет позицию 0. + +## Поиск - -## Разное + +### Я хочу найти строку в коммитах + +Чтобы найти коммиты с заданной строкой, используйте следующее: + +```sh +$ git log -S "string to find" +``` + +Общие параметры: + +* `--source` показывает ссылки, от которых можно добраться до каждого коммита. + +* `--all` ищет во всех ветках. + +* `--reverse` выводит коммиты в обратном порядке, это значит, что вверху будет первый коммит, в котором сделано это изменение. + + +### Я хочу искать по автору или сохранившему изменения (committer) + +Найти все коммиты по автору или сохранившему изменения: + +```sh +$ git log --author= +$ git log --committer= +``` + +Не забывайте, что автор и сохранивший изменения - это не всегда один и тот же человек. `--author` - это тот, кто написал код, а `--committer` - тот, кто сохранил код, написанный автором. + +## Субмодули ### Клонировать все субмодули @@ -1081,6 +1192,23 @@ $ git rm --cached submodulename $ rm -rf .git/modules/submodulename ``` + +## Разное + +### Восстановить удаленный файл + +Сначала нужно найти последний коммит, где файл еще существует: + +```sh +$ git rev-list -n 1 HEAD -- filename +``` + +Затем взять версию файла из коммита непосредственно перед удалением: + +``` +git checkout deletingcommitid^ -- filename +``` + ### Удалить метку @@ -1098,7 +1226,7 @@ $ git push :refs/tags/ $ 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/ @@ -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 +``` + ## Отслеживание файлов -### Я хочу изменить регистр в имени файла, не меняя содержимое файла. +### Я хочу изменить регистр в имени файла, не меняя содержимое файла ```sh (master)$ git mv --force myfile MyFile ``` -### Я хочу переписать локальные файлы при выполнении git pull. +### Я хочу переписать локальные файлы при выполнении git pull ```sh (master)$ git fetch --all @@ -1159,9 +1293,9 @@ From github.com:foo/bar ## Конфигурация -### Я хочу добавить псевдонимы для некоторых команд 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 для просмотра состояния репозитория.