Git okosságok


2018-03-08 15:47:33

1. Alapok a videósorozatban:

https://www.youtube.com/watch?v=XDKZu9kuEn8&list=PLyriihBWoulw1KQ2aM-NMnAoVPZevfmZq

Videó + kis kutakodás alapján, egy gyors kódemlékeztető (minimális kommenttel):

[code]

//módosít fájl1-t
git status
git diff
git add "filename1"
git commit -m "módosítva filename1"
git log //HEAD->master ->local "mastere"
// módosít file2-t
git add "file2"
git commit -m "módosítva fájl2"
git log
--> git push //mindkét commit felmegy szerverre (origin/master -> remote|server mastere)
--> git reset --hard "gitlog-ból kiszadett fejléc" //visszaállás korábbi verzióra (push nélkül meghízhatóan megy)
git pull
git show "gitlog head" //megnézhető az adott commitban mi történt
git revert "gitlog head" //csak egy adott módosítás/feature kivonása a legújabb verzióból.
//behoz egy "vi"? szerkesztőt kiilépés :q
//léltrehoz egy commit-ot amit pusholni kell
//Hasznos lehet megnézni, hogy a feature-ban lévő fájl más módosította-e (gui)

[/code]

2. Ötlet gyors használatra:

-"git gui": Ha a cmd parancsokat kiismerte az ember gyorsítani lehet gui felülettel a feladatokat.
Git telepítése után a mappába lépve meghívható a "git gui" command
Hosszan jobb klikk a mappában, és Git GUI
-"gitk": gitgui-ból is elérhető git Visualize Masters History

3. Gyakolás:

Ugyanazon repo-ból több local copy-t lehet létrehozni, így azokból külön tudunk push-olni commit-okat.
Remote repo létrehozható ingyenesen github-on.

4. GitGUI használata:

a) új repo
-github reop létrehoz (link beszerzése)
-lokális gépen mappa létrehoz, mappában jobb klikk->gitgui
-távoli szerver hozzárendelése: remote-> add-> name origin, location "link", Fetch Immediately)
-ahhoz hogy a github se üresnek lássa, szokás egy Readme.md fájlt commit-olni elsőként.

b)commit & push
-gitgui->rescan: megmutatja a projektben a változásokat
-fálj kijelöl Commit->Stage To Commit (kiszedhető Unstage-el),
vagy ha mindegyik változást szeretnénk commit-olni, akkor a StageChanged gombra kattintani
-Szöveg kitöltése majd Commit-ra kattintás
-ha Szerverre(remote) szeretnénk feltölteni, push is.

c) pull
-Remote->Fetch from->origin
-Merge->Local Merge

d) git"fa" commitok megjelenítése
-Repository->Visualize Masters History
(böngészhetőek az egyes commit-ok, visszaállítható egy régebbi commit)
jelölések: [master] -> local copy esetén az aktuális állás
[remotes/origin/master] -> szerveren az aktuális állás

e) régebbi commit (nem pusholt) visszaállítása:
-gitk
-jobb klikk a kivonandó commit-on->Reset master branch to here (Hard)
-File->reload (hogy frissítse a látottakat)
(új commit + push-al frissíthetjük a szervert(remote) is,
viszont ha másnak is van egy lokal copy-ja és ő is pushol, akkor visszaállítja a régi gitfá-t (a szerveren is))
(ha commandline-ból végezzük, akkor reset után nem enged push-olni, csak force módban (gitgui-ban pipával kiválasztható))

f) régebbi commit kivonása a mostani master-ból
-gitk
-jobb klikk a kivonandó commit-on->Revert this commit
-push (mivel ez is egy commitként fog megjelenni)

g) egy kiválasztott fáljt, melyik commit-ok változtatták?
-GitGUI->Browse masters Files
-fájlra duplaklikk, bejön egy szerkesztő, itt a legújabb fáljt látni, színezve, adott soron hagyva az egeret, megmutaja azt a blokkot melyik nevű commit vitte bele

5. Mergetool használata

Ha ugyanazt a fáljt szerkeszti két felhasználó és szeretnék idővel commit+push-olni. Az időben korábban push-oló commitja gond nélkül elfogadásra kerül.
Az időben később commitoló, megkapja feladatként, hogy bizony előbb pull-olnia kell. Ekkor leszedi a commitot, és megpróbálja a localrepo-t a remoterepo-ra frissíteni. Ha ez nem ütközik hibába (más fáljt szerkesztett, vagy nem az általunk átírt sorokat érinti, akkor menni fog a pull(gitgui=fetch->merge), és utána a saját kód push-olása gond nélkül megtörténik.
Ha ugyanazt a sort szerkesztettük, panaszkodni merge error lesz.
Ennek feloldására használható valamilyen merge tool (pl. meld)

a) Meld install: http://sourceforge.net/projects/meld-installer/
-git config --global merge.tool meld
-git config --global diff.tool meld
-Windows->Environment Variables(környzeti változó) "Path"-jához hozzáadni a ";c:Program Files (x86)Meldmeld"-t
-C:UsersYourComputerUserName.gitconfig -hoz hozzáfűz:

[code]


[diff]
     tool = meld
