Git ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ: 24. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ
24. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ
Π¦Π΅Π»ΠΈ
- ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
ΠΠΎΡΠ° ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°Ρ hello world Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅ΡΠΊΠ΅ master.
01 Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²Π΅ΡΠΊΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π½Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Β«styleΒ».
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git checkout -b style git status
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: git checkout -b <ΠΈΠΌΡΠ²Π΅ΡΠΊΠΈ>
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΊΠ°ΡΠΎΠΌ Π΄Π»Ρ git branch <ΠΈΠΌΡΠ²Π΅ΡΠΊΠΈ>
Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ΄Π΅Ρ git checkout <ΠΈΠΌΡΠ²Π΅ΡΠΊΠΈ>
.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git status
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² Π²Π΅ΡΠΊΠ΅ Β«styleΒ».
02ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» ΡΡΠΈΠ»Π΅ΠΉ style.css
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
touch lib/style.css
Π€Π°ΠΉΠ»: lib/style.css
h2 { color: red; }
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add lib/style.css git commit -m "Added css stylesheet"
03ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» hello.html, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈ style.css.
Π€Π°ΠΉΠ»: lib/hello.html
<!-- Author: Alexander Shvets ([email protected]) --> <html> <head> <link type="text/css" rel="stylesheet" media="all" href="style.css" /> </head> <body> <h2>Hello, World!</h2> </body> </html>
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add lib/hello.html git commit -m "Hello uses style.css"
04ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ index.html
ΠΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΠΉΠ» index.html, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» style.css
Π€Π°ΠΉΠ»: index.html
<html> <head> <link type="text/css" rel="stylesheet" media="all" href="lib/style.css" /> </head> <body> <iframe src="lib/hello.html" /> </body> </html>
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add index.html git commit -m "Updated index.html"
05 ΠΠ°Π»Π΅Π΅
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ style Ρ 3 Π½ΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ.
Git — Book
2nd Edition (2014)
Download Ebook
The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>
- 1.1
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ - 1.2
ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ Git - 1.3
ΠΡΠ½ΠΎΠ²Ρ Git - 1.4
ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° - 1.5
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Git - 1.6
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Git - 1.7
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠΌΠΎΡΡ? - 1.8
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- 1.1
- 2.1
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ - 2.2
ΠΠ°ΠΏΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ - 2.3
ΠΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² - 2.4
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠΌΠ΅Π½Ρ - 2.5
Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ - 2.6
Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ - 2.7
ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ Π² Git - 2.8
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- 2.1
- 3.1
Π Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ - 3.2
- 3.1
ΠΠ΅ΡΠΊΠΈ. Git branch. Π£ΡΠΎΠΊ 7
Π£ΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²Π΅ΡΠΊΠΈ, Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ ΠΈ Π½Π°ΡΡΠΈΠΌΡΡ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ
ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ
ΠΠΎΠ½ΡΠΏΠ΅ΠΊΡ ΡΡΠΎΠΊΠ°
ΠΡΠ°ΡΠΊΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡ.
ΠΠ΅ΡΠΊΠΈ — Π³Π»Π°Π²Π½Π°Ρ ΡΠΈΡΠΊΠ° git
Git ΡΡΠ°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°ΡΡ Π²Π΅ΡΠΊΠΈ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ°Π±ΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ. ΠΡ ΡΠΈΠ΄ΠΈΠΌ ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π½ΠΎΠ²ΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π° ΡΠ°ΠΉΡ ΡΠ°Π·Π΄Π΅Π» Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ.
Π£ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ ΡΡΠΈΠ»ΠΈ, ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ, Π½ΠΎ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΅ΡΠ΅ Π΄Π°Π»Π΅ΠΊΠΎ.
ΠΠ½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΏΡΠΈΠ»Π΅ΡΠ°Π΅Ρ Π·Π°Π΄Π°ΡΠ° — ΡΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ Π±Π°Π³Ρ Π² Π²Π΅ΡΡΡΠΊΠ΅ ΡΠ°ΠΏΠΊΠΈ. ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΈΠ½ΠΈΡΡ Π±Π°Π³Ρ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π£ Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΡΠ΅ΠΉ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° — ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΡΠΈ ΠΈ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΡΠΈΠ½ΠΊΠΎΠΉ ΡΡΠΎΡΠ½ΠΎΠΉ Π±Π°Π³ΠΈ Π½Π΅Π»ΡΠ·Ρ. ΠΠ°ΠΊ Π±ΡΡΡ?
ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π’ΠΎ Π΅ΡΡΡ Π²Π·ΡΡΡ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΡΠ°, Π° Π΄Π΅Π»Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π½Π΅ Π±ΠΎΡΡΡ ΠΏΠΎΠ»ΠΎΠΌΠ°ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠ΄.
Π Π΅ΡΠ΅ ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (Π΄Π»Ρ ΠΏΡΠ°Π²ΠΊΠΈ Π±Π°Π³ΠΈ) ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΡΠΈ (Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π½Π΅ΠΉ)
ΠΠΎΠ³Π΄Π° Ρ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ git, ΡΠΎ ΡΠ΅ΡΠ°Π» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π°ΡΡ
ΠΈΠ²ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠ²Π΅Π» ΡΠ°ΠΉΡ Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ — ΡΠ΄Π΅Π»Π°Π» Π°ΡΡ
ΠΈΠ².
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» Π½ΠΎΠ²ΡΡ ΡΠΈΡΡ — ΡΠ΄Π΅Π»Π°Π» Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π°ΡΡ
ΠΈΠ². ΠΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΊΠΈ Π±Π°Π³ΠΈ —
ΡΠΎΡ
ΡΠ°Π½ΠΈΠ» ΡΠ΅ΠΊΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Π² Π½ΠΎΠ²ΡΠΉ «Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ» Π°ΡΡ
ΠΈΠ², Π²ΡΠ±ΡΠ°Π» ΡΡΠ°ΡΡΠΉ «ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ» Π°ΡΡ
ΠΈΠ², ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π», ΠΏΠΎΡΠΈΠ½ΠΈΠ» ΡΠ°ΠΌ Π±Π°Π³Ρ, Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π²ΠΎ «Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ» Π°ΡΡ
ΠΈΠ².
Π‘Ρ
Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Ρ, Π½ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΡ ΠΈ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²:
- Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°ΡΡ ΠΈΠ²Ρ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ
- ΡΠ»ΠΎΠΆΠ½ΠΎ «ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ» ΠΌΠ΅ΠΆΠ΄Ρ Π°ΡΡ ΠΈΠ²Π°ΠΌΠΈ
- ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π°ΡΡ ΠΈΠ²Π°ΠΌΠΈ
- Π»Π΅Π³ΠΊΠΎ ΡΡΠΎ-ΡΠΎ Π½Π°ΠΏΡΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΡΡΡ — Π²ΡΠ΅ ΠΌΡ Π»ΡΠ΄ΠΈ
ΠΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ git ΡΠ΅ΡΠ°Π΅Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π²Π΅ΡΠΎΠΊ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Π΅ΡΠΊΠΈ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΡΠ΅Π²Π°. ΠΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΡΠ²ΠΎΠ» — ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠΎΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ»ΠΎΠΆΠ΅Π½ Π½Π° Π±ΠΎΠ΅Π²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΡΠΎΡ ΡΡΠ²ΠΎΠ» Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ
git Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ — Π²Π΅ΡΠΊΠΎΠΉ master. ΠΡΠ° Π²Π΅ΡΠΊΠ° Π΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π° Π² Π»ΡΠ±ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΌΡ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Π²Π΅ΡΠΊΡ master. ΠΡΠ΅, ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΡΠΎΠΊΠ°Ρ
, ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½ΠΎΠ²ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ master. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ «ΠΎΡΠ²Π΅ΡΠ²ΠΈΡΡΡΡ ΠΎΡ ΠΌΠ°ΡΡΠ΅ΡΠ°».
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠ°ΡΡΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Ρ
ΠΎΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° — Π³Π»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°.
Π’ΠΎ Π΅ΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ³ΠΎΠ΄Π½ΠΎ Π»ΠΎΠΌΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΠΎΡΡΡΠ°Π΄Π°Π΅Ρ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΌΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΡΠ°Π²ΠΊΠΈ Π±Π°Π³ΠΈ, Π½Π΅ Π±ΠΎΡΡΡ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ Ρ Π½ΠΎΠ²ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ.
ΠΠΎΡΠΈΠ½ΠΈΠΌ Π±Π°Π³Ρ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅, Π²ΡΠ»ΠΎΠΆΠΈΠΌ ΠΏΡΠ°Π²ΠΊΡ Π½Π° Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΡ ΠΈ ΡΠ°ΠΊ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π½Π΅ΠΉ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ git Ρ
ΡΠ°Π½ΠΈΡ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠΎ ΠΎΠ½ Ρ
ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²ΡΠ΅Ρ
Π²Π΅ΡΠΎΠΊ ΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ. Π’ΠΎ Π΅ΡΡΡ Π²Π΅ΡΠ½ΡΠ²ΡΠΈΡΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ Π½ΠΈΠΌ.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½ΠΎΠ²ΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π»ΠΈΡΡ Π½Π° Π±ΠΎΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΡ.
ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ»ΠΈΡΡ Π²Π΅ΡΠΊΡ Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΈΠ»ΠΈ Π·Π°Π»ΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΈΠ»ΠΈ ΡΠΌΠ΅ΡΠ΄ΠΆΠΈΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅ ΠΌΠ΅ΡΠ΄ΠΆΠ° Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΠΈ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅, Π½ΠΎ Π½Π΅ Π±ΡΠ»ΠΈ Π² Π½Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ (ΠΏΡΠ°Π²ΠΊΠ° Π±Π°Π³ΠΈ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅).
Π’ΠΎ Π΅ΡΡΡ Π½Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ°Π²ΠΊΠΈ Π±Π°Π³ΠΈ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ. ΠΡΠΈ ΠΌΠ΅ΡΠ΄ΠΆΠ΅ git Π½Π°Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ «ΠΏΠΎΠ»ΠΎΠΆΠΈΡ» ΠΏΠΎΠ²Π΅ΡΡ
ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π² ΠΌΠ°ΡΡΠ΅ΡΠ΅, Π½Π΅ ΡΡΠΈΡΠ°Ρ ΡΡΠ°ΡΡΠΉ.
Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ Π½Π°Π³Π»ΡΠ΄Π½Π΅Π΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎ. Π Π² ΡΠ΅ΠΊΡΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ.
ΠΠ΅ΡΠΊΠ° master
ΠΡΠ΅ ΡΠ°Π· Π·Π°ΠΊΡΠ΅ΠΏΠΈΠΌ. ΠΠ΅ΡΠΊΠ° master — ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ½Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²Π΅Π΄Π΅Π½ΠΈΡ Π²Π΅ΡΠΎΠΊ, Π½ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ master — Π½Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π²Π΅ΡΠΊΠ°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ²Π΅ΡΠ²Π»ΡΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
$ git checkout -b news
Switched to a new branch 'news'
Π’Π°ΠΊ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ news, ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² Π½Π΅ΠΉ Π±Π»ΠΎΠΊ Π½ΠΎΠ²ΠΎΡΡΠ΅ΠΉ.
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° checkout
$ git checkout news
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ — git Π·Π° ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΠΈΡ
ΠΠΎΡ ΡΡΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅
$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
index.html
Please, commit your changes or stash them before you can switch branches.
Aborting
ΠΠΎΡΡΠΎΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²Π΅ΡΠΊΠ΅, ΠΈΠ»ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΠ΅ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ — Π° ΡΠΆΠ΅ ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ΡΡ.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ°Π½Π½ΡΠΌ, Π½ΠΎ ΡΠ°ΠΊ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΊΠΎΠ΄.
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π²Π΅ΡΠΊΠΈ
$ git branch
master
* news
ΠΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
Π²Π΅ΡΠΎΠΊ. ΠΠ²Π΅Π·Π΄ΠΎΡΠΊΠ° Ρ news ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌΡΡ.
ΠΠΎΠΌΠΌΠΈΡΠΈΠΌ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
ΠΠΎΠΌΠΌΠΈΡΡ Π² Π²Π΅ΡΠΊΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅. ΠΠ΅Π»Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
, ΠΏΠΎΡΠΎΠΌ git add, ΠΏΠΎΡΠΎΠΌ git commit -m ‘commit message’.
ΠΠ°ΠΊ Π·Π°ΠΏΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
ΠΡΠΏΠΎΠΌΠ½ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΡΡΠΈΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅
$ git push origin master
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΡ ΠΏΡΡΠΈΠΌ ΠΈ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΌΠ΅ΡΡΠΎ master ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅
$ git push origin news
ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅Ρ, ΡΠΎ ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ. ΠΡΠ»ΠΈ ΠΌΡ Π΅Π΅ ΡΠΆΠ΅ ΠΏΡΡΠΈΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅, ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΏΡΠ°Π²ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΡ
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ Π²ΡΠ±ΡΠ°Π»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ Ρ
ΠΎΡΠΈΠΌ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ. ΠΠ°Ρ
ΠΎΠ΄ΡΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
$ git branch -m block-news
ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ news Π² block-news. Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ
$ git branch
* block-news
master
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΠΈΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, ΡΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π² github, ΠΏΠΎΡΠ²ΠΈΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΠΊΠ° block-news, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΡΠ°ΡΠ°Ρ news.
Π§ΡΠΎΠ±Ρ Π½Π΅ Π·Π°ΡΠΎΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΡΠ°ΡΡΡ Π²Π΅ΡΠΊΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Ρ ΡΠ΅Π±Ρ, ΡΠ°ΠΊ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ
Π£Π΄Π°Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git branch -d branch_name. ΠΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΉΡΠΈ Π½Π΅ ΡΠ°ΠΊ
$ git branch -d block-news
error: Cannot delete the branch 'block-news' which you are currently on.
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΡΡΠΎ — ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² Π½Π΅ΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌΡΡ. Π‘Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π»ΡΡΠΈΡΡΡΡ Π² ΠΌΠ°ΡΡΠ΅Ρ
$ git checkout master
$ git branch -d block-news
error: The branch 'block-news' is not fully merged.
If you are sure you want to delete it, run 'git branch -D block-news'.
ΠΠΏΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° — Π·Π΄Π΅ΡΡ git Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΉ Π²Π΅ΡΠΊΠ΅ Π΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π·Π°Π»ΠΈΡ Π² ΠΌΠ°ΡΡΠ΅Ρ. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π²Π΅ΡΠΊΠΈ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΡΡ.
ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΠ²ΠΎΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ
ΠΈ Π²Π΅ΡΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ½Π°, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»Π°Π³Π° -d Π½ΡΠΆΠ΅Π½ -D
$ git branch -D block-news
Deleted branch block-news (was cb38a55).
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΎ Π±Π΅Π· Π²ΠΎΠΏΡΠΎΡΠΎΠ².
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ Π² PhpStorm
Π ΠΏΡΠ°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ³Π»Ρ Π΅ΡΡΡ ΠΏΡΠ½ΠΊΡ «Git:master». Π’Π°ΠΌ ΠΏΠΈΡΠ΅ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ. Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΊΠ»ΠΈΠΊΠ½ΡΡΡ Π½Π° ΡΡΠΎΡ ΠΏΡΠ½ΠΊΡ ΠΈ Π²ΡΠ±ΡΠ°ΡΡ New Branch.
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ, Π²ΡΠ±ΡΠ°ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Local Branches Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΠΊΡ ΠΈ Checkout. Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ Delete ΠΈΠ»ΠΈ Rename.
ΠΠ°Π³Π»ΡΠ΄Π½ΠΎ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠ΅
Π Π°Π·Π΄Π΅Π» Remote Branches ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅
Π§ΡΠΎ ΠΌΠΎΠ³Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°ΡΡ
- Π½Π°ΡΡΠΈΡΠ΅ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΠ°ΠΌΠΈ
- ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π²Π΅ΡΠΎΠΊ
- Π½Π°Π·ΡΠ²Π°ΠΉΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΏΠΎ ΠΎΠ±ΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ
- ΠΏΡΡΡΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΏΠΎΡΠ°ΡΠ΅, ΠΈΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΡΠ΄Π°Π»ΠΈΡΡ
ΠΠΎΠ½ΡΠ² ΠΌΠ°Π³ΠΈΡ Π²Π΅ΡΠΎΠΊ, ΠΌΡ ΡΠΆΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π±Π΅Π· git. ΠΡΠ±ΠΎΠΉ, Π΄Π°ΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
Π ΡΠ°Π±ΠΎΡΠ° Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ git ΠΈΠ· ΠΏΡΠΈΠΊΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠ»Π·Ρ Π² Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΡ.
Π Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΠΠΈΠ°Π½Ρ. ΠΡΠΎΡΠ²Π΅ΡΠ»Π΅Π½ΠΈΠ΅. ΠΠ°Π·Π°Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π½Π΅Ρ
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ Π΄ΠΎ Π²ΡΡΡΠ΅ΡΠΈ!
ΠΡΠ΅ ΡΡΠΎΠΊΠΈ ΠΊΡΡΡΠ°
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ…
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π² GIT
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ β ΡΡΠΎ ΡΡΡΠΈΠ½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² GIT. ΠΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ?
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡΠ° ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
git checkout master
git branch feature/new-branch
git checkoutΒ feature/new-branch
| git checkout master git branch feature/new-branch git checkoutΒ feature/new-branch |
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ Π½Π° Π²Π΅ΡΠΊΡ master, Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½Π° Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡΒ feature/new-branch. Π’ΡΠ΅ΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ Π½Π° Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π² Π΅Ρ ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π£Π·Π½Π°ΡΡ Π³Π΄Π΅ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ (ΠΊΠ°ΠΊΠ°Ρ Π²Π΅ΡΠΊΠ° Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ±ΡΠ°Π½Π° Π² GIT), ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
ΠΈΠ»ΠΈ
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΎΠΊ, Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ. ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ°ΡΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΊΠ°ΠΆΠ΅Ρ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΠΊΠ΅ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ.
ΠΠΎΠΆΠ½ΠΎ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΡ checkout:
git checkout -b feature/new-branch master
| git checkout -b feature/new-branch master |
ΠΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π²Π΅ΡΠΊΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ master, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ git ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π²Π΅ΡΠΊΡ.
git
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² 30.07.2018 15:55 ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° Π² ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
ΠΠ°Π»ΠΎ Π±ΡΠΊΠ°ΡΡ? Π§ΠΈΡΠ°ΠΉΡΠ΅ Π΅ΡΡΠΎ !
Π’ΠΎΠ½ΠΊΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² .gitignore
ΠΡΠ»Ρ 17, 2017 Π³.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ .gitignore ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΠ°Π½ΠΈΡΡΠ΅ΠΌΡΡ
GIT, Π²ΡΠ΅ ΡΠΎ ΡΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ·Π΅Ρ-ΡΠ°ΠΉΠ»Ρ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π°ΡΡ
ΠΈΠ²Ρ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ Ρ.ΠΏ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ Π½Π°ΡΡΠΎΠ΅ΠΊ Π²Β .gitignore. …
Π§ΠΈΡΠ°ΡΡ
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ Git β ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ, Π²ΡΠΏΠΈΡΠΊΠ° Π²Π΅ΡΠΎΠΊ Ρ githubPerl, Python β Π±Π»ΠΎΠ³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° | Perl, Python
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ git. ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ: ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ Π² git, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΊΠ°ΠΊ Π²ΡΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΠΊΡ Ρ github ΠΈ Ρ.ΠΏ. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ git Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ .
Git β ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ. ΠΡΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ git ΠΎΡ svn. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ, ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π² svn β ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²Π΅ΡΠΊΠΈ, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π² git Π΅ΡΡΡ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Π² svn β git push ΠΈ git pull.
git push β Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. git pull β Π²Π»ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ. ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° SSH.
Git ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΡΠΏΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² β GitHub, SourceForge, BitBucket ΠΈ Google Code. Π£Π΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°ΠΉΡΠ° http://www.stickycomics.com/where-did-you-meet/
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ git Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ . Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΠ»ΠΈ Π²ΡΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΠΊΡ, ΠΈ Ρ.ΠΏ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΡ Π΄Π»Ρ ΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠ° π Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΎΡΠ²Π»Π΅ΠΊΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π³ΠΎΠ»ΠΎΠ²Π° Π·Π°Π½ΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ.
Β
ΠΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ
ΠΠ°ΠΊ Π²ΡΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ github
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° project_name, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Π΅.
- ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git clone [email protected]:devlabuser/sharp.git ./
git clone [email protected]:devlabuser/sharp.git ./
Β«./Β» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½ΡΠΆΠ½ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ Π²ΡΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ master. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΈΠ»ΠΈ Π²ΡΠΏΠΈΡΡΠ²Π°ΡΡ Ρ github ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅.
Β
ΠΠ°ΠΊ Π²ΡΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΠΊΡ Ρ github
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«checkoutΒ» ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΈΡΠ°ΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π²Π΅ΡΠΊΡ Ρ github:
$ git checkout -b dev origin/dev
$ git checkout -b project_branch origin/project_branch
| $ git checkout -b dev origin/dev $ git checkout -b project_branch origin/project_branch |
ΠΠ»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅:
$ git checkout —track origin/production
| $ git checkout —track origin/production |
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»Π°, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, Π²ΡΠ΄Π°Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ Π½Π΅ΠΉ Π½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
git checkout -b project_branch
git pull origin project_branch
| git checkout -b project_branch git pull origin project_branch |
Π’.Π΅. ΡΠ½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π² Π½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π½Π° github.
Β
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ:
$ git checkout -b dev
Switched to a new branch ‘dev’
$ git checkout -b dev
Switched to a new branch ‘dev’
- ΠΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ Π΅Π΅ Π½Π° github:
$ git push origin dev
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:devlabuser/sharp.git
* [new branch] dev -> dev
$ git push origin dev
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:devlabuser/sharp.git
* [new branch]Β Β Β Β Β Β dev -> dev
Β
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ Π² git
$ git checkout project2_branch
| $ git checkout project2_branch |
ΠΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ°ΠΉΠ», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ Π΅Π³ΠΎ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°:
$ git checkout readme.txt
| $ git checkout readme.txt |
Β
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ
ΠΠΎΠΌΠ°Π½Π΄Π° Β«branchΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΎΠΉ:
$ git branch
* dev
master
| $ git branch * dev Β Β master |
Β
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ commit
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π² Π½Π΅ΠΉ Π½ΡΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
- Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ
ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
- ΠΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π² Π½Π΅Π³ΠΎ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
$ git add <file1> <file2> …
$ git add <file1> <file2> …
ΠΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ:
$ git rm <file1> <file2> …
$ git rm <file1> <file2> …
- ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ:
$ git commit -m ‘ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ’
$ git commit -m ‘ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ’
- ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ β dev ΠΈ master. Dev β ΠΎΠ±ΡΠ°Ρ Π²Π΅ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ². ΠΠΌΠ΅Π½Π½ΠΎ Π² Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠΌ ΡΠ΅Π»ΠΈΠ·ΠΎΠΌ. Master β Π²Π΅ΡΠΊΠ° Π΄Π»Ρ Π²ΡΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π° Π±ΠΎΠ΅Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π°Π΄ΠΎ Π²Π»ΠΈΡΡ Π² Π½Π°ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ dev ΠΈ master:
$ git pull origin dev
$ git pull origin master
$ git pull origin dev
$ git pull origin master
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ° Π²Π΅ΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΏΠ΅Π»Π° Π²Π½Π΅ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π²Π΅ΡΠΊΡ dev:
- ΠΠ»ΠΈΠ²Π°Π΅ΠΌ Π² dev ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
$ git merge project_branch
$ git merge project_branch
- ΠΠ°Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π²Π΅ΡΠΊΠΈ dev Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ:
$ git push origin dev
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 286 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:devlab/sharp.git
d528335..9a452d9 dev -> dev
$ git push origin dev
Β
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 286 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:devlab/sharp.git
Β Β d528335..9a452d9Β Β dev -> dev
push ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΡΠΎΠΉΡΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ origin/dev ΠΎΠ±ΠΎΠ³Π½Π°Π» Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡ.
Β
ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ git Π²ΡΠ΄Π°Π» ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΎΠΌΠ°Π½Π΄Π° git status Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ΅:
$ git status
…
Unmerged paths:
(use «git add <file>…» to mark resolution)
both modified: root/css/styles.css.gz
$ git diff root/css/styles.css.gz
diff —cc root/css/styles.css.gz
index 970c721,bc6d170..0000000
Binary files differ
| $ git status … Unmerged paths: Β Β (use «git add <file>…» to mark resolution) Β Β Β Β Β Β Β Β Β both modified:Β Β Β Β Β Β root/css/styles.css.gz Β Β $ git diff root/css/styles.css.gz diff —cc root/css/styles.css.gz index 970c721,bc6d170..0000000 Binary files differ |
ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ (ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°ΡΡ ΠΈΠ²Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ.ΠΏ.), ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ β ΠΊΠ°ΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ: Π²Π°ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ· Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π²Π΅ΡΠΊΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ°ΠΉΠ»Π°, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git checkout —ours binary.dat
git add binary.dat
| git checkout —ours binary.dat git add binary.dat |
ΠΡΠ»ΠΈ ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²Π΅ΡΡΠΈΡ ΠΈΠ· Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π²Π΅ΡΠΊΠΈ:
git checkout —theirs binary.dat
git add binary.dat
| git checkout —theirs binary.dat git add binary.dat |
Β«oursΒ» β ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Β«Π½Π°ΡΒ», Β«theirsΒ» β ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Β«ΠΈΡ Β».
Β
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git log β ΠΏΡΠΎΡΠΌΠΎΡΡ Π»ΠΎΠ³ΠΎΠ².
$ git log
commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: DevLab User <[email protected]>
Date: Wed Jul 31 18:35:47 2013 +0400
first commit
commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: DevLab User <[email protected]>
Date: Wed Jul 31 06:24:57 2013 -0700
Initial commit
| $ git log commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a Author: DevLab User <[email protected]> Date:Β Β Wed Jul 31 18:35:47 2013 +0400 Β Β Β Β Β first commit Β commit d528335724dfc15461996ed9d44d74f23ce6a075 Author: DevLab User <[email protected]> Date:Β Β Wed Jul 31 06:24:57 2013 -0700 Β Β Β Β Β Initial commit |
ΠΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ:
git log —pretty=oneline
9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a first commit
d528335724dfc15461996ed9d44d74f23ce6a075 Initial commit
| git log —pretty=oneline Β 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a first commit d528335724dfc15461996ed9d44d74f23ce6a075 Initial commit |
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ git log ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΡΠΈΠΊ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ:
$ git log | grep -e «first»
first commit
| $ git log | grep -e «first» Β Β Β Β first commit |
ΠΠΎΠΌΠ°Π½Π΄Π° Β«git showΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅:
$ git show 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
commit 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
Author: DevLab User <[email protected]>
Date: Wed Jul 31 18:35:47 2013 +0400
first commit
diff —git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..4add785
— /dev/null
+++ b/readme.txt
@@ -0,0 +1 @@
+Text
\ No newline at end of file
| $ git show 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a Β commit 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a Author: DevLab User <[email protected]> Date:Β Β Wed Jul 31 18:35:47 2013 +0400 Β Β Β Β Β first commit Β diff —git a/readme.txt b/readme.txt new file mode 100644 index 0000000..4add785 — /dev/null +++ b/readme.txt @@ -0,0 +1 @@ +Text \ No newline at end of file |
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΈ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
$ git blame README.md
^d528335 (devlabuser 2013-07-31 06:24:57 -0700 1) sharp
^d528335 (devlabuser 2013-07-31 06:24:57 -0700 2) =====
| $ git blame README.md Β ^d528335 (devlabuser 2013-07-31 06:24:57 -0700 1) sharp ^d528335 (devlabuser 2013-07-31 06:24:57 -0700 2) ===== |
git annotate, Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ , Π³Π΄Π΅ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ:
$ git annotate readme.txt
9a452d9c (DevLab User 2013-07-31 18:35:47 +0400 1)Text
| $ git annotate readme.txt 9a452d9cΒ Β Β Β Β Β Β Β (DevLab UserΒ Β Β Β Β Β 2013-07-31 18:35:47 +0400Β Β Β Β Β Β 1)Text |
Β
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠΊΠ°Ρ
- git log β ΠΏΡΠΎΡΠΌΠΎΡΡ Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄Π΅Π»ΡΡΡ (ΡΠ°Π·Π½ΠΈΡΡ/diff), ΠΏΡΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: devlabuser <[email protected]>
Date: Wed Jul 31 18:35:47 2013 +0400
first commit
commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: devlabuser <[email protected]>
Date: Wed Jul 31 06:24:57 2013 -0700
Initial commit
commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: devlabuser <[email protected]>
Date:Β Β Wed Jul 31 18:35:47 2013 +0400
Β
Β Β Β Β first commit
Β
commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: devlabuser <[email protected]>
Date:Β Β Wed Jul 31 06:24:57 2013 -0700
Β
Β Β Β Β Initial commit
- ΠΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠΊΠ°Ρ.
- ΠΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° (ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ):
$ git reset —hard 9a452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
HEAD is now at 9a45779 first commit
$ git reset —hard 9a452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
HEAD is now at 9a45779 first commit
ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Π΅ΡΠΊΠΈ:$ git reset —hard origin/dev
HEAD is now at 9a45779 first commit
$ git reset —hard origin/dev
HEAD is now at 9a45779 first commit
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°Ρ ΡΠ΄Π΅Π»Π°Π½, ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ push Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, git ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ°ΡΡ ΡΡΠ³Π°ΡΡΡΡ, ΡΡΠΎ Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΌΠ»Π°Π΄ΡΠ΅ ΡΠ΅ΠΌ Π½Π° github ΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ pull. ΠΡΠΎ Π»Π΅ΡΠΈΡΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ:
git push -f origin master
| git push -f origin master |
Β
ΠΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ
git merge Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ.
$ git merge origin/ticket_1001_branch
| $ git merge origin/ticket_1001_branch |
git pull Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ.
$ git pull origin ticket_1001_branch
| $ git pull origin ticket_1001_branch |
git pull ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ git merge ΡΠ΅ΠΌ, ΡΡΠΎ merge ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ, Π° pull ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ β Π·Π°ΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. merge ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, pull β ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π»Π΅ΠΆΠΈΡ Π½Π° github.
Β
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
$ mkdir project_dir
$ cd project_dir
$ git init
| $ mkdir project_dir $ cd project_dir $ git init |
Β
git cherry-pick
git cherry-pick ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΊ Π΄Π΅ΡΠ΅Π²Ρ Π΄ΡΡΠ³ΠΎΠΉ.
- ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅ΠΌ Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ:
- ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅:
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
git cherry-pick eb042098a5
git cherry-pick eb042098a5
- ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅:
Β
ΠΠ°ΠΊ ΡΠ°ΡΠΊΡΠ°ΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΠ±Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ .git . ΠΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΉΠ» config .
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote «origin»]
fetch = +refs/heads/*:refs/remotes/origin/*
url = [email protected]:devlab/sharp.git
[branch «master»]
remote = origin
merge = refs/heads/master
[branch «dev»]
remote = origin
merge = refs/heads/dev
| [core] Β Β Β Β Β Β Β Β repositoryformatversion = 0 Β Β Β Β Β Β Β Β filemode = true Β Β Β Β Β Β Β Β bare = false Β Β Β Β Β Β Β Β logallrefupdates = true [remote «origin»] Β Β Β Β Β Β Β Β fetch = +refs/heads/*:refs/remotes/origin/* Β Β Β Β Β Β Β Β url = [email protected]:devlab/sharp.git [branch «master»] Β Β Β Β Β Β Β Β remote = origin Β Β Β Β Β Β Β Β merge = refs/heads/master [branch «dev»] Β Β Β Β Β Β Β Β remote = origin Β Β Β Β Β Β Β Β merge = refs/heads/dev |
Π§ΡΠΎΠ±Ρ ΡΠ°ΡΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ git, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊ [color]:
[color]
branch = auto
diff = auto
interactive = auto
status = auto
ui = auto
| [color] Β Β Β Β Β Β Β Β branch = auto Β Β Β Β Β Β Β Β diff = auto Β Β Β Β Β Β Β Β interactive = auto Β Β Β Β Β Β Β Β status = auto Β Β Β Β Β Β Β Β ui = auto |
Β
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ git
ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ Git
ΠΠΎΡ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Git
Pro Git book, written by Scott Chacon. Π ΡΡΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ Git. ΠΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ git Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ .
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ Git
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ Git
ΠΠ°ΠΊ Π²ΡΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ github
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°Β project_name, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Π΅.
- ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git clone [email protected]:devlabuser/sharp.git ./
| git clone [email protected]:devlabuser/sharp.git ./ |
- Β«./» ознаΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½ΡΠΆΠ½ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ Π²ΡΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉΒ master. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΈΠ»ΠΈ Π²ΡΠΏΠΈΡΡΠ²Π°ΡΡ ΡΒ githubΒ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅.
ΠΠ°ΠΊ Π²ΡΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΠΊΡ Ρ github
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΡΒ Β«checkout» моТно Π²ΡΠΏΠΈΡΠ°ΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π²Π΅ΡΠΊΡ Ρ github:
$ git checkout -b dev origin/dev
$ git checkout -b project_branch origin/project_branch
| $ git checkout -b dev origin/dev $ git checkout -b project_branch origin/project_branch |
ΠΠ»ΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅:
$ git checkout —track origin/production
| $ git checkout —track origin/production |
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»Π°, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, Π²ΡΠ΄Π°Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ Π½Π΅ΠΉ Π½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
git checkout -b project_branch
git pull origin project_branch
| git checkout -b project_branch git pull origin project_branch |
Π’.Π΅. ΡΠ½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π² Π½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π½Π° github.
Β
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ:
$ git checkout -b dev
Switched to a new branch ‘dev’
| $ git checkout -b dev Switched to a new branch ‘dev’ |
2. ΠΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ Π΅Π΅ Π½Π° github:
$ git push origin dev
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:devlabuser/sharp.git
* [new branch] dev -> dev
| $ git push origin dev Total 0 (delta 0), reused 0 (delta 0) To [email protected]:devlabuser/sharp.git * [new branch]Β Β Β Β Β Β dev -> dev |
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ Π² git
$ git checkout project2_branch
| $ git checkout project2_branch |
ΠΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠ°ΠΉΠ», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ Π΅Π³ΠΎ ΠΈΠ· Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°:
$ git checkout readme.txt
| $ git checkout readme.txt |
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ
ΠΠΎΠΌΠ°Π½Π΄Π°Β Β«branch» позволΡΠ΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅ΡΠΎΠΊ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΎΠΉ:
$ git branch
* dev
master
| $ git branch * dev Β Β master |
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ commit
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π² Π½Π΅ΠΉ Π½ΡΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
- Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
2. ΠΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π² Π½Π΅Π³ΠΎ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
$ git add <file1> <file2> …
| $ git add <file1> <file2> … |
ΠΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ:
$ git rm <file1> <file2> …
| $ git rm <file1> <file2> … |
3. ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ:
$ git commit -m ‘ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ’
| $ git commit -m ‘ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ’ |
4. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ β dev ΠΈ master. Dev β ΠΎΠ±ΡΠ°Ρ Π²Π΅ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ². ΠΠΌΠ΅Π½Π½ΠΎ Π² Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΡΠΌ ΡΠ΅Π»ΠΈΠ·ΠΎΠΌ. Master β Π²Π΅ΡΠΊΠ° Π΄Π»Ρ Π²ΡΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π½Π° Π±ΠΎΠ΅Π²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π°Π΄ΠΎ Π²Π»ΠΈΡΡ Π² Π½Π°ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ dev ΠΈ master:
$ git pull origin dev
$ git pull origin master
| $ git pull origin dev $ git pull origin master |
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ° Π²Π΅ΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΏΠ΅Π»Π° Π²Π½Π΅ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°.
5. ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π²Π΅ΡΠΊΡ dev:
6. ΠΠ»ΠΈΠ²Π°Π΅ΠΌ Π² dev ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
$ git merge project_branch
| $ git merge project_branch |
7. ΠΠ°Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π²Π΅ΡΠΊΠΈ dev Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ:
$ git push origin dev
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 286 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:devlab/sharp.git
d528335..9a452d9 dev -> dev
| $ git push origin dev Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 286 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To [email protected]:devlab/sharp.git Β Β d528335..9a452d9Β Β dev -> dev |
pushΒ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΡΠΎΠΉΡΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉΒ origin/devΒ ΠΎΠ±ΠΎΠ³Π½Π°Π» Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡ.
Β
ΠΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ git Π²ΡΠ΄Π°Π» ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΎΠΌΠ°Π½Π΄Π°Β git statusΒ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ΅:
$ git status
…
Unmerged paths:
(use «git add <file>…» to mark resolution)
both modified: root/css/styles.css.gz
$ git diff root/css/styles.css.gz
diff —cc root/css/styles.css.gz
index 970c721,bc6d170..0000000
Binary files differ
| $ git status … Unmerged paths: Β Β (use «git add <file>…» to mark resolution) Β Β Β Β Β Β Β Β both modified:Β Β Β Β Β Β root/css/styles.css.gz $ git diff root/css/styles.css.gz diff —cc root/css/styles.css.gz index 970c721,bc6d170..0000000 Binary files differ |
ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ (ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°ΡΡ ΠΈΠ²Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ.ΠΏ.), ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ β Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ±ΡΠ°ΡΡ β ΠΊΠ°ΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ: Π²Π°ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ· Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π²Π΅ΡΠΊΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ°ΠΉΠ»Π°, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git checkout —ours binary.dat
git add binary.dat
| git checkout —ours binary.dat git add binary.dat |
ΠΡΠ»ΠΈ ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²Π΅ΡΡΠΈΡ ΠΈΠ· Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π²Π΅ΡΠΊΠΈ:
git checkout —theirs binary.dat
git add binary.dat
| git checkout —theirs binary.dat git add binary.dat |
Β«oursΒ» β ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Β«Π½Π°ΡΒ», Β«theirsΒ» β ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ Β«ΠΈΡ Β».
Β
ΠΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
git logΒ β ΠΏΡΠΎΡΠΌΠΎΡΡ Π»ΠΎΠ³ΠΎΠ².
$ git log
commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: DevLab User <[email protected]>
Date: Wed Jul 31 18:35:47 2013 +0400
first commit
commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: DevLab User <[email protected]>
Date: Wed Jul 31 06:24:57 2013 -0700
Initial commit
| $ git log commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a Author: DevLab User <[email protected]> Date:Β Β Wed Jul 31 18:35:47 2013 +0400 Β Β Β Β first commit commit d528335724dfc15461996ed9d44d74f23ce6a075 Author: DevLab User <[email protected]> Date:Β Β Wed Jul 31 06:24:57 2013 -0700 Β Β Β Β Initial commit |
ΠΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ:
git log —pretty=oneline
9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a first commit
d528335724dfc15461996ed9d44d74f23ce6a075 Initial commit
| git log —pretty=oneline 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a first commit d528335724dfc15461996ed9d44d74f23ce6a075 Initial commit |
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈΒ git logΒ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΡΠΈΠΊ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ:
$ git log | grep -e «first»
first commit
| $ git log | grep -e «first» Β Β Β Β first commit |
ΠΠΎΠΌΠ°Π½Π΄Π°Β Β«git show» позволΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅:
$ git show 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
commit 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
Author: DevLab User <[email protected]>
Date: Wed Jul 31 18:35:47 2013 +0400
first commit
diff —git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..4add785
— /dev/null
+++ b/readme.txt
@@ -0,0 +1 @@
+Text
\ No newline at end of file
| $ git show 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a commit 99452d955bdb57e7e4f2b09f8ce2fbb6cd56377a Author: DevLab User <[email protected]> Date:Β Β Wed Jul 31 18:35:47 2013 +0400 Β Β Β Β first commit diff —git a/readme.txt b/readme.txt new file mode 100644 index 0000000..4add785 — /dev/null +++ b/readme.txt @@ -0,0 +1 @@ +Text \ No newline at end of file |
ΠΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΈ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
$ git blame README.md
^d528335 (devlabuser 2013-07-31 06:24:57 -0700 1) sharp
^d528335 (devlabuser 2013-07-31 06:24:57 -0700 2) =====
| $ git blame README.md ^d528335 (devlabuser 2013-07-31 06:24:57 -0700 1) sharp ^d528335 (devlabuser 2013-07-31 06:24:57 -0700 2) ===== |
git annotate, Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ , Π³Π΄Π΅ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ:
$ git annotate readme.txt
9a452d9c (DevLab User 2013-07-31 18:35:47 +0400 1)Text
| $ git annotate readme.txt 9a452d9cΒ Β Β Β Β Β Β Β (DevLab UserΒ Β Β Β Β Β 2013-07-31 18:35:47 +0400Β Β Β Β Β Β 1)Text |
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠΊΠ°Ρ
- git logΒ β ΠΏΡΠΎΡΠΌΠΎΡΡ Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΄Π΅Π»ΡΡΡ (ΡΠ°Π·Π½ΠΈΡΡ/diff), ΠΏΡΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: devlabuser <[email protected]>
Date: Wed Jul 31 18:35:47 2013 +0400
first commit
commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: devlabuser <[email protected]>
Date: Wed Jul 31 06:24:57 2013 -0700
Initial commit
| commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a Author: devlabuser <[email protected]> Date:Β Β Wed Jul 31 18:35:47 2013 +0400 Β Β Β Β first commit commit d528335724dfc15461996ed9d44d74f23ce6a075 Author: devlabuser <[email protected]> Date:Β Β Wed Jul 31 06:24:57 2013 -0700 Β Β Β Β Initial commit |
- ΠΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠΊΠ°Ρ.
- ΠΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° (ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ):
$ git reset —hard 9a452d955bdb57e7e4f2b09f8ce2fbb6cd56377a
HEAD is now at 9a45779 first commit
| $ git reset —hard 9a452d955bdb57e7e4f2b09f8ce2fbb6cd56377a HEAD is now at 9a45779 first commit |
ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Π΅ΡΠΊΠΈ:
$ git reset —hard origin/dev
HEAD is now at 9a45779 first commit
| $ git reset —hard origin/dev HEAD is now at 9a45779 first commit |
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°Ρ ΡΠ΄Π΅Π»Π°Π½, ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ push Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, git ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ°ΡΡ ΡΡΠ³Π°ΡΡΡΡ, ΡΡΠΎ Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΌΠ»Π°Π΄ΡΠ΅ ΡΠ΅ΠΌ Π½Π° github ΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ pull. ΠΡΠΎ Π»Π΅ΡΠΈΡΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ:
git push -f origin master
| git push -f origin master |
Β
ΠΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ
git mergeΒ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ.
$ git merge origin/ticket_1001_branch
| $ git merge origin/ticket_1001_branch |
git pull Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ.
$ git pull origin ticket_1001_branch
| $ git pull origin ticket_1001_branch |
git pullΒ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡΒ git mergeΒ ΡΠ΅ΠΌ, ΡΡΠΎΒ mergeΒ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ, Π° pull ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ β Π·Π°ΠΊΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.Β mergeΒ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ,Β pullΒ β ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π»Π΅ΠΆΠΈΡ Π½Π° github.
Β
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
$ mkdir project_dir
$ cd project_dir
$ git init
| $ mkdir project_dir $ cd project_dir $ git init |
git cherry-pick
git cherry-pickΒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΊ Π΄Π΅ΡΠ΅Π²Ρ Π΄ΡΡΠ³ΠΎΠΉ.
- ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅ΠΌ Π²Π»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ:
2. ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π΅Π΅:
3. ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
git cherry-pick eb042098a5
| git cherry-pick eb042098a5 |
4. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅:
Π‘ΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ Π² Git ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ
Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ: ΠΌΠ°ΡΡΠ΅Ρ ΠΈ dev
Π― Ρ ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ «Π²Π΅ΡΠΊΡ» ΠΎΡ dev ΡΠΈΠ»ΠΈΠ°Π»Π°.
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π²Π΅ΡΠΊΠ΅ dev, Ρ Π΄Π΅Π»Π°Ρ:
$ git checkout -b myfeature dev
… (ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΡΠ°Π±ΠΎΡΠ°)
$ git commit -am "blablabla"
$ git push origin myfeature
Π½ΠΎ, Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΠΌΠΎΠΈ Π²Π΅ΡΠ²ΠΈ, Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Π― ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π²Π΅ΡΠΊΠ°, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ»ΠΈΠ» Π€Π€, ΠΈ Ρ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ…
ΡΡΠΎ Ρ Π΄Π΅Π»Π°Ρ Π½Π΅ ΡΠ°ΠΊ?
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΡΠ½ΠΈΡΠ΅ ΠΌΠ½Π΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΊΠ°ΠΊ Π²Ρ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΠ΅ΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄Π»Ρ Π²Π΅ΡΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ?
Π²ΡΠ΅ ΡΡΠΎ Π² Π²Π΅ΡΠ²ΡΡΠ΅ΠΉΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π·Π΄Π΅ΡΡ.
612
Π°Π²ΡΠΎΡ: Peter Mortensen
4 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΡΡΠ»ΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Git Flow.
ΠΡΠΎ Π½Π°Π±ΠΎΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π» Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
Π½ΠΎ ΡΡΠΎΠ±Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ:
$ git checkout -b myFeature dev
ΡΠΎΠ·Π΄Π°Π΅Ρ Π²Π΅ΡΠ²Ρ MyFeature ΠΎΡ dev. ΠΠ΅Π»Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, Π° Π·Π°ΡΠ΅ΠΌ
$ git commit -am "Your message"
ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² dev Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠΈ Π²ΠΏΠ΅ΡΠ΅Π΄
$ git checkout dev
$ git merge --no-ff myFeature
ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
$ git push origin dev
$ git push origin myFeature
ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ½.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ Π² Git, ΠΏΡΠΎΡΡΠΎ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ.
ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ / ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π² Π²Π΅ΡΠΊΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΊΠΈ:
- ΠΌΠ°ΡΡΠ΅Ρ
- dev
- branch2, ΡΠ°Π²Π½Π°Ρ
Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «subbranch_of_b1» ΠΏΠΎΠ΄ Π²Π΅ΡΠΊΠΎΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ «branch2, ΡΠ°Π²Π½Π°Ρ» Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
ΠΎΡΠΎΡΠΌΠΈΡΡ Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² «branch2, ΡΠ°Π²Π½Π°Ρ»
git checkout branch2
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «subbranch_of_b1» ΠΏΠΎΠ΄ «branch2, ΡΠ°Π²Π½Π°Ρ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
git checkout -b subbranch_of_b1 branch2
Π²ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠ²Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ subbranch_of_b1 Π² ΡΠΈΠ»ΠΈΠ°Π»Π΅ branch2, ΡΠ°Π²Π½Π°Ρ (Π·Π°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ
branch2
Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π³ΠΎΠ»ΠΎΠ²Π° Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΡΠ½ΠΈΡΡ Π΅Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ).Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Ρ subbranch_of_b1 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ.
227
Π°Π²ΡΠΎΡ: Praveen George
ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ
- ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠ²Ρ ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ. ΠΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² master Π±ΡΠ΄ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ Π²Π΅ΡΠΊΠΎΠΉ.
$ git branch branch2
- ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠ²Ρ ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ branch2 . ΠΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² branch2 Π±ΡΠ΄ΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Ρ branch3
$ git branch branch3
Π² ΠΊΠ°ΡΡΡ ΡΠΈΠ»ΠΈΠ°Π»Π°
Π²Π΅ΡΠ²ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ git ΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°
$ git checkout branchname
ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ»ΠΈΠ°Π»Π°
$ git branch -m branch2 newbranchname
ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ
$ git branch -d branch-to-delete
-
$ git branch -D branch-to-delete
( ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ )
ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΡΠ°Π½Ρ
$ git checkout -b branchname
Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ
************************** Π€ΠΈΠ»ΠΈΠ°Π»Π° Π Π°Π·Π»ΠΈΡΠΈΡ [ git diff branch2..branch3 ] ************************
ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ ΡΠ°Π·Π½ΠΈΡΠ°
$ git diff master..branch2
Singleline ΡΠ°Π·Π½ΠΈΡΠ°
$ git diff --color-words branch2..branch3
17
Π°Π²ΡΠΎΡ: Gnanasekar S
ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° dev
ΡΠΈΠ»ΠΈΠ°Π»Π°. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²Π΅ΡΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡ Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠ²ΠΈ dev, Π½ΠΎ Π²Π΅ΡΠ²Ρ dev Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ΅Π³ΡΠ΅ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΡΠΌΡΡ Π»ΠΈΠ½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΠ΅ΡΠ΅Π΄. ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ A Π½Π° dev, ΠΈ ΠΎΡΡΡΠ΄Π° Π²Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ. ΠΡΠΈ Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ°Π·ΠΎΡΠ»ΠΈΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π½Π° dev, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ Π²Ρ ΡΠ½ΠΎΠ²Π° Π½Π°ΡΠ½ΠΈΡΠ΅ Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ commit, A, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΡ Π² C, Π° dev-Π² B. ΠΡΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π΅ΡΠ²ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΡΡΡΡ.
*-----*Dev-------*Feature
ΠΈ
/----*DevB
*-----*DevA
\----*FeatureC
11
Π°Π²ΡΠΎΡ: ToothlessRebel
git — Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
ΠΠ°Π³ΡΡΠ·ΠΊΠ°β¦
.
Git: ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
Π Git ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² VCS Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΡΠΈ Π²Π΅ΡΠΊΠΈ ΠΏΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΏΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²Π°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΎ Π½Π° Β«ΠΎΡΠ½ΠΎΠ²Π½ΡΡΒ» Π²Π΅ΡΡΠΈΡ ΠΊΠΎΠ΄Π°.ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΎΠΊ Π² Git, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Π°ΡΠ° Π²Π΅ΡΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, Π±ΡΠ΄Ρ ΡΠΎ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ, Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΡΠ΅Π³Π° ΠΈ Ρ. Π.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
$ git checkout -b <ΠΈΠΌΡ-Π²Π΅ΡΠΊΠΈ>
ΠΡΠΎ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π»Ρ Π²Π°Ρ Π²Π΅ΡΠ²Ρ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ Π²Π°Ρ Π½Π° ΡΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° Π½ΠΎΠ²Π°Ρ:
$ git checkout -b Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ° dev-Π²Π΅ΡΠΊΠ°
ΠΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° Π²Π΅ΡΠΊΡ new-branch
ΠΡΡΠ³ΠΎΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± — Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ branch
(ΠΊΠΎΡΠΎΡΡΡ checkout
Π΄Π΅Π»Π°Π΅Ρ Π·Π° ΠΊΡΠ»ΠΈΡΠ°ΠΌΠΈ):
$ git branch <ΠΈΠΌΡ-Π²Π΅ΡΠΊΠΈ>
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π°Ρ Π½Π° Π½Π°ΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ:
$ Π²Π΅ΡΠΊΠ° git
* ΠΌΠ°ΡΡΠ΅Ρ
$ git branch Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°
$ git Π²Π΅ΡΠΊΠ°
* ΠΌΠ°ΡΡΠ΅Ρ
Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅ΡΠΊΠΎΠΉ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π½Π΅Π΅ Π²ΡΡΡΠ½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ checkout
:
$ git checkout Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°
ΠΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° Π²Π΅ΡΠΊΡ new-branch
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠ²ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΎΠΊ.ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² — ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ Ρ ΡΡ:
.
$ git branch <ΠΈΠΌΡ-Π²Π΅ΡΠΊΠΈ> <Ρ
ΡΡ>
ΠΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π° Ρ Git, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²Π΅ΡΡ Ρ Π΅Ρ, Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
$ Π²Π΅ΡΠΊΠ° git
* ΠΌΠ°ΡΡΠ΅Ρ
$ git branch commit-branch 735c5b4
$ git Π²Π΅ΡΠΊΠ°
ΠΊΠΎΠΌΠΌΠΈΡ-Π²Π΅ΡΠΊΠ°
* ΠΌΠ°ΡΡΠ΅Ρ
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ git checkout -b
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ Π΅Π΅, Π²ΡΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅Π³Π°
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΡΠΊΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ· ΡΠ΅Π³Π°. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ΅Π³ΠΈ — Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΡΠ΅Π³ΠΈ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅, Π½ΠΎ Ρ ΡΠ΅Π³ΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°.
$ git branch tag-branch v0.4.12
$ git Π²Π΅ΡΠΊΠ°
ΡΠ΅Π³-Π²Π΅ΡΠ²Ρ
* ΠΌΠ°ΡΡΠ΅Ρ
Π ΡΠ½ΠΎΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ git checkout -b <ΠΈΠΌΡ-Π²Π΅ΡΠΊΠΈ> <ΡΠ΅Π³>
.
.
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π² Git?
Git ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΠΎΡΠ½ΠΎΡΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ — ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Git!
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ Π² Git. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ HEAD ?
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ (HEAD), ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git branchΒ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
$ git branch <Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°>
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ ?
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠΌΡ ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ:
$ git branch <Π½ΠΎΠ²Π°Ρ-Π²Π΅ΡΠΊΠ°> <Π±Π°Π·ΠΎΠ²Π°Ρ-Π²Π΅ΡΠΊΠ°>
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ Tower Git, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΎΠΊ (Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²ΡΠ±ΠΎΡΠ° Π²ΠΈΡΠ½ΠΈ ΠΈ Ρ. Π.):
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ?
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ (Π° Π½Π΅ Π²Π΅ΡΠΊΠΈ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Ρ Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ:
$ git branch <Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°> f71ac24d
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³Π° ?
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ Π΅ΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ:
$ git branch <Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°> v1.2
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ?
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ Β«—trackΒ»:
$ git branch --track <Π½ΠΎΠ²Π°Ρ-Π²Π΅ΡΠΊΠ°> origin / <Π±Π°Π·ΠΎΠ²Π°Ρ-Π²Π΅ΡΠΊΠ°>
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«checkoutΒ». ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°Π·Π²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΠΊΠ°ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ:
$ git checkout --track origin /
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π² Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ?
ΠΠΎΡΠ°Π±ΠΎΡΠ°Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π΅Π΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π΅Ρ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
$ git push -u origin <Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ-Π²Π΅ΡΠΊΠ°>
Π€Π»Π°Π³ Β«-uΒ» ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Git ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Β«ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΠ΅Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅Β», ΡΡΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅.
Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° «git branch»?
ΠΠΎΠΌΠ°Π½Π΄Π° «git branch» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π·Π°Π΄Π°Ρ:
- ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΌΠ΅ΡΡΠ½ΡΡ ΡΠΈΠ»ΠΈΠ°Π»ΠΎΠ²
- ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠΈΠ»ΠΈΠ°Π»ΠΎΠ²
- ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈ / ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠΈΠ»ΠΈΠ°Π»ΠΎΠ²
- ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π²Π΅ΡΠ²Π΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ
Π£Π·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅
.
Git — ΠΊΠ½ΠΈΠ³Π°
2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (2014)
ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΊΠ½ΠΈΠ³Ρ
ΠΡΡ ΠΊΠ½ΠΈΠ³Π° Pro Git, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π‘ΠΊΠΎΡΡΠΎΠΌ Π§Π°ΠΊΠΎΠ½ΠΎΠΌ ΠΈ ΠΠ΅Π½ΠΎΠΌ Π¨ΡΡΠ°ΡΠ±ΠΎΠΌ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Π°Ρ Apress, Π΄ΠΎΡΡΡΠΏΠ½Π° Π·Π΄Π΅ΡΡ. ΠΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Creative Commons Attribution Non Commercial Share Alike 3.0. ΠΠ΅ΡΠ°ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° Amazon.com.>
- 1.1
Π ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ Π²Π΅ΡΡΠΈΠΉ - 1.2
ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ Git - 1.3
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Git? - 1.4
ΠΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° - 1.5
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Git - 1.6
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Git - 1.7
ΠΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΌΠΎΡΡ - 1,8
Π Π΅Π·ΡΠΌΠ΅
- 1.1
- 2.1
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git - 2.2
ΠΠ°ΠΏΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ - 2.3
ΠΡΠΎΡΠΌΠΎΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ - 2.4
ΠΡΠΌΠ΅Π½Π° Π²Π΅ΡΠ΅ΠΉ - 2,5
Π Π°Π±ΠΎΡΠ° Ρ ΠΏΡΠ»ΡΡΠ°ΠΌΠΈ - 2,6
Π’Π΅Π³ΠΈ - 2,7
ΠΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ Git - 2,8
Π Π΅Π·ΡΠΌΠ΅
- 2.1
- 3.1
ΠΠ΅ΡΠΊΠΈ Π² Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ - 3.2
ΠΠ°Π·ΠΎΠ²ΠΎΠ΅ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ - 3.3
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠ»ΠΈΠ°Π»ΠΎΠΌ - 3,4
ΠΠ΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² - 3.5
Π£Π΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΠ»ΠΈΠ°Π»Ρ - 3,6
Π Π΅Π±Π°Π·ΠΈΠ½Π³ - 3,7
Π Π΅Π·ΡΠΌΠ΅
- 3.1
- 4.1
ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ - 4.2
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Git Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ - 4.3
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° SSH - 4.4
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° - 4.5
Git Daemon - 4.6
Π£ΠΌΠ½ΡΠΉ HTTP - 4.7
GitWeb - 4.8
GitLab - 4.9
Π‘ΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ - 4.10
Π Π΅Π·ΡΠΌΠ΅
- 4.1
- 5.1
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ - 5.2
ΠΠΊΠ»Π°Π΄ Π² ΠΏΡΠΎΠ΅ΠΊΡ - 5.3
Π‘ΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° - 5,4
Π Π΅Π·ΡΠΌΠ΅
- 5.1
- 6.1
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ - 6.2
ΠΠΊΠ»Π°Π΄ Π² ΠΏΡΠΎΠ΅ΠΊΡ - 6.3
Π‘ΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° - 6.4
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ - 6.5
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½Π° GitHub - 6,6
Π Π΅Π·ΡΠΌΠ΅
- 6.1
- 7.1
ΠΡΠ±ΠΎΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ - 7.2
- 7.1
.