Π§Π°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΡΠΊΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Git.
Π₯ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ? ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ CONTRIBUTING.md
English | δΈζ | Π ΡΡΡΠΊΠΈΠΉ
- git-tip - ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ°, ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. Docker-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π·Π΄Π΅ΡΡ
P.S: ΠΡΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Ρ Π² git version 2.7.4 (Apple Git-66)
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π½Π΅Π΅
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π±Π΅Π· ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π²Π΅ΡΠΊΠΈ
- ΠΡΡΡΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΠΊΡ
- Π‘ΠΏΠΈΡΠΎΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΎΠΊ
- Π‘ΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π²Π΅ΡΠΊΠΈ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ), Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π½ΠΈΡ
- ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΡ
- Π£Π΄Π°Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ
- Π£Π΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π²Π΅ΡΠΊΠΈ, Π½Π΅ ΡΠ»ΠΈΡΡΠ΅ Π² master
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΡΠ»ΠΈΡΡ Ρ Π²Π΅ΡΠΊΠΎΠΉ master
- ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π²Π΅ΡΠΊΡ feature Π½Π° master ΠΈ ΡΠ»ΠΈΡΡ Π΅Π΅ Π² ΠΌΠ°ΡΡΠ΅Ρ
- Π£Π΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΡΠ»ΠΈΡΡ Ρ master
- ΠΠ°ΠΉΡΠΈ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Ρ Π΅ΡΠ΅ΠΌ
- Track upstream branch
- ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
- ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
- Π£Π΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π²
.gitignore
- Before deleting untracked files/directory, do a dry run to get the list of these files/directories
- Dry run (any command that supports dry-run flag should do)
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
- Reset author, after author has been changed in the global config
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ
- Π‘Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΠ±ΠΎΠΉΠ΄Ρ Ρ ΡΠΊΠΈ pre-commit ΠΈ commit-msg
- ΠΡΠΌΠ΅ΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΊΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ ΠΈ Π²ΡΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ (alias)
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ/Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ git
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ
- ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅
- Π‘Π΄Π΅Π»Π°ΡΡ git ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ
- ΠΠΊΠ»ΡΡΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΠΊ
- ΠΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ²Π΅ΡΠ½ΠΎΠΉ Π²ΡΠ²ΠΎΠ΄ Git
- Specific color settings
- Π£Π΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³Π°
- Reuse recorded resolution, record and reuse previous conflicts resolutions
- ΠΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
- ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ (alias) Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Git
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΡΠ°ΠΌ)
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅
- ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
- ΠΡΠΊΡΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅
- Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅
- ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΠ½Π΄Π΅ΠΊΡ
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»Π°
- Π£Π΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ°
- Π£Π΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ°
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π»ΠΎΠ³ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ (ΠΎΡ-Π΄ΠΎ)
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π·Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠ³ΡΡΠΏΠΈΡΠΎΠ²Π°Π² ΠΈΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π°Π²ΡΠΎΡΠ°
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈΡΠΊΠ»ΡΡΠΈΠ² ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΡΠ°
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½)
- List only the root and merge commits
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π½Π΅Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡ Π²Π΅ΡΠΊΠΈ master
- ΠΠΎΠΌΠΌΠΈΡΡ Π² Π²Π΅ΡΠΊΠ΅ branch-1, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Π² branch-2
- ΠΠΎΠΊΠ°Π·Π°ΡΡ GPG-ΡΠΈΠ³Π½Π°ΡΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»/ΡΠ΄Π°Π»ΠΈΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
- ΠΠΎΠΈΡΠΊ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΊΠΈ (git notes)
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ΅Π³ΠΎΠ² (Π²Π΅ΡΡΠΈΠΉ)
- Get first commit in a branch (from master)
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π² ΠΈΡΡΠΎΡΠΈΡ (force push)
- Forced push but still ensure you don't overwrite other's work
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ (ΠΏΠΎ Ρ Π΅ΡΡ)
- Π‘ΠΏΡΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
- Π‘ΠΏΡΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
- Π‘ΠΏΡΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅
- Π‘ΠΏΡΡΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»Π° (ΡΠ°ΠΉΠ»ΠΎΠ²)
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΡΡΡΠ°Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΏΡΡΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ°
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΏΡΡΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ°
- ΠΠ·Π²Π»Π΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· stash
- ΠΡΠΈΡΡΠΈΡΡ stash
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π³
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ΅Π³ΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
- Π£Π΄Π°Π»ΠΈΡΡ ΡΠ΅Π³ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- Π£Π΄Π°Π»ΠΈΡΡ ΡΠ΅Π³ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- Everyday Git in twenty commands or so
- Show helpful guides that come with Git
- ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ
- ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΡΠΊΠ°Π·Π°Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
- ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
- Alias: git undo
- ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΊ Π½ΠΈΠΌ
- Prunes references to remote branches that have been deleted in the remote
- ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΏΡΠ»Π»-ΡΠ΅ΠΊΠ²Π΅ΡΡ Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ ΠΏΠΎ ID
- Specific fetch reference
- List of all files till a commit
- Git reset first commit
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ΅Π³ Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅
- Revert: ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
- Revert: ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (merge) Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
- Reset: ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ (ΡΠ±ΡΠΎΡ ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ)
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π²
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ URL ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
- List references in a remote repository
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
- ΠΠ²ΡΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ Git-ΠΊΠΎΠΌΠ°Π½Π΄ Π² bash
- ΠΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cherry-pick
- Undo local changes with the last content in head
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡ ΡΠ°ΠΉΠ»Ρ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
- Create new working tree from a repository (git 2.5)
- Create new working tree from HEAD state
- ΠΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΉΠ» (Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ)
- ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΡΡΠ±ΠΌΠΎΠ΄ΡΠ»ΠΈ
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ»ΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ
- Retrieve the commit hash of the initial revision
- Deploying git tracked subfolder to gh-pages
- Adding a project to repo using subtree
- Get latest changes in your repo for a linked project using subtree
- ΠΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΡ Π² ΡΠ°ΠΉΠ» (ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ)
- ΠΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΡ master
- Ignore one file on commit (e.g. Changelog)
- Π‘ΠΏΡΡΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ
- Show changes using common diff tools
- Donβt consider changes for tracked file
- Undo assume-unchanged
- ΠΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»
- Restore file to a specific commit-hash
- Check if the change was a part of a release
- Squash fixup commits normal commits
- ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
- Π‘ΡΠ°ΡΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
- Count unpacked number of objects and their disk consumption
- Prune all unreachable objects from the object database
- Instantly browse your working repository in gitweb
- ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ» ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅
- ΠΠΎΠΈΡΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ Π±Π°Π³ΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π² ΠΈΡ ΠΏΠΎ Π΄Π°ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
- Find lines matching the pattern (regex or string) in tracked files
- ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π²Π΅ΡΠΊΠ΅
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΌΠ΅ΡΠΊΡ
- Apply commit from another repository
- ΠΠ°ΠΉΡΠΈ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° Π΄Π²ΡΡ Π²Π΅ΡΠΎΠΊ
- ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π°Π²ΡΠΎΡΠ°, Π²ΡΠ΅ΠΌΡ ΠΈ Ρ Π΅Ρ-ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΉΠ»Π°
- ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π°Π²ΡΠΎΡΠ°, Π²ΡΠ΅ΠΌΡ ΠΈ Ρ Π΅Ρ-ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΡΡΠΎΠΊ
- Show a Git logical variable
- Preformatted patch file
- ΠΠΎΠΊΠ°Π·Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
- Generates a summary of pending changes
- Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
git checkout -b <branch-name>
Alternatives:
git branch <branch-name> && git checkout <branch-name>
git checkout --orphan <branch-name>
git checkout -
git branch -a
git branch -r
ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π²Π΅ΡΠΊΠΈ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ), Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π½ΠΈΡ
git branch -vv
git branch -m <new-branch-name>
Alternatives:
git branch -m [<old-branch-name>] <new-branch-name>
git branch -d <local-branch-name>
git push origin --delete <remote-branch-name>
Alternatives:
git push origin :<remote-branch-name>
git rev-parse --abbrev-ref HEAD
git checkout master && git branch --no-merged
git branch --merged master
git rebase master feature && git checkout master && git merge -
git branch --merged master | grep -v '^\*' | xargs -n 1 git branch -d
Alternatives:
git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d # will not delete master if master is not checked out
ΠΠ°ΠΉΡΠΈ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Ρ Π΅ΡΠ΅ΠΌ
git branch -a --contains <commit-ish>
Alternatives:
git branch --contains <commit-ish>
git branch -u origin/mybranch
git clean -f
ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
git clean -f -d
Alternatives:
git clean -df
git clean -X -f
git clean -n
git clean -fd --dry-run
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ git. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ» ΠΈ Π·Π°ΠΊΡΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ -m
(--message
)
git commit --amend
# ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ -m
git commit --amend -m "New message"
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ
git commit --amend --no-edit
git commit --amend --no-edit --author='Author Name <[email protected]>'
git commit --amend --reset-author --no-edit
git commit --only <file_path>
git commit --no-verify
Alternatives:
git commit -n
git commit --fixup <SHA-1>
git config --list
git config [--global] --edit
git config --global core.editor '$EDITOR'
ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅
git config core.fileMode false
git config --global core.ignorecase false
git config --global help.autocorrect 1
git config --global color.ui false
git config --global <specific command e.g branch, diff> <true, false or always>
git config --global --unset <entry-name>
git config --global rerere.enabled 1
ΠΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git config --global pull.rebase true
Alternatives:
#git < 1.7.9
git config --global branch.autosetuprebase always
git config --global alias.<handle> <command>
git config --global alias.st status
git diff
ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΡΠ°ΠΌ)
git diff HEAD
git diff --cached
Alternatives:
git diff --staged
git diff --word-diff
git diff --name-only --diff-filter=U
git diff --name-only | uniq | xargs $EDITOR
git diff-tree --no-commit-id --name-only -r <commit-ish>
git add -i
git add -p
git reset HEAD <file-name>
git reset HEAD
git log --since='FEB 1 2017' --until='FEB 14 2017'
git log --no-merges --raw --since='2 weeks ago'
Alternatives:
git whatchanged --since='2 weeks ago'
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠ³ΡΡΠΏΠΈΡΠΎΠ²Π°Π² ΠΈΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π°Π²ΡΠΎΡΠ°
git shortlog
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈΡΠΊΠ»ΡΡΠΈΠ² ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΡΠ°
git log --perl-regexp --author='^((?!excluded-author-regex).*)
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½)
git log --follow -p -- <file_path>
git log --first-parent
git log --branches --not --remotes
Alternatives:
git log @{u}..
git cherry -v
git log --no-merges --stat --reverse master..
git log branch-1 ^branch-2
git log --show-signature
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»/ΡΠ΄Π°Π»ΠΈΠ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
git log --author='Your Name Here' --pretty=tformat: --numstat | gawk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s removed lines: %s total lines: %s
", add, subs, loc }' -
Alternatives:
git log --author='Your Name Here' --pretty=tformat: --numstat | awk '{ add += <!-- @doxie.inject start -->; subs += <!-- @doxie.inject end -->; loc += <!-- @doxie.inject start --> - <!-- @doxie.inject end --> } END { printf "added lines: %s, removed lines: %s, total lines: %s
", add, subs, loc }' - # on Mac OSX
git log --all --grep='<given-text>'
git log --show-notes='*'
git log --pretty=oneline --graph --decorate --all
Alternatives:
gitk --all
git log master..<branch-name> --oneline | tail -1
Π‘Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ feature Ρ master, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ² Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²Π΅ΡΠΊΠΈ feature Π² ΠΎΠ΄ΠΈΠ½
ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ.
git merge feature --squash
ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π² ΠΈΡΡΠΎΡΠΈΡ (force push)
git push --force
Alternatives:
git push -f
git push --force-with-lease <remote-name> <branch-name>
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HEAD~1
, HEAD~2
ΠΈ Ρ.Π΄. Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
git show HEAD
git show <commit-ish>
git stash
Alternatives:
git stash save
Π‘ΠΏΡΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ
git stash -u
Alternatives:
git stash --include-untracked
Π‘ΠΏΡΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅
git stash --keep-index
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡΡΡΡ
git stash -p
git stash list
ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΏΡΡΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ°
git stash pop
Alternatives:
git stash apply stash@{0} && git stash drop stash@{0}
ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΏΡΡΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡ ΠΈΠ· ΡΡΠ΅ΠΊΠ°
git stash apply <stash@{n}>
git checkout <stash@{n}> -- <file_path>
Alternatives:
git checkout stash@{0} -- <file_path>
git stash clear
Alternatives:
git stash drop <stash@{n}>
git tag <tag-name>
git push --tags
git tag -d <tag-name>
git push origin :refs/tags/<tag-name>
Alternatives:
git push origin :<tag-name>
git push -d origin <tag-name>
git help everyday
git help -g
git clone -b <branch-name> --single-branch https://github.com/user/repo.git
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΡΠΊΠ°Π·Π°Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
git clone https://github.com/user/repo.git --depth 1
git clone repo.bundle <repo-dir> -b <branch-name>
git config --global alias.undo '!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f'
ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΊ Π½ΠΈΠΌ
git fetch --all && git reset --hard origin/master
git fetch -p
Alternatives:
git remote prune origin
git fetch origin pull/<id>/head:<branch-name>
Alternatives:
git pull origin pull/<id>/head:<branch-name>
git fetch origin master:refs/remotes/origin/mymaster
git ls-tree --name-only -r <commit-ish>
git update-ref -d HEAD
git describe --tags --abbrev=0
git revert <commit-ish>
git revert -m 1 <commit-ish>
git reset <commit-ish>
git cherry -v master
git remote
Alternatives:
git remote show
git remote set-url origin <URL>
git ls-remote git://git.kernel.org/pub/scm/git/git.git
git remote add <remote-nickname> <remote-url>
curl http://git.io/vfhol > ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc
ΠΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cherry-pick
git checkout <branch-name> && git cherry-pick <commit-ish>
git checkout -- <file_name>
git ls-files -t
git ls-files --others
git ls-files --others -i --exclude-standard
git worktree add -b <branch-name> <path> <start-point>
git worktree add --detach <path> HEAD
Π£Π΄Π°Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΈΠ· git, ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ
git rm --cached <file_path>
Alternatives:
git rm --cached -r <directory_path>
git submodule foreach git pull
Alternatives:
git submodule update --init --recursive
git submodule update --remote
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ»ΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ
git cherry -v master
Alternatives:
git cherry -v master <branch-to-be-merged>
git rev-list --reverse HEAD | head -1
Alternatives:
git rev-list --max-parents=0 HEAD
git log --pretty=oneline | tail -1 | cut -c 1-40
git log --pretty=oneline --reverse | head -1 | cut -c 1-40
git subtree push --prefix subfolder_name origin gh-pages
git subtree add --prefix=<directory_name>/<project_name> --squash [email protected]:<username>/<project_name>.git master
git subtree pull --prefix=<directory_name>/<project_name> --squash [email protected]:<username>/<project_name>.git master
git bundle create <file> <branch-name>
git archive master --format=zip --output=master.zip
git update-index --assume-unchanged Changelog; git commit -a; git update-index --no-assume-unchanged Changelog
git rebase --autostash
git difftool -t <commit1> <commit2> <path>
git update-index --assume-unchanged <file_name>
git update-index --no-assume-unchanged <file_name>
git checkout <deleting_commit>^ -- <file_path>
git checkout <commit-ish> -- <file_path>
git name-rev --name-only <SHA-1>
git rebase -i --autosquash
git check-ignore *
git status --ignored
git count-objects --human-readable
git gc --prune=now --aggressive
git instaweb [--local] [--httpd=<httpd>] [--port=<port>] [--browser=<browser>]
git show <branch_name>:<file_name>
git rebase --interactive HEAD~2
git bisect start # Search start
git bisect bad # Set point to bad commit
git bisect good v2.6.13-rc2 # Set point to good commit|tag
git bisect bad # Say current state is bad
git bisect good # Say current state is good
git bisect reset # Finish search
ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π² ΠΈΡ ΠΏΠΎ Π΄Π°ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/
git grep --heading --line-number 'foo bar'
git rev-list --count <branch-name>
git notes add -m 'Note on the previous commit....'
git --git-dir=<source-dir>/.git format-patch -k -1 --stdout <SHA1> | git am -3 -k
diff -u <(git rev-list --first-parent BranchA) <(git rev-list --first-parent BranchB) | sed -ne 's/^ //p' | head -1
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π°Π²ΡΠΎΡΠ°, Π²ΡΠ΅ΠΌΡ ΠΈ Ρ Π΅Ρ-ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΉΠ»Π°
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΡΠ»Π°Π³ΠΎΠΌ -s
Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π°Π²ΡΠΎΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°
git blame <file-name>
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π°Π²ΡΠΎΡΠ°, Π²ΡΠ΅ΠΌΡ ΠΈ Ρ Π΅Ρ-ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΡΡΠΎΠΊ
git blame <file-name> -L <start>,<end>
git var -l | <variable>
git format-patch -M upstream..topic
git rev-parse --show-toplevel
git request-pull v1.0 https://git.ko.xz/project master:for-linus
git ls-files --others -i --exclude-standard | xargs zip untracked.zip