Skip to content

DavidTbilisi/davidtbilisi.learning_git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 

Repository files navigation

GIT LEARNING

Most Used

Reset vs Revert vs Restore (აღდგენის მეთოდები)

reset -ი გამოიყენება მანამდე სანამ არ გავაკეთებთ push -ს,
ხოლო push -ის გაკეთების მერე ვიყენებთ revert -ს
Restore-ი აკოპირებს source-ის მდგომარეობას მიმდინარე სამუშაო ფაილში

Reset

ცვლის HEAD პოინტერს

ტიპი Working dir Stage Area აღწერა
--soft ❌რჩება შეუცვლელი ❌რჩება შეუცვლელი მოძრაობს მხოლოდ HEAD პოინტერი
--mixed(default) ❌რჩება შეუცვლელი ✅იცვლება იშლება მხოლოდ Staging Area
--hard ✅იცვლება ✅იცვლება იშლება Staging Area-ც და Working Directory-ც
git_reset_types
# შლის ყველა დაუქომითებელ ცვლილებას
git reset --hard
# შლის ბოლო 2 commit-ს
git reset HEAD~2 --hard

Revert

# ქმნის ახალ Commit-ს ძველის გასაუქმებლად

# hash-ად უნდა მივუთითოთ ის hash-ი რომლის გაუქმებაც გვინდა
# გამოიყენება ერთი კონკრეტული commit-ის გასაუქმებლად
git revert <hash>

Git revert visual

Restore

# აკოპირებს source-ის მდგომარეობას მიმდინარე სამუშაო ფაილში
git restore filename --source=<Branchname or HEAD~n>

Basics

სახელის შეცვლა git -ის მეშვეობით

git mv old.txt new.txt

ოპერაციული სისტემიდან შეცვლილი ფაილების სწორად აღსაქმელად

git add -A

Commit

git add and commit with short message

# ფაილის დამატება და დამახსოვრება
git commit -am [message]
git commit --amend

Branch

ჩამოთვლისი ლოკალურ და რემოუთ ტოტებს

git branch -a

ტოტის შესაქმნელად

git branch newbranch

ტოტის შესაცვლელად

git checkout newbranch

ტოტისთვის სახელის შესაცვლელად

git branch -m old_branch_name new_branch_name

ტოტის წასაშლელად

git branch -d old_branch_name

Fetch doc

Fetch image

მოაქვს მეტა მონაცემები remote repo-დან

git fetch origin master --all

Merge doc

იმისთვის რომ მარტივი იყოს დასამახსოვრებლად, სიტყვა merge -ს ერთერთი მნიშვნელობა არის შთანთქმა ან ჩაყლაპვა. შესაბამისად შეგვიძლია წარმოვიდგინოთ, როგორ ყლაპავს მიმდინარე ტოტი, მითითებულს

გადავერთოთ იმ ტოტზე რომელიშიც გვინდა გავაერთიანოთ სხვა ტოტი

git checkout master
git merege other_branch 

--fast-forward - (default param) როდესაც master-ზე არ მომხდარა ცვლილებები და ისე ერთიანდება, თითქოს არც ყოფილა განტოტვა.

--no-ff - ისე ერთიანდება, თითქოს ყოფილა განტოტვა.

კონფლიქტების გადაწყვეტა

git mergetool

Rebase

ცვლის ტოტის საწყისს

Rebase gif

git checkout otherbranch
git rebase master
git rebase --abort
git rebase --continue

git pull --rebase origin master

Log

დროის ლიმიტი

git log --since="3 days ago" --oneline

კონკრეტული ფაილის ისტორიის სანახავად

git log -- filename --oneline

Show

დეტალური ინფოს სანახავად

git show somehash

Alias

გლობალური ალიასები ინახება ამ მისამართზე

cd ~/.gitconfig

გლობალური ალიასის შესაქმნელად

git config --global alias.somealias "somename --param1 --param2 --param3"

Diff

განსხვავების სანახავად 2 ტოტს შორის

git diff branch1 branch2
git difftool branch1 branch2

Stash

სიტყვა ნიშნავს დამალვას, დაფარულ საგანძურს

დროებით დამალვა (კომენტარებით)

git stash save "comment message"

დროებით დამალვა (კომენტარებით) -u for untrecked

git stash -u save "comment message"

დამალულის სიის ჩვენება

git stash list

კონკრეტული საგანძურის ნახვა

git stash show@{n}

საგანძურის დაბეუნება

git stash apply stash@{1}
git stash drop stash@{1}

apply & drop last stash

git stash pop
git stash branch new_branch_name

ყველა საგანძურის წაშლა

git stash clear

Tags

git tag tagname
git tag --list
git show tagname
git show --delete tagname

release

  • Major release number
  • Minor release number
  • Maintenance release number (bugfixes only)
git tag -a v1.0.0

ტეგის მინიჭება კონკრეტული ქომითისთვის

git tag -a tagname sha_of_commit

ტეგის გადატანა სხვა ქომითისთვის

git tag -a tagname -f sha_of_commit

კონკრეტული ტეგის გადატანა GitHub-ზე

რაც თავის მხრივ ქმნის zip ფაილის გადმოწერის საშუალებას.

git push origin tagname

ტეგების გადატანა GitHub-ზე

git push origin master --tags

ტეგების წაშლა GitHub-დან

push nothing to this tag name

რჩება ლოკალურად მაგრამ იშლება GitHub-დან

git push origin :tagname

Cherry pick

ერთი კონკრეტული commit -ის დაკოპირება სხვა branch-ზე ქვემოთ მოცემულ მაგალითში ვაკოპირებთ C commit -ს

Warning

მაღალი ალბათობით შეიძლება გამოივიოს კონფლიქტები

gitGraph
    commit id: "A" tag: "main"
    commit id: "B"
    branch feature-xyz
    checkout feature-xyz
    commit id: "C"
    commit id: "D"
    checkout main
    commit id: "E"
    commit id: "C'" tag: "cherry-pick აღებული C-დან"
Loading

About

Git Complete: The definitive, step-by-step guide to Git (Udemy course)

Resources

Stars

Watchers

Forks