1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/vcs-all-in-one-git-cheat-sheet

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Из <удаленного>, но не интегрировать в HEAD:

$ git fetch <remote>

Скачать изменения и напрямую объединить/интегрировать в HEAD:

$ git remote pull <remote> <url>

Получить все изменения от HEAD до локального репозитория:

$ git pull origin master

Получить все изменения от HEAD до локального репозитория без объединения:

$ git pull --rebase <remote> <branch>

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

$ git push remote <remote> <branch>

Удалить ветку на удалённом сервере:

$ git push <remote> :<branch> (начиная с Git v1.5.0)

ИЛИ

$ git push <remote> --delete <branch> (начиная с Git v1.7.0)

Публиковать свои теги:

$ git push --tags

Настроить инструмент слияния глобально для meld (редактор):

$ git config --global merge.tool meld

Использовать настроенное средство слияния для разрешения конфликтов:

$ git mergetool

Слияние и перебазирование

Объединить ветку с текущим HEAD:

$ git merge <branch>

Перебазировать текущий HEAD на <ветку>:

  • Не перебазируйте опубликованные коммиты!
$ git rebase <branch>

Отменить перебазирование:

$ git rebase --abort

Продолжить перебазирование после разрешения конфликтов:

$ git rebase --continue

Используйте редактор для ручного разрешения конфликтов и (после разрешения) пометьте файл как разрешенный:

$ git add <разрешенный файл>
$ git rm <разрешенный файл>

Сжатие коммитов:

$ git rebase -i <коммит непосредственно перед первым>

Теперь замените это:

pick <commit_id>
pick <commit_id2>
pick <commit_id3>

на это:

pick <commit_id>
squash <commit_id2>
squash <commit_id3>

Отмена изменений

Отбросить все локальные изменения в рабочем каталоге:

$ git reset --hard HEAD

Извлечь все файлы из области подготовки (т. е. отменить последнее git add):

$ git reset HEAD

Отменить локальные изменения в определенном файле:

$ git checkout HEAD <file>

Вернуть коммит (создав новый коммит с противоположными изменениями):

$ git revert <commit>

Сбросить указатель HEAD на предыдущий коммит и отменить все изменения с тех пор:

$ git reset --hard <commit>

Сброс указателя HEAD на текущее состояние удаленной ветки.

$ git reset --hard <remote/branch>, например, upstream/master, origin/my-feature

Сбросить указатель HEAD на предыдущий коммит и сохранить все изменения как неустановленные изменения:

$ git reset <commit>

Сбросить указатель HEAD на предыдущий коммит и сохранить незафиксированные локальные изменения:

$ git reset --keep <commit>

Удалите файлы, которые были случайно зафиксированы до того, как они были добавлены в .gitignore

$ git rm -r --cached .
$ git add .
$ git commit -m "удалить файл xyz"

Git-Flow

Улучшенный Git-flow

Индекс


Настройка

Вам нужна рабочая установка git в качестве предварительного условия. Git flow работает на OSX, Linux и Windows.
OSX Homebrew:
$ brew install git-flow-avh
OSX Macports:
$ port install git-flow
Linux (Debian-based):
$ sudo apt-get install git-flow
Windows (Cygwin):
Вам нужны wget и util-linux для установки git-flow.
$ wget -q -O - --no-check-certificate https://raw.githubusercontent.com/petervanderdoes/gitflow/develop/contrib/gitflow-installer.sh install <state> | bash

Начало работы

Git flow необходимо инициализировать, чтобы настроить проект. Начните использовать git-flow, инициализировав его внутри существующего репозитория git:
Инициализация:
Вам придется ответить на несколько вопросов о соглашениях об именах для ваших веток. Рекомендуется использовать значения по умолчанию.
git flow init

ИЛИ

Чтобы использовать значение по умолчанию
git flow init -d
``` **Начать новую функцию:**

###### Это действие создаёт новую функциональную ветку на основе «develop» и переключается на неё.

git flow feature start MYFEATURE


**Завершить разработку функции:**

###### Завершите разработку функции. Это действие выполняет следующее:
###### 1) Объединяет MYFEATURE в «develop».
###### 2) Удаляет функциональную ветку.
###### 3) Переключается обратно на ветку «develop».

git flow feature finish MYFEATURE


**Опубликовать функцию:**

###### Вы разрабатываете функцию совместно? Опубликуйте функцию на удалённом сервере, чтобы её могли использовать другие пользователи.

git flow feature publish MYFEATURE


**Получить опубликованную функцию:**

###### Получите функцию, опубликованную другим пользователем.

git flow feature pull origin MYFEATURE


**Отслеживать исходную функцию:**

###### Можно отслеживать функцию в источнике с помощью

git flow feature track MYFEATURE

<hr>

### Сделать релиз

**Подготовка поддержки нового производственного релиза.**
Допускаются незначительные исправления ошибок и подготовка метаданных для выпуска.

**Начать выпуск:**

###### Чтобы начать выпуск, используйте команду git flow release. Она создаёт ветку выпуска, созданную из ветки «develop». При желании вы можете указать [BASE] — хеш SHA-1 коммита, чтобы начать выпуск с него. Коммит должен быть в ветке «develop».

git flow release start RELEASE [BASE]

###### Разумно опубликовать ветку выпуска после её создания, чтобы разрешить коммиты выпуска другими разработчиками. Сделайте это аналогично публикации функции с помощью команды:

git flow release publish RELEASE

###### (Вы можете отслеживать удалённый выпуск с помощью команды ```git flow release track RELEASE```).

**Завершение выпуска:**

###### Завершение выпуска — один из важных шагов в ветвлении git. Он выполняет несколько действий:
###### 1) Объединение ветки выпуска обратно в «master».
###### 2) Пометка выпуска его именем.
###### 3) Обратное объединение выпуска в «develop».
###### 4) Удаление ветки выпуска.

git flow release finish RELEASE

###### Не забудьте отправить свои теги с помощью ```git push --tags```.

<hr>

### Исправления

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

**Начало исправления:**

###### Как и другие команды git flow, исправление начинается с

$ git flow hotfix start VERSION [BASENAME]

###### Аргумент version обозначает новое имя выпуска исправления. При желании можно указать basename для начала работы.

**Завершите исправление:**

###### После завершения исправления оно объединяется обратно в develop и master. Кроме того, слияние master помечается версией исправления.

git flow hotfix finish VERSION

<hr>

### Команды
<p align="center">
    <img alt="Git" src="./Img/git-flow-commands.png" height="270" width="460">
</p>
<hr>

### Схема Git flow

<p align="center">
    <img alt="Git" src="Img/git-flow-commands-without-flow.png">
</p>
<hr>

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

git and git flow cheat sheet Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/vcs-all-in-one-git-cheat-sheet.git
git@api.gitlife.ru:oschina-mirror/vcs-all-in-one-git-cheat-sheet.git
oschina-mirror
vcs-all-in-one-git-cheat-sheet
vcs-all-in-one-git-cheat-sheet
master