Konfigūracija patį pirmą kartą
Github komandų vizualizacija
$ git config --global user.name "Vardas"
$ git config --system --list #Rodo parametrus
$ git config --global --edit #Varda ir el-pašto konfigūravimas faile
Github komandų vizualizacija
$ git config --global user.name "Vardas"
$ git config --global user.email "a@a.lt"
$ git config --global core.excludesfile ~/.gitignore_global #Pridedamas globalus ignoravimo failas
$ git config --system --list #Rodo parametrus
$ git config --global --edit #Varda ir el-pašto konfigūravimas faile
[user]
email = you@example.com
name = username
[credential]
helper = cache
[core]
excludesfile = /home/user/.gitignore_global
# Spalvina git komandas
$ git config color.status always
Taip pat, kad automatiškai spalvintų git komandas, ir nereiktų atskirai suvedinėti, galima sukurti color sekciją ~/.gitconfig faile:
[color]
diff = auto
status = auto
branch = auto
interactive = auto
ui = true
pager = true
*
Kaip pažiūrėti esamą konfigūraciją?
$ git config color.status always
Taip pat, kad automatiškai spalvintų git komandas, ir nereiktų atskirai suvedinėti, galima sukurti color sekciją ~/.gitconfig faile:
[color]
diff = auto
status = auto
branch = auto
interactive = auto
ui = true
pager = true
*
Kaip pažiūrėti esamą konfigūraciją?
$ git config --list
user.email=you@example.com
user.name=Vardas
credential.helper=cache
core.excludesfile=/home/sup/.gitignore_global
Git Siuntimas/Sinchronizavimas
Vienos rinkmenos įkėlimas:
$ git add dokumento_pavadinimas
Viso turinio įkėlimas:
$ git add .
Būtinas komentaro pridėjimas:
$ git commit -m "Pridėjimo žinutė"
Viso turinio įkėlimas, kartu su komentaro pridėjimu:
$ git commit -am "Pridedami visi failai ir prirašoma pridėjimo žinutė"
Nuotolinės repozitorijos nustatymas:
$ git remote add origin remote_repository_URL
Siunčiam pakeitimus į serverį:
$ git push origin master
Sinchronizuojamės su git repositorija:
$ git pull origin master
Klonavimas
Klonavimas pakeitus pavadinimą, naudinga kai tame pačiame kataloge dvi vienodos repositorijos:
$ git clone https://github.com/user/pavadinimas.git pavadinimas2
Trinimas
Kaip iš kompiuterio pašalinti paskutinį atnaujinimą?
$ git reset --hard HEAD~1
Kaip iš remote pašalinti paskutinį pakeitimą?
$ git reset --hard HEAD~ && git push origin +master
Kaip peršokti į praeitą tam tikrą reviziją:
$ git reset --hard 6ca74a6
$ git push -f # Šiuo atveju grįš prie 6ca74a6 revizijos. Ačiū Mitesh Shah
Atitaisymas, kai meta klaidą "Your branch is behind 'origin/master'
$ git checkout master
$ git pull origin
Failų ignoravimas
Tam, kad repozitorijoje būtų ignoruojami failai, joje reikia pridėti .gitignore failą.
Kaip sukurti globalų git failų ignoravimą?
$ git config --global core.excludesfile ~/.gitignore_global
Perrašymas
Siuntimas į serverį perrašant visas rinkmenas:
$ git push -f origin master
Pastebėjimas: -f komandą, perrašys visus dokumentu git repozitorijoje.
$ git branch
naujasaka
* master
Šakos pavadinimo keitimas:
$ git branch -m [senas_pavadinimas] [naujas_pavadinimas]
Šakos trynimas:
$ git branch -d [šakos pavadinimas]
$ git diff master nauja-saka --stat #Lygina šakų šakas ir atspausdina skirtumus
Tagai
Prideda tagus prie ankstesnio commito ir išsiunčia į serverį:
user.email=you@example.com
user.name=Vardas
credential.helper=cache
core.excludesfile=/home/sup/.gitignore_global
Vienos rinkmenos įkėlimas:
$ git add dokumento_pavadinimas
Viso turinio įkėlimas:
$ git add .
Būtinas komentaro pridėjimas:
$ git commit -m "Pridėjimo žinutė"
Viso turinio įkėlimas, kartu su komentaro pridėjimu:
$ git commit -am "Pridedami visi failai ir prirašoma pridėjimo žinutė"
Nuotolinės repozitorijos nustatymas:
$ git remote add origin remote_repository_URL
Siunčiam pakeitimus į serverį:
$ git push origin master
Sinchronizuojamės su git repositorija:
$ git pull origin master
Klonavimas
Klonavimas pakeitus pavadinimą, naudinga kai tame pačiame kataloge dvi vienodos repositorijos:
$ git clone https://github.com/user/pavadinimas.git pavadinimas2
Trinimas
Kaip iš kompiuterio pašalinti paskutinį atnaujinimą?
$ git reset --hard HEAD~1
Kaip iš remote pašalinti paskutinį pakeitimą?
$ git reset --hard HEAD~ && git push origin +master
Kaip peršokti į praeitą tam tikrą reviziją:
$ git reset --hard 6ca74a6
$ git push -f # Šiuo atveju grįš prie 6ca74a6 revizijos. Ačiū Mitesh Shah
Atitaisymas, kai meta klaidą "Your branch is behind 'origin/master'
$ git checkout master
$ git pull origin
Visų pakeitimų trynimas lokalioje repositorijijoje
$ git reset --hard
$ git clean -fd
Failų ignoravimas
Tam, kad repozitorijoje būtų ignoruojami failai, joje reikia pridėti .gitignore failą.
Kaip sukurti globalų git failų ignoravimą?
$ git config --global core.excludesfile ~/.gitignore_global
$ echo "*~" >> ~/.gitignore_global #Ignoruos gedit teksto rengyklės daromas atsargines kopijas
Perrašymas
Siuntimas į serverį perrašant visas rinkmenas:
$ git push -f origin master
Pastebėjimas: -f komandą, perrašys visus dokumentu git repozitorijoje.
Šakos
$ git branch #Rodo visas šakas
$ git checkout master #Pakeičia esamą šaką į master šaką arba
$ git switch master
$ git branch #Rodo visas šakas
$ git checkout master #Pakeičia esamą šaką į master šaką arba
$ git switch master
$ git checkout -b [šakos pavadinimas] #git šakos kūrimas ir perėjimas į naują šaką
$ git branch [šakos pavadinimas] #Arba
$ git checkout -b [šakos pavadinimas] origin/[šakos pavadinimas]#git šakos kūrimas ir parsisiuntimas šakos iš github repo ir įrašymas į naujai sukurtą šaką
$ git push origin [šakos pavadinimas] #Šakos siuntimas į repo
$ git branch [šakos pavadinimas] #Arba
$ git checkout -b [šakos pavadinimas] origin/[šakos pavadinimas]#git šakos kūrimas ir parsisiuntimas šakos iš github repo ir įrašymas į naujai sukurtą šaką
$ git push origin [šakos pavadinimas] #Šakos siuntimas į repo
Šakų sujungimas:
$ git branch
naujasaka
* master
$ git merge naujasaka #Naujos šakos sujungimas į master
Šakos pavadinimo keitimas:
$ git branch -m [senas_pavadinimas] [naujas_pavadinimas]
Šakos trynimas:
$ git branch -d [šakos pavadinimas]
$ git diff master nauja-saka --stat #Lygina šakų šakas ir atspausdina skirtumus
Prideda tagą prie dabartinio commito:
$ git tag 1.0.0 --force && git push --tags --force
$ git tag -a 1.0.1 7bcd55 && git push --tags --force
Atvaizdavimas Logai
$ git log --oneline #Atvaizduos visus pakeitimus suspaustu formatu
Kaip pasižiūrėti paskutinius 2 pakeitimus?
$ git log -n 2
Atvaizdavimas Logai
$ git log --oneline #Atvaizduos visus pakeitimus suspaustu formatu
Kaip pasižiūrėti paskutinius 2 pakeitimus?
$ git log -n 2
Avaizduoja visus komitus po eilutę
$ git log --decorate --oneline --graph
Kaip atstatyti seną commitą, neištrinant ankstesnių:
git revert --no-commit 7bcd5..HEAD && git commit
Kaip patikrinti ar nebuvo pakeitimų?
$ git fetch origin
$ git diff origin master
Git repositorijos pridėjimas į dabartine direktoriją
$ git init
$ git remote add origin Kelias/iki/repositorijos
$ git pull origin master
Kaip įsiminti git slaptažodį?
$ git config --global credential.helper cache
Git buvimo vietos keitimas/atvaizdavimas:
$ git remote set-url origin git@git....
$ git remote -v
Kiek programuotojų dirba projekte?
$ git log --format='%an' | sort -u | wc -l
518
Kiek įrašų (commits) turi projektas?
$ git rev-list --count devel
22783
Kuris programuotojas padarė daugiausiai įrašų?
$ git shortlog -s -n | head -1
4230 METEOR: benjamn
Kurie programuotojai padarė ne mažiau kaip 5 įrašus?
$ git shortlog -s -n | awk -F" " '$1 > 4 {print $1, $2}'
Kiek kodo eilučių buvo parašyta projekte (iš viso)
$ git ls-files | xargs cat | wc -l
490963
Kiek šakų (branches) turi projektas?
$ git branch -r | wc -l
1083
Pakeistos repositorijos pushinimas į naują repo:
Atsisiuntimas
Kaip atsisiųsti tik vieną failą iš github repositorijos?
https://raw.github.com/vartotojas/repositorijos-pavadinimas/šaka-master-dev/failo-pavadinimas
Atvaizdavimas pagal user-commitus:
$ git log rev-list --count šaka #Bendras komitų kiekis šakoje
Darbas komandoje
Git workflow kelims žmonėms:
$ git pull --rebase
Git pull = rebase konfigūravimas:
$ git config --global pull.rebase true
Dirbant su forkai's [*]
Darbas komandoje
Git workflow kelims žmonėms:
$ git pull --rebase
Git pull = rebase konfigūravimas:
$ git config --global pull.rebase true
Dirbant su forkai's [*]
Pritedam upstream pas save iš forkintos repo
$ git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
$ git fetch upstream
$ git pull upstream master
Kitos komandos
$ git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
$ git fetch upstream
$ git pull upstream master
Kitos komandos
Kaip atstatyti seną commitą, neištrinant ankstesnių:
git revert --no-commit 7bcd5..HEAD && git commit
$ git fetch origin
$ git diff origin master
Git repositorijos pridėjimas į dabartine direktoriją
$ git init
$ git remote add origin Kelias/iki/repositorijos
$ git pull origin master
Kaip įsiminti git slaptažodį?
$ git config --global credential.helper cache
Git buvimo vietos keitimas/atvaizdavimas:
$ git remote set-url origin git@git....
$ git remote -v
Kiek programuotojų dirba projekte?
$ git log --format='%an' | sort -u | wc -l
518
Kiek įrašų (commits) turi projektas?
$ git rev-list --count devel
22783
Kuris programuotojas padarė daugiausiai įrašų?
$ git shortlog -s -n | head -1
4230 METEOR: benjamn
Kurie programuotojai padarė ne mažiau kaip 5 įrašus?
$ git shortlog -s -n | awk -F" " '$1 > 4 {print $1, $2}'
Kiek kodo eilučių buvo parašyta projekte (iš viso)
$ git ls-files | xargs cat | wc -l
490963
Kiek šakų (branches) turi projektas?
$ git branch -r | wc -l
1083
Pakeistos repositorijos pushinimas į naują repo:
$ git remote set-url origin https://github.com/.../....git
$ git push --all
Atsisiuntimas
Kaip atsisiųsti tik vieną failą iš github repositorijos?
Literatūra:
Git gidas su paaiškinimais - https://rogerdudler.github.io/git-guide/.
Git gidas su paaiškinimais - https://rogerdudler.github.io/git-guide/.