5. Создание веток
git branch - создает новую ветвь
git checkout - переключает на ветвь
git checkout -b - объединяет две пред. команды
git merge - мерджит указанную ветвь в текущую
git-checkout - позволяет переключаться между ветками (коммитами, тегами) или восстановить файлы рабочего каталога
git checkout [options] [<branch>]/<commit>/<tag>
git checkout [options] <file_name_to_restore>
-f --force - Позволяет переключиться между ветками, даже если состояние файлов отличается от состояния, обозначенного как HEAD. Может использоваться для отмены локальных изменений
-b <new_branch> - Создаёт новую ветку с именем <new_branch>; для получения дополнительной информации см. git-branch
Переход к другой ветке - git checkout master
Переход к коммиту с тегом HEAD - git checkout HEAD
Переход к коммиту, предшествующему HEAD на 4 - git checkout HEAD~4
Найти хеш коммита с использованием git log и перейти к этому коммиту:
git log --grep="Commit message fragment"`
git checkout b20eb8bdb8daf5fcec3ceb191c6b9b25507376ca
Отменить незакоммиченные изменения в файле file.txt - git checkout -- file.txt
box@47f08793a3e6: ~/REPO $ git branch --list *5555
15Qy1C1hC8BdGenCuGQthMZhaOk4l7vJ_5555
macbook:test vandud$ git branch # local
aoeuaoeu
master
new_test_branch
* vandud
macbook:test vandud$ git branch --list # local
aoeuaoeu
master
new_test_branch
* vandud
macbook:test vandud$ git branch --all # all
aoeuaoeu
master
new_test_branch
* vandud
remotes/origin/master
remotes/origin/vandud
macbook:test vandud$ git branch -r #remote
origin/master
origin/vandud
Удалять ветки можно с помощью git branch -d/-D <branchname>
С сервера ветки можно удалять так git push <reponame> --delete <branchname>
macbook:test vandud$ git branch -a
* master
remotes/origin/master
remotes/origin/testus
remotes/origin/vandud
macbook:test vandud$ git push
Everything up-to-date
macbook:test vandud$ git push origin --delete testus
remote: . Processing 1 references
remote: Processed 1 references in total
To https://gitea.vandud.ru/vandud/test.git
- [deleted] testus
macbook:test vandud$ git push origin --delete vandud
remote: . Processing 1 references
remote: Processed 1 references in total
To https://gitea.vandud.ru/vandud/test.git
- [deleted] vandud
macbook:test vandud$ git branch -a
* master
remotes/origin/master
macbook:test vandud$
Интересный факт
macbook:test vandud$ git log --all --graph --oneline
* 0ba27fa (origin/master) clear working tree
* 27b74a8 (HEAD -> master) dick
* 2132219 Merge branch 'vandud'
|\
| * 59b8d9f aoue
| * 80ba1f4 govno
...
macbook:test vandud$ git branch 59b8d9f
macbook:test vandud$ git checkout 59b8d9f
warning: refname '59b8d9f' is ambiguous. # <-- "ambiguous" - говорит о том что имя неоднозначное
D govno
D mazafaka
D new.tt
Switched to branch '59b8d9f' # <-- и в итоге свитчится на бранч
No Comments