URL: https://www.udemy.com/course/git-alishev/learn/lecture/14211812
ΠΠΎΡ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΊΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ»ΡΡΠ°ΡΡ (Π½Ρ Π½Π΅Ρ ΡΠ°ΠΌ Π΄ΠΎΠΌΠ°ΡΠ΅ΠΊ, ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ), ΠΠ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΠ΄Π°ΠΆΠ΅!
git init
- ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git status
- ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°
git add
- Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ staged
git commit
-m"message"
- ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ message
git commit -a -m"message"
- Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΡΡ
ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
) ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ message
git commit --amend -m"message"
- Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ message
Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
git reset
- ΠΎΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅
git reset [--soft | --mixed | --hard] [COMMIT]
--soft
- Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π·ΠΎΠ½Ρ (staged)--mixed
- Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π·ΠΎΠ½Ρ (unstaged)--hard
- Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π£ΠΠΠΠ―ΠΠ’ ΠΠ‘Π ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ.COMMIT
- ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ»ΠΈ Π½Π° HEAD.HEAD^
- ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ Π½Π° 1 ΠΊΠΎΠΌΠΌΠΈΡ.HEAD^^
ΠΈΠ»ΠΈHEAD~2
- ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ Π½Π° 2 ΠΊΠΎΠΌΠΌΠΈΡΠ°.HASH
- ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° HASH ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ: Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ git reset
git checkout
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ, Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π²Π΅ΡΠΊΠ°ΠΌΠΈ.
git checkout [COMMIT | BRANCH]
:
COMMIT
- ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡBRANCH
- ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΠΊΡ
git checkout [COMMIT | BRANCH] -- [FILES]
:
--
- ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅ Π½Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΡFILES
- ΠΏΡΡΡ Π΄ΠΎ ΡΠ°Π»Π°(ΠΎΠ²)
git clean
-n
- Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ
git clean -f
- ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git remote
- ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²
git remote -v
- ΡΠΏΠΈΡΠΎΠΊ ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²
git remote show <NAME>
- ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ <NAME>
git remote add <NAME> <URL>
- Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
<NAME>
- Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ<URL>
- ΡΡΡΠ»ΠΊΠ°, ΠΏΡΡΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git push
<NAME> <BRANCH>
- ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ <NAME>
Π²Π΅ΡΠΊΡ <BRANCH>
git pull
<name> <BRANCH>
- Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ <NAME>
Π²Π΅ΡΠΊΡ <BRANCH>
git push --delete <NAME> <BRANCH>
- ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ <BRANCH>
Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ <NAME>
push
ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:git push --set-upstream <NAME> <BRANCH>
git clone
<URL>
- Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
git branch
- ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ Π²Π΅ΡΠΎΠΊ ΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ HEAD
git branch -d <BRANCH>
ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ <BRANCH>
-d
- ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅-D
---force
ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ<BRANCH>
Π½Π΅ ΡΠΌΠΎΡΡΡ Π½ΠΈ Π½Π° ΡΡΠΎ.
git branch -r
- ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π²Π΅ΡΠΎΠΊ ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
git checkout
<BRANCH>
- ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ <BRANCH>
git checkout -b <BRANCH>
- ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ <BRANCH>
git merge
<BRANCH>
- ΡΠ»ΠΈΡΡ Π²Π΅ΡΠΊΡ c ΡΠ΅ΠΊΡΡΠ΅ΠΉ (ΠΊΡΠ΄Π° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ HEAD
) Π²Π΅ΡΠΊΠΎΠΉ
git fetch
- ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
Π² ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
git pull
=git fetch && git merge <name> <BRANCH>
.
git rebase
<BRANCH>
- ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΏΠΎΠ²Π΅ΡΡ
Π²Π΅ΡΠΊΠΈ <BRANCH>
git cherry-pick
[COMMAND] <hash>
- Π²Π·ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ
--edit
- ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°--no-commit
- ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π² ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π·ΠΎΠ½Ρ Π±Π΅Π· ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Π½Π°ΡΡ Π²Π΅ΡΠΊΡ-x
- ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ hash ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°--signoff
- ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΠ» cherry-pick
git log
- ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
git log --oneline
- ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ hash message
git log --oneline --graph
- ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΡΠ΅Π²Π° (Π³ΡΠ°ΡΠ°)
git show
<hash>
- ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°