Содержание

Usefull Git commands

Содержание
Замечание
Последний раз данная статья обновлялась 14.10.2022, информация может быть устаревшей.

Reset branch

1
2
git fetch origin
git reset --hard origin/main
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
git init
git add .
git commit -m 'Description'
git commit -a -m 'Description' # коммитит все файлы, не требует выполнять add
git rm <file> # -f если файл уже в коммите
git rm --cached <file> # Удалить файл из индекса, оставив его при этом в рабочем каталоге
git mv <file_from> <file_to>
git status (-s --short)
git checkout .
git reset HEAD <file>
# Dry Run will tell you what files will be removed upon executing the clean command
git clean -n
# To remove untracked files using -f flag
git clean -f

# To remove untracked files inside a subfolder
git clean -f folderpath

# to delete untracked folders too
git clean -fd

# To remove ignore files, use the -x flag
git clean -fx

git clone [url]

git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \
  --prune-empty --tag-name-filter cat -- --all

git push origin --force --all
git push origin --force --tags

# Branches
git branch  # Список веток
git branch <branch_name>
git checkout <branch_name>
git checkout -b <branch_name> # Предыдущие 2 команды в одну строку
# Слияние с master
git checkout master
git merge <branch_name>
git branch -d <branch_name> # Удаление ветки

git remote -v  # внешний репозиторий
git remote add origin https://github.com/baikov/baikov.dev.git

# Merge/Rebase
git remote add upstream https://github.com/whoever/whatever.git
git fetch upstream
git rebase upstream/master
git merge upstream/master

# Rename
git branch -m <oldname> <newname>

# If you want to rename the current branch, you can do:
git branch -m <newname>

# If you want to push the local branch and reset the upstream branch:
git push origin -u <newname>

# And finally if you want to Delete the remote branch:
git push origin --delete <oldname>


# Stash
# только те изменения, которые еще не были индексированы (командой add)
git stash save --keep-index

# отменяет все индексированные и неиндексированные изменения в рабочей области, сохраняя их в карман (stash)
git stash save

# Восстановление несохраненных изменений
git stash apply

# удалить последнюю запись кармана
git stash drop
1
2
3
4
5
6
7
8
9
# config list
git config -l

# local and global email
git config user.email
git config --global user.email

# set local email
git config user.email "my@email.com"

Показать изменения между stage и HEAD:

1
git diff --staged

Показать изменения между Working Directory и HEAD:

1
git diff HEAD

Скопировать нужные коммиты

1
2
3
4
5
# от A до B
git cherry-pick 'A^..B'

# от A до B исключив A
git cherry-pick 'A..B'

Push branch to remote

1
git push origin feature

Полезное:

SO - Как вернуться (откатиться) к более раннему коммиту?

How to cherry-pick multiple commits

Ё…ый Git!!!