Skip to content

Instantly share code, notes, and snippets.

@gitjs77
gitjs77 / comparing-git-add.md
Created August 7, 2017 12:26 — forked from remboo/comparing-git-add.md
Comparing 'git add' variations

git add . vs git add -A vs git add -u vs git commit -a vs git add --ignore-removal

git add . , git add -A stage all files, including new files (which git commit -a misses) and deleted files.

The difference is that git add -A also stages files in higher directories that still belong to the same git repository. Here's an example:

/my-repo
  .git/
 subfolder/
@gitjs77
gitjs77 / git-files-states.md
Created August 7, 2017 12:25 — forked from remboo/git-files-states.md
Git files states

alt text

Все файлы делятся на 2 группы:

untracked (неотслеживаемые) - любые файлы в рабочем каталоге, которые не входили в ваш последний слепок состояния и не подготовлены к коммиту.

tracked (отслеживаемые) - это те файлы, которые были в последнем слепке состояния проекта (snapshot); они могут быть неизменёнными(unmodified), изменёнными(modified) или подготовленными к коммиту (staged).

untracked - новые файлы, которых еще не было в проекте

@gitjs77
gitjs77 / git-reset.md
Created August 7, 2017 12:25 — forked from remboo/git-reset.md
Git Reset (soft, mixed, hard)

alt text

Удаление коммитов до c14809fa, т.е. мы удалили просто предыдущие коммиты, но изменения в файлах, сделанные в коммитах, остались. Удалились только сами коммиты. Если мы закомиттимся(commit), то все изменения удаленных комиттов, добавятся как 1 коммит.

git reset --soft c14809fa

Удаление коммитов до c14809fa, аналогичный с soft функционал. но файлы необходимо также проиндексировать, а потом закоммитить(commit).