Π Π°Π·Π½ΠΎΠ΅

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. 1.2
      ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1.3
      ΠžΡΠ½ΠΎΠ²Ρ‹ Git
    4. 1.4
      Командная строка
    5. 1.5
      Установка Git
    6. 1.6
      ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git
    7. 1.7
      Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ?
    8. 1.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 2.1
      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-рСпозитория
    2. 2.2
      Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    3. 2.3
      ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4
      ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
    5. 2.5
      Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ рСпозиториями
    6. 2.6
      Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ
    7. 2.7
      ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Π² Git
    8. 2.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 3.1
      О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2

Π’Π΅Ρ‚ΠΊΠΈ. 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

  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° project_name, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Π΅.
  2. ВыполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

    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.

Β 

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

    $ 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

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, выполняСм Π² Π½Π΅ΠΉ Π½ΡƒΠΆΠ½Ρ‹Π΅ измСнСния.

  1. Бписок всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

  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

Β 

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚

  1. 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


  2. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит ΠΎΡ‚ΠΊΠ°Ρ‚.
  3. ΠžΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡΡ Π΄ΠΎ послСднСго ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚):

    $ 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 ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½-СдинствСнный ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΊ Π΄Π΅Ρ€Π΅Π²Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

  1. Для этого Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅ΠΌ Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚:

  2. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅:

  3. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

    git cherry-pick eb042098a5



    git cherry-pick eb042098a5


  4. ПослС этого ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° сСрвСрС:

Β 

Как Ρ€Π°ΡΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ 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

  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Β project_name, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Π΅.
  2. ВыполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git clone [email protected]:devlabuser/sharp.git ./



git clone [email protected]:devlabuser/sharp.git ./

  1. Β«./» означаСт, Ρ‡Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с выписанной Π²Π΅Ρ‚ΠΊΠΎΠΉΒ 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.

Β 

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

  1. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ:

$ 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 -&gt; dev



$ git push origin dev

Total 0 (delta 0), reused 0 (delta 0)

To [email protected]:devlabuser/sharp.git

* [new branch]Β Β Β Β Β Β dev -&gt; 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

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, выполняСм Π² Π½Π΅ΠΉ Π½ΡƒΠΆΠ½Ρ‹Π΅ измСнСния.

  1. Бписок всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

2. ΠŸΠΎΠ΄Π³ΠΎΡ‚Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚, добавляя Π² Π½Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

$ git add &lt;file1&gt; &lt;file2&gt; …



$ git add &lt;file1&gt; &lt;file2&gt; …

Или удаляСм ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:

$ git rm &lt;file1&gt; &lt;file2&gt; …



$ git rm &lt;file1&gt; &lt;file2&gt; …

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 -&gt; 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 -&gt; dev

pushΒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉΒ origin/devΒ ΠΎΠ±ΠΎΠ³Π½Π°Π» Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π΅Π³ΠΎ копию.

Β 

Как Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Допустим, ΠΏΡ€ΠΈ слиянии с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ git Π²Ρ‹Π΄Π°Π» ΠΎΡˆΠΈΠ±ΠΊΡƒ. Команда git statusΒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅:

$ git status

