ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π΅ΡΠΊΠ°ΠΌΠΈ
- First, clone a remote Git repository and cd into it:
$ git clone git://example.com/myproject $ cd myproject
- Next, look at the local branches in your repository
$ git branch
- master
- But there are other branches hiding in your repository! You can see these using the -a flag:
$ git branch -a
- master remotes/origin/HEAD remotes/origin/master remotes/origin/v1.0-stable remotes/origin/experimental
- If you just want to take a quick peek at an upstream branch, you can check it out directly:
$ git checkout origin/experimental
- But if you want to work on that branch, you'll need to create a local tracking branch which is done automatically by:
$ git checkout experimental
- and you will see $ Branch experimental set up to track remote branch experimental from origin. Switched to a new branch 'experimental'
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ origin Π°Π΄ΡΠ΅Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
- git remote set-url origin <ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ΅ΠΏΠΎ>
ΠΡΠΊΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
- git rebase -i --root
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΉ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²: Π½Π°Ρ ΠΎΠ΄ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎ git remote add <ΠΈΠΌΡ><ΠΏΡΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎ> git fetch <ΠΈΠΌΡ> git merge <ΠΈΠΌΡ>/master --no-commit (Π΅ΡΠ»ΠΈ Π½Π΅ ΠΌΠ΅ΡΠ΄ΠΆΠΈΡ, Π΄ΠΎΠ±Π²Π°ΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ --allow-unrelated-histories )
(ΡΠ»ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ΅ΠΏΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅, Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ°ΠΌ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ) git mv <ΡΡΠΎ ΠΎΡΠΊΡΠ΄Π°><ΠΊΡΠ΄Π°>
git commit git push
ΠΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ - git status
ΠΡΡΠΎΡΠΈΡ - git log
ΠΡΡΠΎΡΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ - git log --all --graph --decorate
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΠΉ - git hist ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ² -> git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎΠ² Π²Π΅ΡΡΠΈΠΉ - git tag <ΠΈΠΌΡ_ΡΠ΅Π³Π°>
Π’Π΅Π³ΠΈ - git tag
ΠΡΠΎΡΠΌΠΎΡΡ Π’Π΅Π³ΠΎΠ² Π² Π»ΠΎΠ³Π°Ρ - git hist master --all / git hist
ΠΡΠΌΠ΅Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Π΄ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ) - git checkout <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°_Ρ_ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ>
ΠΡΠΌΠ΅Π½Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ):
- git reset HEAD <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°_Ρ_ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ>
- git checkout <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°_Ρ_ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ>
ΠΡΠΌΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° - git revert HEAD
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· Π²Π΅ΡΠΊΠΈ:
- ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ΅Π³ΠΎΠΌ = git tag <ΠΈΠΌΡ_ΡΠ΅Π³Π°>
- git reset --hard <Ρ ΡΡ_Π½ΡΠΆΠ½ΠΎΠ³ΠΎ_ΠΊΠΎΠΌΠΌΠΈΡΠ°>
- git tag -d <ΡΠ΅Π³_ΠΈΠ·_ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ_ΠΏΡΠ½ΠΊΡΠ°>
ΠΠ½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠΌΠΈΡΡ - git commit --amend -m "Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ"
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² - git mv <ΠΈΠΌΡ_ΡΠ°ΠΉΠ»Π°> <ΠΊΡΠ΄Π°_ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ>
ΠΡΠ²ΠΎΠ΄ Ρ ΡΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° - git hist --max-count=1
ΠΡΠ²ΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
- git cat-file -t / Π°Π»ΠΈΠ°Ρ = git type
- git cat-file -p / Π°Π»ΠΈΠ°Ρ = git dump
ΠΡΠ²ΠΎΠ΄ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²/ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°/ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ΄Π΅Ρ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ - git cat-file -p <Ρ ΡΡ_Π΄Π΅ΡΠ΅Π²Π°_ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°/ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°/ΡΠ°ΠΉΠ»Π°>
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ - git checkout -b <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ>
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ - git checkout <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ>
ΠΡΠ²ΠΎΠ΄ Π²Π΅ΡΠΎΠΊ - git branch
ΠΡΠ²ΠΎΠ΄ Π²Π΅ΡΠΎΠΊ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ - git hist --all
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ:
- ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° <ΡΠ»ΠΈΠ²Π°Π΅ΠΌΡΡ_Π²Π΅ΡΠΊΡ>
- git merge master
Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²:
- ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ git ΠΈ Π²ΡΡΡΠ½ΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
- ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ
ΠΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - git rebase master ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
- ΠΡΠ»ΠΈ Π²Π΅ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΠΈ ΡΠ°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠΉ. ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡ Π²Π΅ΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
- ΠΠΎΠ³Π΄Π° Π²Π°ΠΆΠ½Π° ΡΠΎΡΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²Π΅ΡΠΊΠΈ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° rebase ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²).
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎ - git clone <Π°Π΄ΡΠ΅Ρ ΡΠ΅ΠΏΠΎ> <ΠΈΠΌΡ_ΠΏΠ°ΠΏΠΊΠΈ_Π΄Π»Ρ_ΡΠ΅ΠΏΠΎ>
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΎΠΊ - git branch -a
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎ - git pull ΠΈΠ»ΠΈ
- git fetch
- git merge origin/master
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ - git branch --track <ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ> origin/<ΠΈΠΌΡ_Π²Π΅ΡΠΊΠΈ>
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠΈΡΡΡΠΉ ΡΠ΅ΠΏΠΎ - git clone --bare <ΠΈΠΌΡ_ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ_ΡΠ΅ΠΏΠΎ> <ΠΈΠΌΡ_ΡΠΈΡΡΠΎΠ³ΠΎ_ΡΠ΅ΠΏΠΎ>
Π Π°ΡΡΠ°ΡΠΈΡΡ ΡΠ΅ΠΏΠΎ Π² ΡΠΈΡΡΡΠΉ ΡΠ΅ΠΏΠΎ - git remote add shared <ΠΏΡΡΡΡ_ ΠΊ_ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ_ΡΠ΅ΠΏΠΎ> (Π½Π°Ρ ΠΎΠ΄ΡΡΡ Π² ΡΠ΅ΠΏΠΎ)
ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡΠΈΡΡΡΠΉ ΡΠ΅ΠΏΠΎ - git branch --track shared master
ΠΠ·Π²Π»Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠΈΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎ - git pull shared master
Π Π°ΡΡΠ°ΡΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ:
- git daemon --verbose --export-all --base-path=.
- git clone git://localhost/<ΠΈΠΌΡ_ΡΠ΅ΠΏΠΎ> <Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Π½ΠΎΠ²ΠΎΠΉ_ΠΏΠ°ΠΏΠΊΠΈ>
ΠΠ»Ρ Mac os. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ https://githowto.com/ru/ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²