Info
Content

5. Создание веток

aeouaeouaoeua.png

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
Back to top