Unmerged paths:
(use «git add &lt;file&gt;…» 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 &lt;file&gt;…» 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 &lt;[email protected]&gt;
Date: Wed Jul 31 18:35:47 2013 +0400

first commit

commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: DevLab User &lt;[email protected]&gt;
Date: Wed Jul 31 06:24:57 2013 -0700

Initial commit



$ git log

commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a

Author: DevLab User &lt;[email protected]&gt;

Date:Β Β  Wed Jul 31 18:35:47 2013 +0400

Β Β Β Β first commit

commit d528335724dfc15461996ed9d44d74f23ce6a075

Author: DevLab User &lt;[email protected]&gt;

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 &lt;[email protected]&gt;
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 &lt;[email protected]&gt;

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

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚

  1. git logΒ β€” просмотр Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π΅Π»ΡŒΡ‚Ρƒ (Ρ€Π°Π·Π½ΠΈΡ†Ρƒ/diff), ΠΏΡ€ΠΈΠ²Π½Π΅ΡΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a
Author: devlabuser &lt;[email protected]&gt;
Date: Wed Jul 31 18:35:47 2013 +0400

first commit

commit d528335724dfc15461996ed9d44d74f23ce6a075
Author: devlabuser &lt;[email protected]&gt;
Date: Wed Jul 31 06:24:57 2013 -0700

Initial commit



commit 9a452d9cdbdb57e7e4f2b09f8ce2f776cd56657a

Author: devlabuser &lt;[email protected]&gt;

Date:Β Β  Wed Jul 31 18:35:47 2013 +0400

Β Β Β Β first commit

commit d528335724dfc15461996ed9d44d74f23ce6a075

Author: devlabuser &lt;[email protected]&gt;

Date:Β Β  Wed Jul 31 06:24:57 2013 -0700

Β Β Β Β Initial commit

  1. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит ΠΎΡ‚ΠΊΠ°Ρ‚.
  2. ΠžΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡΡ Π΄ΠΎ послСднСго ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚):

$ 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Β ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½-СдинствСнный ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΊ Π΄Π΅Ρ€Π΅Π²Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

  1. Для этого Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅ΠΌ Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚:

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, равная» Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ дСйствия:

  1. ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ измСнСния Π² «branch2, равная»

    git checkout branch2
    
  2. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «subbranch_of_b1» ΠΏΠΎΠ΄ «branch2, равная» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

    git checkout -b subbranch_of_b1 branch2
    

    Π²Ρ‹ΡˆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ создана новая Π²Π΅Ρ‚Π²ΡŒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ subbranch_of_b1 Π² Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅ branch2, равная (Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ branch2 Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π³ΠΎΠ»ΠΎΠ²Π° Π² настоящСС врСмя ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ Π΅Π΅, Ссли Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ).

  3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ послС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с 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 — Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

.

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. 1.2
      ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1.3
      Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Git?
    4. 1.4
      Командная строка
    5. 1.5
      Установка Git
    6. 1.6
      ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git
    7. 1.7
      ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ
    8. 1,8
      РСзюмС
    1. 2.1
      ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ рСпозитория Git
    2. 2.2
      Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    3. 2.3
      ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории фиксации
    4. 2.4
      ΠžΡ‚ΠΌΠ΅Π½Π° Π²Π΅Ρ‰Π΅ΠΉ
    5. 2,5
      Π Π°Π±ΠΎΡ‚Π° с ΠΏΡƒΠ»ΡŒΡ‚Π°ΠΌΠΈ
    6. 2,6
      Π’Π΅Π³ΠΈ
    7. 2,7
      ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Git
    8. 2,8
      РСзюмС
    1. 3.1
      Π’Π΅Ρ‚ΠΊΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2
      Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ слияниС
    3. 3.3
      Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΠΈΠ°Π»ΠΎΠΌ
    4. 3,4
      Π’Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов
    5. 3.5
      Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Ρ‹
    6. 3,6
      Π Π΅Π±Π°Π·ΠΈΠ½Π³
    7. 3,7
      РСзюмС
    1. 4.1
      ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹
    2. 4.2
      ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Git Π½Π° сСрвСрС
    3. 4.3
      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ вашСго ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° SSH
    4. 4.4
      Настройка сСрвСра
    5. 4.5
      Git Daemon
    6. 4.6
      Π£ΠΌΠ½Ρ‹ΠΉ HTTP
    7. 4.7
      GitWeb
    8. 4.8
      GitLab
    9. 4.9
      Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ размСщСния
    10. 4.10
      РСзюмС
    1. 5.1
      РаспрСдСлСнныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы
    2. 5.2
      Π’ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
    3. 5.3
      Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    4. 5,4
      РСзюмС
    1. 6.1
      Настройка ΠΈ конфигурация ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи
    2. 6.2
      Π’ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
    3. 6.3
      Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
    4. 6.4
      Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ
    5. 6.5
      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сцСнариСв Π½Π° GitHub
    6. 6,6
      РСзюмС
    1. 7.1
      Π’Ρ‹Π±ΠΎΡ€ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ
    2. 7.2

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *