Compare commits

..

No commits in common. "f8a740a62448c5953d31fdced3aab4f129368774" and "0bc4923a7b0c8520bd5f6f5f1bf32525761a7ec9" have entirely different histories.

View File

@ -45,13 +45,13 @@ sudo apt-get install git
Файлы в рабочем каталоге могут отслеживаться системой контроля версий Файлы в рабочем каталоге могут отслеживаться системой контроля версий
(tracked) или нет (untracked). Отслеживаемые файлы, которые на диаграмме (tracked) или нет (untracked). Отслеживаемые файлы, которые на диаграмме
обозначены зелёным фоном, могут быть неизменёнными (unmodified), обозначены зелёным фоном, могут быть неизменёнными (unmodified),
изменёнными (modified) или подготовленными к фиксации (indexed). изменёнными (modified) или подготовленными к фиксации (staged).
```plantuml ```plantuml
@startuml @startuml
participant untracked as "Неотслеживамые\n(untracked)" participant untracked as "Неотслеживамые\n(untracked)"
box "Отслеживаемые" box "Отслеживаемые"
participant staged as "Подготовленные к фиксации\n(indexed)" #55FF55 participant staged as "Подготовленные к фиксации\n(staged)" #55FF55
participant unmodified as "Неизменённые\n(unmodified)" #99FF99 participant unmodified as "Неизменённые\n(unmodified)" #99FF99
participant modified as "Изменённые\n(modified)" #77FF77 participant modified as "Изменённые\n(modified)" #77FF77
end box end box
@ -138,7 +138,7 @@ git rm <path/to/submodule>
| Команда | Ключи | Описание | | Команда | Ключи | Описание |
| ---- | ---- | ------------ | | ---- | ---- | ------------ |
| `git add` | `<filename>` | Подготовить файл `<filename>` к фиксации | | `git add` | `<filename>` | Подготовить файл `<filename>` к фиксации |
| `git commit` | | Зафиксировать подготовленные файлы | | `git commit` | | Зафиксировать подготовленные файлы |
| `git commit` | `-a` | Зафиксировать все отслеживаемые файлы, которые были изменены | | `git commit` | `-a` | Зафиксировать все отслеживаемые файлы, которые были изменены |
@ -156,7 +156,7 @@ git rm <path/to/submodule>
| Команда | Ключи | Описание | | Команда | Ключи | Описание |
| ---- | ---- | ------------ | | ---- | ---- | ------------ |
| `git status` | `-s` | Вывод информации о рабочем каталоге в краткой форме | | `git status` | `-s` | Вывод информации о рабочем каталоге в краткой форме |
| `git log` | `--oneline` | Вывод журнала изменений в краткой форме | | `git log` | `--oneline` | Вывод журнала изменений в краткой форме |
| `git ls-files` | | Вывод списка отслеживаемых и подготовленных файлов | | `git ls-files` | | Вывод списка отслеживаемых и подготовленных файлов |
@ -174,7 +174,6 @@ git rm <path/to/submodule>
* Обращение к удалённому репозиторию осуществляется по ссылке, создаваемой командой `git remote` * Обращение к удалённому репозиторию осуществляется по ссылке, создаваемой командой `git remote`
* Команда `git clone` автоматически создаёт ссылку `origin` * Команда `git clone` автоматически создаёт ссылку `origin`
## Отправка изменений ## Отправка изменений
| Команда | Ключи | Описание | | Команда | Ключи | Описание |
@ -189,33 +188,118 @@ git rm <path/to/submodule>
| Команда | Ключи | Описание | | Команда | Ключи | Описание |
| ---- | ---- | ------------ | | ---- | ---- | ------------ |
| `git fetch` | `<remote>` | Получить изменения из всех веток репозитория `<remote>`, но не выполнять слияние | | `git fetch` | `<remote>` | Получить изменения из всех веток репозитория `<remote>`, но не выполнять слияние |
| `git fetch` | `<remote> <branch>` | Получить изменения из ветки `<branch>` репозитория `<remote>`, но не выполнять слияние | | `git fetch` | `<remote> <branch>` | Fetch specific branch |
| `git merge` | `<remote>/<branch>` | Выполнить слияние с веткой `<branch>` репозитория `<remote>` | | `git merge` | `<remote>/<branch>` | Merge fetched remote |
| `git pull` | `<remote>` | Получение и слияние | | `git pull` | `<remote>` | Fetch and merge in one command |
Reference: https://git-scm.com/docs/git-fetch, https://git-scm.com/docs/git-pull
## Ветки ## $branch
| Команда | Ключи | Описание | | Команда | Ключи | Описание |
| ---- | ---- | ------------ | |---------|-------|----------|
| `git branch` | `-a` | Список локальных и удалённых веток | | `git branch` | | List branches |
| `git branch` | | Список локальных веток | | `git branch` | `<branchname>` | Create new branch |
| `git branch` | `<branch>` | Создать ветку `<branch>` | | `git checkout` | `<sha-1>` | Switch to branch, or commit |
| `git checkout` | `<sha-1>` | Перейти к фиксации с идентификатором `<sha-1>` | | `git branch` | `-m <branchname> <newname>` | Rename branch |
| `git branch` | `-m <old> <new>` | Переименовать ветку `<old>` в `<new>` | | `git merge` | `<branchname>` | Merge changes from `<branchname>` to current branch |
| `git merge` | `<branch>` | Слить изменения из ветки `<branch>` в текущую ветку | | `git branch` | `-d <branchname>` | `--delete` branch |
| `git branch` | `-d <branch>` | Удалить ветку `<branch>` |
Reference: https://git-scm.com/docs/git-branch
## Сравнение ## $diff
| Команда | Ключи | Описание | | Команда | Ключи | Описание |
| ---- | ---- | ------------ | |---------|-------|----------|
| `git diff` | | Сравнить рабочий каталог и индекс | | `git diff` | | Compare **`working directory`** and **`index`** |
| `git diff` | `-cached` | Сравнить индекс и последнюю фиксацию | | | `-cached` | Compare **`index`** and **`latest commit`** |
| `git diff` | `HEAD` | Сравнить последнюю фиксацию и рабочий каталог | | | `HEAD` | Compare **`latest commit`** and **`working directory`** |
| `git diff` | `--stat` | Краткий вывод результатов | | | `--stat` | Optional short format |
| `git diff` | `<sha-1> <sha-1>` | Сравнить две точки с указанными индетификаторами | | | `<sha-1> <sha-1>` | 2 points in time to compare |
| `git diff` | `<dir> | <file>` | Сравнивать только укзанный каталог `<dir>` или файл `<file>` | | | `<dir> | <file>` | Compare whole directory or limit to file |
| `git difftool` | | Отобразить результаты сравнения в программе, определяемой переменной `diff.tool` |
Reference: https://git-scm.com/docs/git-diff
**Examples:**
```shell
## compare changes made to README.md between working tree (default) and latest commit (HEAD)
$ git diff --stat HEAD ./path/README.md
## compare changes made to README.md between 2 specific points in time (e.g. 2 commits)
$ git diff --stat a649900 24bdd58 ./path/README.md
```
## $tag
| Команда | Ключи | Описание |
|---------|-------|----------|
| `git tag` | | List tags |
| `git tag` | `<v1.0.0>` | Create tag, from latest commit, lightweight |
| `git tag` | `-a <v1.0.0> -m "<msg>"` | Create tag, with `--annotate`, from latest commit |
| `git tag` | `-a <v1.0.0> -m "<msg>" <SHA-1>` | Create tag, with `--annotate`, from specific commit |
| `git tag` | `-d <v1.1.0>` | `--delete` tag |
| `git show` | `<v1.0.0>` | Show tag data and message |
| `git checkout` | `<v1.0.0>` | Switch to specific point tag (not editable) |
| `git push` | `<remote> <tag>` | Push specific tag to `<remote>` (recommended) |
| `git push` | `<remote> --tags` | Push all tags to `<remote>` (only if necessary) |
Инициализация репозитория в каталоге `dir`:
```sh
git init dir
```
Клонирование репозитория `repo`, принадлежащего пользователю `user`,
с сервера `gitlab.2` в каталог `dir`:
```sh
git clone git@gitlab.2:user/repo.git dir
```
Просмотр состояния рабочего каталога и репозитория:
```sh
git status
```
Краткая форма вывода состояния:
```sh
git status -s
```
Добавление файла `README.md` под версионный контроль и подготовка
к фиксации:
```sh
git add README.md
```
Удаление файла `README.md` из индекса репозитория:
```sh
git rm --cached README.md
```
Зафиксировать файлы, подготовленные к фиксации:
```sh
git commit
```
Зафиксировать все отслеживаемые файлы, которые были изменены:
```sh
git commit -a
```
Отправить все ветки репозитория на сервер с меткой `origin`:
```sh
git push origin
```