-
Notifications
You must be signed in to change notification settings - Fork 0
/
Guide for Git & GitHub.txt
114 lines (83 loc) · 9.35 KB
/
Guide for Git & GitHub.txt
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Гид по Git & GitHub (Spaces 4)
git config --global user.name "Volodymyr Franchuk"
git config --global user.email [email protected]
git config --list (Все настройки GIT)
ls -Force (PowerShell)
или (Отображение скрытых папок и файлов)
ls -la (Git Bash)
pwd (Полный путь к какой-либо папке)
cd .. (Переход в родительскую папку)
cd ~/name-folder (Переход в папку)
mkdir name-folder (Создание папки)
ls (Список файлов в папке)
ls -la (Список всех файлов, и скрытых тоже, в папке)
echo "Some text" > file.txt (Содать файл с текстом "Some text")
cat file.txt (Прочесть содержимое файла)
git rm file.txt (Удалить файл)
git mv old_name.file new_name.file (Переименование файла)
git init (Создание репозитория в определенной папке)
git status (Посмотреть текущее состояние Git репозитория)
git add name-file (Подготовить изменения перед коммитом)
git add . (Подготовить все изменения во всех файлах перед коммитом)
git add -p (Перед подготовкой просмотреть изменения в файлах)
git diff --staged (Просмотреть фактические изменения перед коммитом)
git commit (Создание коммита текущей версии)
git commit -m "message" (Создание коммита с записью изменений в репозиторий)
git commit --amend (Перезаписать предыдущий коммит, рекомендуется использовать только в локальном репозитории)
git reset name.file (После добавление на ожидание коммита, можно удалить (неотслеживать) его из Stage Area)
git revert HEAD (Откат к предыдущему коммиту)
git revert HASH-ID (Откат к любому из прошлых коммитов по хэшу коммита)
git checkout HASH-ID (Перейти к определенной версии, содержимое рабочей директории перезаписывается)
git checkout name-branch (Перейти к определенной версии проекта по названию ветки)
git checkout -b name-branch (Создать новую ветку и перейти в неё)
git checkout -b name-branch o/main (Создать ветку name-branch, перейти в неё и отслеживать её вместо main)
git checkout name-branch^ (Перейти в родительскую ветку ветки name-branch)
git checkout name-branch^^ (Перейти в родитель родителя ветки name-branch)
git checkout name-branch~3 (Перейти в родитель ветки name-branch через энное количество веток)
git checkout name.file (Перейти к последней версии файла, только перед его коммитом)
git log (Просмотр истории изменений (коммитов) до текущей версии)
git log -p (Просмотр изменений сожержимого файлов в коммитах)
git log --stat (Статические данные коммитов, сколько файлов было измененно, удаленно или добавлено и т.д.)
git log --graph --oneline (--graph - коммит как график, --oneline - одна строка на каждый коммит)
git show HASH-ID (Посмотреть изменения в конкретном коммите)
git cat-file -t (Посмотреть тип обьекта)
git cat-file -p (Посмотреть содержимое обьекта)
git branch name-branch (Название ветки)
git branch -m name-branch (Переименование ветки)
git branch name-branch (Создание новой ветки)
git branch (Посмотреть все ветки)
git branch -a (Отображает все ветки, включате, которые находятся в удаленных репозиториях)
git branch -m new-name-branch (Переименовать текущую ветку)
git branch -d name-branch (Удалить ветку, текущую ветку удалить нельзя)
git branch -f main name-branch~3 (Создать новую ветку, переместить её на три родителя назад от main и перейти в неё)
git branch -u o/main name-branch (Создать новую ветку, перейти в неё и отслеживать вместо main)
git branch -u o/main (Находясь в ветке, приказать отслеживать её вместо main)
git tag name-tag name-branch (Создать тег на конкретнкую ветку, по сути неизменяющуюся ссылку)
git describe (Показывает, как далеко текущее состояние от ближайшего тега)
git merge first second-branch (Текущая ветка (первая) принимает ветку "ветка-вторая")
git merge --abort (Остановить слияние веток и сбросить файлы до последнего коммита перед слиянием)
git rebase name-branch (Паралельное слияние двух веток)
git rebase -i HEAD~4 (
Показывает какие коммиты готовы к копированию на цель rebase (target).
После открытия окна интерактивного rebase есть три варианта для каждого коммита:
1. Можно сменить положение коммита по порядку, переставив строчку с ним в редакторе.
2. Можно "выкинуть" коммит из ребейза. Для этого есть pick - переключение его означает, что нужно выкинуть коммит.
3. Можно соединить коммиты. При помощи этой функции можно объединять изменения двух коммитов.
)
code . (Открыть рабочую директорию в Visual Studio)
git push (Загрузить обновления с локального репозитория на удалённый)
git push -u origin name-branch (Загрузка изменений из локальной ветки в удаленную с создание связи между ними)
git push origin <источник>:<получатель> (Загрузка изменений из локальной ветки в удаленную (не стандартные) с создание связи между ними)
git pull (Загрузить обновления с удаленного репозитория на локальный)
git pull --rebase (Аналог для совместно вызванных fetch и rebase)
git fetch (Загрузить новые коммиты, но не применяет изменения локально)
git fetch origin name-branch (Загрузить новые коммиты из удаленной ветки name-branch в локальную ветку origin/name-branch)
git fetch origin name-branch:name-branch
git clone <url> (Клонирование удаленного репозитория в локальный)
git remote add origin <url> (Подключение удаленного репозитория)
git cherry-pick <Commit1> <Commit2> <...> (Скопировать коммиты туда, где сейчас находишься (HEAD))
diff old_file.file new_file.file (Различия между кодом в файлах)
diff -u old_file.file new_file.file (Различия между кодом в файлах в унифицированном виде и большим контекстом)
wdiff old_file.file new_file.file (Слова которые были изменены)
diff -u old_file.file new_file.file > changes.diff (Создать файл "changes.diff" с измененным кодом и контекстом)
patch old_file.file < changes.diff (Принимает файл (.diff) с изменениями и применяет изменения к исходному файлу)