[difftool]
     prompt = false
[difftool "meld"]
     cmd = meld "$LOCAL" "$REMOTE"

[/code]


b) indítása:
GitGUI feldobja a merge error ablakot. Ha itt jobbklikk-> run mergetool-ra kattintunk elindul a Meld
c) használata:
-a középső ablakon lehet sorrendbe tenni a kódot, hozzáírni + sorokat, sőt CTRL kattintással, egyéb alá-fölé szúrhatunk sorokat.
-mentés, kilépés majd mehet a commmit majd a push

 







Hozzászólások:


repo info:   2020-02-24 14:54:15
REPO INFO: git log --pretty=format:"%h %s" --graph megnézése hogy mi van localba commit-olva mi meg push-olva: git log --all

git submodule 2:   2020-02-24 14:53:14
submodule eltávolítás: # Remove the submodule entry from .git/config git submodule deinit -f path/to/submodule # Remove the submodule directory from the superproject .git/modules directory rm -rf .git/modules/path/to/submodule # Remove the entry in .gitmodules and remove the submodule directory located at path/to/submodule git rm -f path/to/submodule

git submodule 1:   2020-02-24 14:47:52
SUBMODUL: Példa arra, hogy hogyan használom a Git részmodulokat. Új tároló létrehozása Ezután klónozzon egy másik tárolót almodulként Ezután a részmodul V3.1.2 nevű címkét használ És aztán elkötelezzük. Ez egy kicsit így néz ki: git submodule add git://github.com/XXXXX/xxx.yyyy.git stm32_std_lib git status git submodule init git submodule update cd stm32_std_lib/ git reset --hard V3.1.2 cd .. git commit -a git submodule status

git tag-elés:   2020-02-24 13:53:24
git tag -a v1.0 -m "verEgy" git log git tag -l git show v1.0 git checkout f0fe932eb7cd6ec22fd35bdb294f52ed6c7b0efc git tag -a v0.5 -m "visszamentem es tag-eltem" git show v0.5 git checkout master git push --tags

git linkek:   2020-02-24 13:52:58
https://desoft.hu/downloads/git/git_v1.0.pdf http://math.bme.hu/~balazs/git/gitcml.html

git branch:   2020-02-24 13:52:25
Branch: branch listázása: git branch --list git branch -a #törölt branch-ek is branch létrehoz: git branch -b branch_name branch első feltöltése előtt szerveren lévő megvalósítása szükséges: git push --set-upstream origin letrehoz branch-ek összehasonlítása: git branch diff master..egyik_ag branch merge (abba az ágba legyünk amibe szerenténk a másikat olvasztani (pl. master): git merge egyik_ag -m "szoveg" ha nem sikerült a merge: git status git merge --abort branch delete: git branch -D proba1 branch checkout: git checkout remotes/origin/release/proba1 git checkout master

credential:   2020-02-19 13:59:40
ne kelljen mindig megadni az azonsítókat: $ git config --global credential.helper cache ennek is mennie kéne de nem ment: $ git config --global credential.helper wincred paraméterek megnézése: $ git config -l paraméter törlése: $ git config <--global> --unset credential.helper

git-diff to ignore ^M:   2020-02-12 13:48:20
git diff-kor kijelezte az eltérő sovégződésű változásokat is ami valójában nem volt változás. Javítása: "$ git config --global core.autocrlf true"

new git:   2018-09-27 13:43:01
git branch --set-upstream-to=origin/master master

new git:   2018-09-27 11:58:03
git push --set-upstream origin master

python print:   2018-04-17 10:19:52
A sztring végére nem rak sortörést: print("this is a string", end="") két string közé nem rak szóközt: print("Hi","Poftut",sep="") #HiPoftut ------------------------- sztringből szóközök eltávolítása: sentence = " hello apple" sentence.replace(" ", "") >>> "helloapple" if you want to remove duplicated spaces, use str.split(): sentence = " hello apple" " ".join(sentence.split()) >>> "hello apple" -------------------------- Remove spaces in the BEGINNING and END of a string: sentence= sentence.strip() Remove spaces in the BEGINNING of a string: sentence = sentence.lstrip() Remove spaces in the END of a string: sentence= sentence.rstrip()

kódblokk másolata:   2018-03-08 15:53:35
//módosít fájl1-t
git status
git diff
git add "filename1"
git commit -m "módosítva filename1"
git log //HEAD->master ->local "mastere"
// módosít file2-t
git add "file2"
git commit -m "módosítva fájl2"
git log
--> git push //mindkét commit felmegy szerverre (origin/master -> remote|server mastere)
--> git reset --hard "gitlog-ból kiszadett fejléc" //visszaállás korábbi verzióra (push nélkül meghízhatóan megy)
git pull 
git show "gitlog head" //megnézhető az adott commitban mi történt
git revert "gitlog head" //csak egy adott módosítás/feature kivonása a legújabb verzióból.
//behoz egy "vi"? szerkesztőt kiilépés :q
//léltrehoz egy commit-ot amit pusholni kell
//Hasznos lehet megnézni, hogy a feature-ban lévő fájl más módosította-e (gui)

Hozzászólás beküldése (nyisd le)