Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

11. Алиасы

Π¦Π΅Π»ΠΈ

  • ΠΠ°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ алиасы ΠΈ ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚Ρ‹ для ΠΊΠΎΠΌΠ°Π½Π΄ git

01 ΠžΠ±Ρ‰ΠΈΠ΅ алиасы

Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Windows:

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"
git config --global alias.type 'cat-file -t'
git config --global alias.dump 'cat-file -p'

Π’Π°ΠΊΠΆΠ΅, для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Unix/Mac:

git status, git add, git commit, git checkout β€” ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ сокращСния.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² Ρ„Π°ΠΉΠ» .gitconfig Π² вашСм $HOME ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

Π€Π°ΠΉΠ»:
.gitconfig
[alias]
  co = checkout
  ci = commit
  st = status
  br = branch
  hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
  type = cat-file -t
  dump = cat-file -p

ΠœΡ‹ ΡƒΠΆΠ΅ успСли Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

commit ΠΈ status, Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ рассмотрСли ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ log ΠΈ совсСм скоро познакомимся с checkout. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ стоит Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈΠ· этого ΡƒΡ€ΠΎΠΊΠ°, Ρ‚Π°ΠΊ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ git st Ρ‚Π°ΠΌ, Π³Π΄Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git status. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, пишСм git co вмСсто git checkout ΠΈ git ci вмСсто git commit. Π§Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго, ΠΊΠΎΠΌΠ°Π½Π΄Π° git hist ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄Π° ΠΎΡ‡Π΅Π½ΡŒ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ log.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

02 Π—Π°Π΄Π°ΠΉΡ‚Π΅ алиас hist Π² Ρ„Π°ΠΉΠ»Π΅ .gitconfig

По большСй части, я Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² этом руководствС. ЕдинствСнным ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС алиаса

hist, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½Π΅ понадобится ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ git Π»ΠΎΠ³. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΌΠΎΠΈ дСйствия, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ алиас hist установлСн Π² вашСм Ρ„Π°ΠΉΠ»Π΅ .gitconfig.

03 Type ΠΈ Dump

ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ нСсколько алиасов для ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ рассматривали. Π‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git branch разбСрСмся Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° git cat-file ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для исслСдования git, Π² Ρ‡Π΅ΠΌ ΠΌΡ‹ вскорС убСдимся.

04 Алиасы ΠΊΠΎΠΌΠ°Π½Π΄ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

Если ваша ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ алиасы ΠΈΠ»ΠΈ ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ алиасы ΠΈ Π½Π° этом ΡƒΡ€ΠΎΠ²Π½Π΅. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ:

Π€Π°ΠΉΠ»:
.profile
alias gs='git status '
alias ga='git add '
alias gb='git branch '
alias gc='git commit'
alias gd='git diff'
alias gco='git checkout '
alias gk='gitk --all&'
alias gx='gitx --all'

alias got='git '
alias get='git '

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ gco для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git checkout особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Оно позволяСт ΠΌΠ½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ:

gco <branch>

для ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

И Π΄Π°, я достаточно часто ΠΏΠΈΡˆΡƒ вмСсто git get ΠΈΠ»ΠΈ got, поэтому создам алиасы ΠΈ для Π½ΠΈΡ….

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 Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ.

30. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²

Π¦Π΅Π»ΠΈ

  • ΠΠ°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²ΠΎ врСмя слияния

01 БлияниС master с Π²Π΅Ρ‚ΠΊΠΎΠΉ style

Π’Π΅ΠΏΠ΅Ρ€ΡŒ вСрнСмся ΠΊ Π²Π΅Ρ‚ΠΊΠ΅ style ΠΈ попытаСмся ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΅Π΅ с Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ master.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:
git checkout style
git merge master
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:
$ git checkout style
Switched to branch 'style'
$ git merge master
Auto-merging lib/hello.html
CONFLICT (content): Merge conflict in lib/hello.html
Automatic merge failed; fix conflicts and then commit the result.

Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ lib/hello.html, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅:

Π€Π°ΠΉΠ»:
lib/hello.html
<!-- Author: Alexander Shvets ([email protected]) -->
<html>
  <head>
<<<<<<< HEAD
    <link type="text/css" rel="stylesheet" media="all" href="style.css" />
=======
    <!-- no style -->
>>>>>>> master
  </head>
  <body>
    <h2>Hello,World! Life is great!</h2>
  </body>
</html>

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» — вСрсия Π²ΠΎ Π³Π»Π°Π²Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ (style). Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π» — вСрсия Π²Π΅Ρ‚ΠΊΠΈ master.

02 РСшСниС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°

Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. ВнСситС измСнСния Π² lib/hello.html для достиТСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

Π€Π°ΠΉΠ»:
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! Life is great!</h2>
  </body>
</html>

03 Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°
Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:
git add lib/hello.html git commit -m "Merged master fixed conflict."
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:
$ git add lib/hello.html
$ git commit -m "Merged master fixed conflict."
Recorded resolution for 'lib/hello.html'.
[style 645c4e6] Merged master fixed conflict.

04 Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности слияния

Git Π½Π΅ прСдоставляСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… графичСских инструмСнтов слияния, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ с ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ сторонними инструмСнтами слияния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ (обсуТдСниС Ρ‚Π°ΠΊΠΈΡ… инструмСнтов Π½Π° StackOverflow).

GitHub — kefiriaus/git-how-to

ОписаниС самых основных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с git

Установка ΠΈΠΌΠ΅Π½ΠΈ ΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ установки ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΉ строк

git config --global core.autocrlf input
git config --global core.safecrlf true

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория

mkdir hello
cd hello
touch hello.html
git init

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ страницы Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

git add hello.html (МоТно 'git add .' для Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ)
git commit -m "First Commit"

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса рСпозитория

git status

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

git add hello.html
git status

ΠšΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

#ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ созданию коммСнтария Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅
git commit
#Π²Ρ‹Π²ΠΎΠ΄ коммСнтария Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС
git commit -m 'Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°'

#ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° git add hello.html git commit --amend -m "Add an author/email comment"

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

#история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git log

#однострочная история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git log --pretty=oneline

#Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² git log --pretty=oneline --max-count=2 git log --pretty=oneline --since='5 minutes ago' git log --pretty=oneline --until='5 minutes ago' git log --pretty=oneline --author= git log --pretty=oneline --all

#ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short

Алиасы ΠΈ ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚Ρ‹ для ΠΊΠΎΠΌΠ°Π½Π΄ git Π² Ρ„Π°ΠΉΠ»Π΅ ~/. #Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ git checkout [tagname]~1

#просмотр Ρ‚Π΅Π³ΠΎΠ² git tag

#просмотр Ρ‚Π΅Π³ΠΎΠ² Π² Π»ΠΎΠ³Π°Ρ… git hi master —all

#ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅Π³Π° git tag -d [tagname]

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ для Ρ„Π°ΠΉΠ»Π° hello.html

#ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
git checkout hello.html

#ΠΎΡ‚ΠΌΠ΅Π½Π° проиндСксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ git reset HEAD hello.html git checkout hello.html

#ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ git revert HEAD --no-edit

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

#для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π΅ удалился сборщиком мусора Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ tag
git tag oops

#сброс ΠΊΠΎΠΌΠΌΠΈΡ‚Π° git reset --hard [tagname]|[hash]

#ΠΏΠΎΠΊΠ°Π· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° с Ρ‚Π΅Π³ΠΎΠΌ git hi --all

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… рСпозитория

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» hello.html Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ lib
#срСдствами git
mkdir lib
git mv hello.html lib

#срСдствами OS mkdir lib mv hello.html lib git add lib/hello.html git rm hello.html

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

git checkout -b [branchname]

БлияниС Π²Π΅Ρ‚ΠΎΠΊ

#Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°
git checkout dev
git merge master
git hi --all

#Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ git checkout dev git merge master git hi --all Auto-merging lib/hello.html CONFLICT (content): Merge conflict in lib/hello.html Automatic merge failed; fix conflicts and then commit the result.

#Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» vim lib/hello.html git add lib/hello.html git commit -m "Merged master fixed conflict."

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

#сброс Π²Π΅Ρ‚ΠΊΠΈ dev Π΄ΠΎ слияния
git checkout dev
git hi
git reset --hard [hash]

#сброс Π²Π΅Ρ‚ΠΊΠΈ master Π΄ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° git checkout master git hi git reset --hard [hash] git hist --all

ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (rebase вмСсто merge)

git checkout dev
git rebase master
git hi

Rebase VS Merge

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ пСрСбазирования ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ слияния. Π’Π΅Ρ‚ΠΊΠ° dev Π² настоящСС врСмя содСрТит всС свои измСнСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ всС измСнСния Π²Π΅Ρ‚ΠΊΠΈ master. Однако, Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ отличаСтся. Π”Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π²Π΅Ρ‚ΠΊΠΈ dev Π±Ρ‹Π»ΠΎ пСрСписано Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° master являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ†Π΅ΠΏΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠΉ.
Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ rebase, Π° ΠΊΠΎΠ³Π΄Π° merge?
НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ rebase:
  1. Если Π²Π΅Ρ‚ΠΊΠ° являСтся ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈ Ρ€Π°ΡΡˆΠ°Ρ€Π΅Π½Π½ΠΎΠΉ. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΡ… Π²Π΅Ρ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
  2. Когда Π²Π°ΠΆΠ½Π° точная история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π²Π΅Ρ‚ΠΊΠΈ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° rebase пСрСписываСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²).

Учитывая ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ rebase для ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, Π° merge для Π²Π΅Ρ‚ΠΎΠΊ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория

git clone hello cloned_hello

ИмСна ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²

git remote

#Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ git remote show origin

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ

#Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅
git branch

#Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ git branch -a

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

cd ../cloned_hello
git fetch
git hist --all

#слияниС с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ git merge origin/master

#ΠΈΠ»ΠΈ вмСсто fetch ΠΈ merge cd ../cloned_hello git pull git hist --all

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ локальной Π²Π΅Ρ‚ΠΊΠΈ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ измСнСния ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ

git branch --track dev origin/dev
git branch -a
git hist --max-count=2

Чистый Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

git clone --bare hello hello.git

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

cd hello
git remote add shared ../hello.git

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

git checkout master
git add README
git commit -m "Added shared comment to readme"
git push shared master

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ рСпозитория

cd ../cloned_hello
git remote add shared ../hello.git
git branch --track shared master
git pull shared master
cat README

Запуск git сСрвСра

#ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
git daemon --verbose --export-all --base-path=.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ git сСрвСру

git clone git://localhost/hello.git network_hello
cd network_hello
ls

курсов: b35apo: en: documentation: githowto: start [CourseWare Wiki]

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GIT с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ SSH

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с участиСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эффСктивно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² систСмС вСрсий, Π² нашСм случаС GITu. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ распрСдСлСниС исходного ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, домашний ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ мСсто Π² классС ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠœΠ—ΠΠŸΠž ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ рСпозитория git. Для обучСния ΠΈ выполнСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π² FEL, GitLab прСдоставляСт хостинг ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ GIT. ПослС рСгистрации Π² CTU студСнты FEL ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GitLab для своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².Если Ρƒ вас Π½Π΅ установлСн (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ) Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ GitLab, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° Π² систСму SSO для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ GIT рСкомСндуСтся Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ SSH-ΠΊΠ»ΡŽΡ‡ Π½Π° Git-сСрвСрС (SSH-ΠΊΠ»ΡŽΡ‡).

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ SSH-ΠΊΠ»ΡŽΡ‡, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ (Π² Linux) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ssh-keygen , слСдуя инструкциям Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ доступ». По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ публичная ΠΈ приватная части ΠΊΠ»ΡŽΡ‡Π° ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ .ssh Π² вашСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅:

 ssh-keygen
кошка ~ /.ssh / id_rsa.pub 

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π° ( id_rsa.pub ) рСгистрируСтся Π² вашСм ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ GitLab — Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ( id_rsa ) вашСго ΠΊΠ»ΡŽΡ‡Π°:

Π—Π½Π°Ρ‡ΠΎΠΊ вашСго профиля Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ β†’ Настройки β†’ SSH-ΠΊΠ»ΡŽΡ‡ΠΈ

ЗащищСнная Π²Π΅Ρ‚ΠΊΠ° GitLab

Π’Π΅Ρ‚Π²ΡŒ master Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π° ΠΎΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ измСнСния Ρ€Π°Π½Π΅Π΅ записанной истории послС создания рСпозитория. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Π΅Π³ΠΎ истории ΠΈ ΠΏΠΎΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡƒΡ‚Π΅ΠΌ, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π·Π°Ρ‰ΠΈΡ‚Ρ‹.Настройки Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π²Π΅Ρ‚ΠΎΠΊ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «Настройки» β†’ Β«Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ» β†’ Β«Π—Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈΒ» GitLab. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с использованиСм, Π²Ρ‹ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚Π΅ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π², ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git reset origin / master, Ρ‡Ρ‚ΠΎΠ±Ρ‹ снова Π²ΡΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΡƒΡ‚ΡŒ.

БвязанныС рСсурсы

15 Π»Π΅Ρ‚ Git: ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ»ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅

Если Π·Π° послСдниС Π΄Π²Π° дСсятилСтия Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось, Ρ‚ΠΎ Git находится Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части списка.

Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Git Π»ΠΈΡ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это просто тСхничСская ΠΏΡ€ΠΈΡ…ΠΎΡ‚ΡŒ, случайная любовь Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» создан Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ‡Π°Π» сам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Linux. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² этом Π΅ΡΡ‚ΡŒ доля ΠΏΡ€Π°Π²Π΄Ρ‹, Π½ΠΎ Git Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ удаСтся Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄Π²ΠΈΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ отрасли. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ, Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя, с историСй ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ внСсСнного измСнСния, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ вмСстС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π°, ΠΈ поэтому сам инструмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ слоТным, Π½ΠΎ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², это Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠΈ работоспособности индустрии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Git ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Π²Ρ‹, скорСС всСго, ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с Π½ΠΈΠΌ, Ссли Π²Ρ‹ достаточно Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΡƒ. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Git для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° установщика ΠΈΠ»ΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ взаимодСйствуСтС с Π½ΠΈΠΌ для управлСния ΠΊΠΎΠ΄ΠΎΠΌ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± этом ΠΏΡ€ΠΎΡΡΠ½ΡΡŽΡ‚ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ возмоТности.

ВСрминология Git

Как ΠΈ Π² любом спСциализированном инструмСнтС, Π² Git ΠΌΠ½ΠΎΠ³ΠΎ ΠΆΠ°Ρ€Π³ΠΎΠ½Π°.Π’Π°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹, ΠΊΠ°ΠΊ Β«ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ», Β«ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΒ» ΠΈ Β«ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ», Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС Π·Π°Π³Π°Π΄ΠΎΡ‡Π½Ρ‹, Π° Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ всС эти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСпосильной, Π½ΠΎ Π½Π΅ Ссли Π²Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ нСбольшим руководством ΠΈΠ· прСвосходной ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠœΡΡ‚ΡŒΡŽ Π‘Ρ€ΠΎΠ±Π΅Ρ€Π³Π° ΠΏΠΎ Git Terminology 101. ВсСго Π·Π° ΠΎΠ΄Π½ΠΎ быстроС ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Π²Ρ‹ смоТСтС с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρ‹ ΠΎ Git.

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Git

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Git, Ρ‚ΠΎ моя собствСнная сСрия Π²Π²ΠΎΠ΄Π½Ρ‹Ρ… статСй ΠΎΠ± использовании Git — ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ мСсто для Π½Π°Ρ‡Π°Π»Π°.Π­Ρ‚ΠΈΠΌ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ ΡƒΠΆΠ΅ нСсколько Π»Π΅Ρ‚, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π² случаС со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ тСхнологиями Linux ΠΈ UNIX, интСрфСйс сущСствСнно Π½Π΅ измСнился, поэтому ΡΡ‚Π°Ρ‚ΡŒΠΈ сСгодня Ρ‚Π°ΠΊ ΠΆΠ΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹, ΠΊΠ°ΠΊ ΠΈ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° я ΠΈΡ… писал. Π­Ρ‚Π° сСрия Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с самыми основными концСпциями Git ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас Ρ‡Π΅Ρ€Π΅Π· процСсс создания рСпозитория, фиксации Ρ„Π°ΠΉΠ»ΠΎΠ², восстановлСния Ρ„Π°ΠΉΠ»ΠΎΠ², слияния Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

ΠžΠ±Ρ‰ΠΈΠ΅ слуТбы Git

Одно ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Git — это общСдоступная слуТба хостинга Git, такая ΠΊΠ°ΠΊ GitLab ΠΈ GitHub.Π’ своСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ «Как ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² GitΒ» ΠšΠ΅Π΄Π°Ρ€ Π’ΠΈΠ΄ΠΆΠ°ΠΉ ΠšΡƒΠ»ΠΊΠ°Ρ€Π½ΠΈ дСмонстрируСт повсСднСвныС Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² выполняСт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Git. Π­Ρ‚ΠΎ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ для Π½Π΅-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ внСсти свой Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² общСдоступной слуТбС хостинга Git. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассматриваСтся Github, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных Π½Π° сСгодняшний дСнь ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Π½ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π²Π΅Π±-интСрфСйсу для Git, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ популярныС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GitLab, Gogs ΠΈ Gitea.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ это ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Git

Π’Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ экскурсии Π±Π΅ΡΡ†Π΅Π»ΡŒΠ½Ρ‹ΠΌ исслСдованиям? Иногда самый простой способ Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ — это ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡ΡŒΠΈ-Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ шаги. Π’Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ — это Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ успСх, поэтому ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ упраТнСния Π²Ρ‹ чувствуСтС сСбя ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ, Π° ваш ΠΌΠΎΠ·Π³ ΠΈ ΠΏΠ°Π»ΡŒΡ†Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ повторСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ укрСпляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ. Если это ваш ΡΡ‚ΠΈΠ»ΡŒ обучСния, слСдуйтС практичСскому ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΡŽ Алана Π€ΠΎΡ€ΠΌΠΈ-Π”ΡŽΠ²Π°Π»Π»Ρ для Git ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ выглядит ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ сСанс Git.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Git

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡŒΡ‚Π΅, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π΅Ρ‚, Π½ΠΎ Ρƒ Git большС интСрфСйсов, Ρ‡Π΅ΠΌ тСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² сСти Π΅ΡΡ‚ΡŒ Π²Π΅Π±-интСрфСйсы хостов Git, Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Git Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° лишь нСбольшая ΠΏΠΎΠΌΠΎΡ‰ΡŒ, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ ДТСсси Π”Π°Ρ„Ρ„ΠΈΠ»Π΄Π° ΠΎ Lazygit ΠΈΠ»ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠžΠ»Π°Ρ„Π° АндСрса ΠΎ Tig. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ прСдставлСниС ΠΎ графичСском ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ мою ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ Git-cola, Sparkleshare ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…. И Π΄Π°, Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ интСрфСйсы для Π²Π°ΡˆΠΈΡ… ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств!

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Git

Π—Π½Π°Π½ΠΈΠ΅ — сила, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡƒΡΡ‚ΡŒ Git Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ для вас Π·Π°Π³Π°Π΄ΠΊΠΎΠΉ.НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π΅Π³ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, ΠΈΠ»ΠΈ Π·Π½Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΈΠ»ΠΈ Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ Π½Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅, сСйчас ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Git. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ рСсурсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ людям это Ρ‚Π°ΠΊ нравится. ΠŸΠΎΠ³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ это Π² своСм собствСнном Ρ‚Π΅ΠΌΠΏΠ΅ ΠΈ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π»ΡŽΠ±ΠΈΡ‚ΡŒ Git!

Avnet HDL git HOWTO (Vivado 2020.2 ΠΈ Π½ΠΎΠ²Π΅Π΅) | element14

Π­Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ популярного сообщСния Π² Π±Π»ΠΎΠ³Π΅ Avnet HDL git HOWTO (Vivado 2020.1 ΠΈ Ρ€Π°Π½Π΅Π΅).

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Avnet прСдоставляСт BSP PetaLinux ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ эталонныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ для SOM Xilinx Zynq ΠΈ Zynq UltraScale + Zed (MicroZed, PicoZed ΠΈ UltraZed) ΠΈ ΠΏΠ»Π°Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (MiniZed ΠΈ Ultra96), Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ Avnet прСдоставляСт Xilinx Vivado TCL ΠΈ сцСнарии Linux bash для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ эти ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹? Avnet прСдоставляСт Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ git Π½Π° github для всСго, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ для создания ΠΈ настройки этих эталонных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².Π”ΠΈΠ·Π°ΠΉΠ½ Xilinx Zynq ΠΈΠ»ΠΈ Zynq MPSoC, Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ ΠΈ встроСнный Π² Vivado, являСтся основой Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для любого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ создано для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Π½Π΅ΠΌ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π² Π±Π»ΠΎΠ³Π΅ Π±ΡƒΠ΄Π΅Ρ‚ посвящСна созданию эталонной Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ с использованиСм сцСнария сборки Vivado TCL ΠΈΠ· рСпозитория Avnet «hdl» Π½Π° github.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ

Π‘ΠΌΠ΅Π»Ρ‹Π΅ прСдполоТСния:

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π½Π°ΠΊΠΎΠΌ с:

  • ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git
  • Командная строка Linux
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Xilinx Vivado
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ трСбования:
  • Ubuntu v16.04 LTS ΠΈΠ»ΠΈ v18.04 LTS 64-разрядная ОБ хоста
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Vivado установлСны ΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹
ВрСбования ΠΊ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ:
  • ПК с достаточным объСмом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ устройства (https: // www. xilinx.com/products/design-tools/vivado/memory.html). Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Ρ‡Π΅ΠΌ большС устройство, Ρ‚Π΅ΠΌ большС трСбуСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. НапримСр, Avnet UltraZed-EV SOM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ устройство Zynq UltraScale + 7EV (самоС большоС устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² настоящСС врСмя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° любой ΠΏΠ»Π°Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Avnet ΠΈΠ»ΠΈ SOM), для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ 11 Π“Π‘ ΠžΠ—Π£.
  • НС ΠΌΠ΅Π½Π΅Π΅ 100 Π“Π‘ свободного мСста Π½Π° дискС

Настройка рСпозитория

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ git Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны Π² ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сцСнарии сборки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для ссылки Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ git, ΠΈ запуститС сцСнарии. Π’ этой ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΠΌ потрСбуСтся Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 100 Π“Π‘ свободного дискового пространства. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ / home / / git / avnet.

$ cd ~

$ mkdir -p git / avnet

$ cd git / avnet

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Avnet Β«hdlΒ» ΠΈ Β«bdfΒ». Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Β«bdfΒ» хранятся Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΏΠ»Π°Ρ‚ Vivado (BDF), Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания ΠΈΠ»ΠΈ открытия Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для извСстного SOM ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Xilinx прСдоставляСт BDF для своих ΠΏΠ»Π°Ρ‚ (ZC702, ZCU102 ΠΈ Ρ‚. Π”.) И Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡ… Π² установку Vivado. Avnet прСдоставляСт этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ для BDF, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° ΠΈΡ… SOM ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

$ git clone https://github.com/avnet/bdf.git

Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ git «hdl» хранятся всС сцСнарии сборки TCL ΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, источники IP ΠΈ Ρ‚. Π”.) ).

$ git clone https://github.com/avnet/hdl.git

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ git

Как Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°Π΅Ρ‚Π΅, git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π²Π΅Ρ‚Π²Π΅ΠΉ для раздСлСния вСрсий исходных Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ вСрсий. Для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория с нСбольшим количСством ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ bdf, всС измСнСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² основной Π²Π΅Ρ‚ΠΊΠ΅.Для Π±ΠΎΠ»Π΅Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΠ³ΠΎ рСпозитория, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ hdl, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, привязанныС ΠΊ вСрсии инструмСнтов Vivado скриптов сборки, wtc. ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с

$ cd bdf $ git checkout master

$ cd ../hdl $ git checkout 2020.2

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² рСпозитория

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Avnet для Gitiv projects содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ:

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ОписаниС
ΠΏΠ»Π°Ρ‚ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ извСстной ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ SBC, SOM ΠΈ нСсущСй ΠΏΠ»Π°Ρ‚Ρ‹.КаТдая ΠΏΠ°ΠΏΠΊΠ° SBC ΠΈΠ»ΠΈ SOM ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡƒ для источников, спСцифичных для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ограничСния, сцСнарии TCL ΠΈ Ρ‚. Π”.) Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ доступного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π°.
ip Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ IP-адрСса, созданного Avnet, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….
ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ построСн ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Vivado. Π­Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ° игнорируСтся git.
сцСнария Π­Ρ‚Π° ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ° project_scripts содСрТат сцСнарии сборки TCL для ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ конструкции.
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС УстарСло. Он Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… сцСнариСв сборки. Он ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ рСпозитория ΠΏΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ.

Π­Ρ‚Π° структура Π±Ρ‹Π»Π° настроСна для максимальной гибкости Π² создании Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ максимального ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ². Avnet взяла Π½Π° сСбя ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту структуру для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ нашим ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ внСшний Π²ΠΈΠ΄ Π½Π°ΡˆΠΈΡ… эталонных Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ². Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² соотвСтствии со своими потрСбностями.

Анатомия скрипта сборки

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ запускаСм скрипт сборки Vivado, Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ скрипта сборки ΠΈ прослСдим Π·Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ происходящих событий. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ рассмотрим

скрипт сборки make_u96v2_sbc_base.tcl.

Π­Ρ‚ΠΎΡ‚ сцСнарий Π½Π΅ выглядит Ρ‚Π°ΠΊΠΈΠΌ ΡƒΠΆ большим, Π½ΠΎ вСсь процСсс сборки начинаСтся здСсь. Π­Ρ‚ΠΎΡ‚ скрипт опрСдСляСт:

  • Имя Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹: board = u96v2_sbc
  • НазваниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создаСм: project = base
  • Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Ρ‡Π΅Ρ€Π΅Π· Xilinx SDK: sdk = no
  • Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π»ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Vivado послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сцСнария: close_project = yes
  • АрхитСктура Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ устройства: dev_arch = zynqmp

Π­Ρ‚ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.tcl, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ:

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹
  • Π—Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды TCL для располоТСния Ρ„Π°ΠΉΠ»ΠΎΠ² BDF (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ рСпозитория hdl git)
  • Π—Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ располоТСниС ΠΏΠ»Π°Ρ‚Π°, IP ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • ЗапуститС сцСнарий сборки для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ΅ project_scripts: u96v2_sbc_base.tcl
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ любоС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Xilinx SDK (устарСло, SDK Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° Vitis)

Для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° скрипт сборки Π² ΠΏΠ°ΠΏΠΊΠ΅ project_scripts (u96v2_sbc_base.tcl) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Vivado, Ссли ΠΎΠ½ Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт
  • ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ настройки свойств ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ (ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° BDF)
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ IP-Π±Π»ΠΎΠΊΠΈ Avnet, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π²
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½ Π±Π»ΠΎΠΊΠ° Vivado ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π±Π»ΠΎΠΊ Zynq ΠΈΠ»ΠΈ Zynq UltraScale + Processing System (PS). ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ° для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚)
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства, IP-Π±Π»ΠΎΠΊΠΈ, мСТсоСдинСния AXI, устройства Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Ρ‚. Π΄.Π½Π° устройство Programmable Logic (PL) (извлСкаСтся ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ Boards для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹)
  • Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ HDL ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
  • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ синтСз ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  • Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π° для Π΄ΠΈΠ·Π°ΠΉΠ½Π° ( _ _ .xsa)

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ срСду сборки

ΠŸΠ΅Ρ€Π΅Π΄ запуском Vivado для запуска скрипта сборки ΠΌΡ‹ сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сцСнарии ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды для инструмСнтов Xilinx Vivado ΠΈ SDK.

$ source / tools / Xilinx / Vivado / <вСрсия Vivado> /settings64.sh

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅! <ВСрсия Vivado> Π”ΠžΠ›Π–ΠΠ Π‘ΠžΠžΠ’Π’Π•Π’Π‘Π’Π’ΠžΠ’ΠΠ’Π¬ Π²Π΅Ρ‚ΠΊΠ΅ git, которая Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ рСпозитория «hdl».

ЗапуститС сцСнарий сборки Vivado

ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

$ cd ~ / git / avnet / hdl / scripts

$ vivado -mode -mode batch -source ./make_u96v2_sbc НачнСтся сборка, ΠΈ Π² ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ прогрСсс ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ создания конструкции Π±Π»ΠΎΠΊΠ° ΠΈ построСния конструкции

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сборки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Vivado.

$ vivado &

НаТмитС ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ графичСского интСрфСйса быстрого запуска ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡƒ projects / .

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ OK, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ шаги Π² . Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΈΠΆΠ΅.

Из графичСского интСрфСйса Vivado:

ЗапуститС Π²Π΅Ρ€ΡΠΈΡŽ Vivado, которая соотвСтствуСт Π²Π΅Ρ‚Π²ΠΈ, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½ΠΎΠΉ ΠΈΠ· рСпозитория Β«HDLΒ», ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΎΠΊΠ½ΠΎ консоли TCL.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ <> / hdl / Scripts.

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сцСнарий сборки.

НачнСтся сборка, ΠΈ Π² графичСском интСрфСйсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ прогрСсс ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ создания конструкции Π±Π»ΠΎΠΊΠ° ΠΈ построСния конструкции.

Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Vivado Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ» ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±Ρ‹Π» построСн ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ для своих Π½ΡƒΠΆΠ΄.

Π¦Π΅Π½Π½ΠΎΡΡ‚ΡŒ извСстного Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ°

ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ идСя, лСТащая Π² основС этих сцСнариСв сборки TCL ΠΈ этого рСпозитория github «hdl», состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Avnet SOM ΠΈΠ»ΠΈ SBC , Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ.Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Xilinx с Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ со слоТными устройствами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Zynq ΠΈ Zynq MPSoC. БущСствуСт мноТСство Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ IP-устройств PS ΠΈ PL, ΠΎΡ‚ настройки ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° памяти ΠΈ настроСк синхронизации, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Ρ‚. Π”., ΠšΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ многочасовыС мучСния для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ссли ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² Avnet эти сцСнарии сборки ΠΈΠΌΠ΅ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСимущСство, обСспСчивая ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ эталонный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Π²Π½ΠΎΡΠΈΡ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄.

Git — Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ»ΠΎΡ…ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

О Π½Π΅Ρ‚, это бСспорядок!

Π£ всСх ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ Π΄Π½ΠΈ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΠ»ΠΈ слияниС ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидалось. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π² Git Π΅ΡΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ ситуациями, ΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС фиксации

Ой … Π’Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² сообщСнии фиксации.НС Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:

  git commit --amend -m "Π½ΠΎΠ²ΠΎΠ΅ сообщСниС"
  
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌΠ’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

Π’Ρ‹ ΡƒΠΆΠ΅ зафиксировали измСнСния, Π½ΠΎ Π·Π°Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ². НСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΊΠΎΠΌΠΌΠΈΡ‚:

  git add <имя_Ρ„Π°ΠΉΠ»Π°>
git commit --amend HEAD ~ 1
  
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌΠ’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния:

  git reset - мягкая Π“ΠžΠ›ΠžΠ’ΠšΠ ~ 1
  
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌΠ’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΈ измСнСния: ⚠️ Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ измСнСния:

  git reset --hard HEAD ~ 1
  
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌΠ’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сброс Π΄ΠΎ исходной вСрсии Π²Π΅Ρ‚ΠΊΠΈ:

  git reset --hard origin / <Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΎΡ‚Π²Π΅Ρ‚ΠΊΠΈ>
  
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌΠ’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Π±Π΅Π· измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ истории.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git revert , эта ΠΊΠΎΠΌΠ°Π½Π΄Π° отмСняСт Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, создавая Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ:

  git revert HEAD
  
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌΠ’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

Если Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹, Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ слияниС ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ. Но ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ …

БСзопасный способ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ слияния, которая ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​в ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, — это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git revert :

  git revert -m 1 
  
Π’ΠΎΠΉΡ‚ΠΈ Π² полноэкранный Ρ€Π΅ΠΆΠΈΠΌΠ’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· полноэкранного Ρ€Π΅ΠΆΠΈΠΌΠ°

commit_id — это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ фиксации слияния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ:

  • Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ любоС количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². НапримСр:

    • git reset HEAD ~ 3 (Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π΄ΠΎ HEAD).
    • git reset --hard (Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ фиксации).
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git reset , Ссли фиксация Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π°, ΠΈ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠ»ΠΎΡ…ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git revert , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ слияния, которая ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π° ​​в ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git log для просмотра истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

  • Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ с исправлСниСм.

Π― надСюсь, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ я, ΠΈ смоТСтС ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Если Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π»ΠΈ ΠΎΠ± этом ΠΈΠ»ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ отсутствуСт, сообщитС ΠΌΠ½Π΅ ΠΎΠ± этом Π² коммСнтариях. Бпасибо Π·Π° ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅!

ИспользованиС Git — ΠΊΠ°ΠΊ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксации | Π’ΠΎΠ»Π°Π½ΠΈ БСнсон | Startup

Git ΠΈ GitHub — это ΠΌΠΎΡ‰Π½Ρ‹Π΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС наши измСнСния Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ.ΠœΡ‹ всС Π·Π½Π°Π΅ΠΌ ΠΎΠ± этой ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ врСмя ΠΌΠ°Π³ΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ!

Π’ΠΎΡ‚ быстроС ΠΈ простоС руководство ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ врСмя Π²ΡΠΏΡΡ‚ΡŒ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии.

Π€ΠΎΡ‚ΠΎ: Icons8 Team Π½Π° Unsplash

НайдитС Π²Π΅Ρ€ΡΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, Π½Π°

Π£ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

1) Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти:

 $ git log --oneline 

Π’ΠΎΡ‚ Π³Π΄Π΅ это Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π°Π»ΠΈ сСбС ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сообщСния ΠΎ фиксации! Он ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π² вашСм Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ список ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² вмСстС с сообщСниСм фиксации, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ установили ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ.Если Ρƒ вас Π΅ΡΡ‚ΡŒ достойныС сообщСния ΠΎ фиксации ΠΈ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΈΡ‰Π΅Ρ‚Π΅, Π²Ρ‹ смоТСтС Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ вСрсии Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΎΡ‚ΡΡŽΠ΄Π°. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация, такая ΠΊΠ°ΠΊ врСмя, Π΄Π°Ρ‚Π° ΠΈ Π°Π²Ρ‚ΠΎΡ€ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ фиксации, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ --oneline .

2) Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ своих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ GitHub Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сайт GitHub. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ состояниС всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π΅ΠΏΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ фиксации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии.

Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ сообщСния ΠΎ фиксации ΠΈΠ»ΠΈ Π²Ρ‹ просто Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ вСрсии Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ. НСбольшиС ΠΈ частыС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Ρ‹Π»Π° чистой, ΠΈΠ·Π±Π°Π²ΠΈΡ‚ вас ΠΎΡ‚ нСобходимости ΠΈΠ΄Ρ‚ΠΈ этим ΠΏΡƒΡ‚Π΅ΠΌ.

Какой Π±Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‹ Π½ΠΈ использовали, Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ фиксации, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ.

Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ фиксации Π² вашСй локальной срСдС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git checkout ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ Π±Ρ‹ провСряли Π²Π΅Ρ‚ΠΊΡƒ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ:

 $ git checkout .

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ послСдний «». — Π’Π°ΠΌ Π½Π΅ трСбуСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ это, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ это сработало, Π½ΠΎ Ссли Π²Ρ‹ оставитС это ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ, это ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Ρ‚ вас Π² Π½ΠΎΠ²ΠΎΠ΅ «состояниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²Ρ‹Β» Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния, ΠΈ это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно, ΠΈ Π»ΡŽΠ±Ρ‹Π΅ сдСланныС Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ потСряны.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ вас ΠΊ вСрсии, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² своСй локальной срСдС.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ эту Π²Π΅Ρ€ΡΠΈΡŽ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с любой ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ фиксациСй, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ это состояниС.

 $ git add. 
$ git commit -m "Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ "
$ git push

Π”Π°ΠΉΡ‚Π΅ сСбС Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСниС ΠΎ фиксации — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ !!

Π’ΠΎΡ‚ ΠΈ всС! Π’Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΠ»ΠΈ врСмя Π²ΡΠΏΡΡ‚ΡŒ Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅! Π£Ρ€Π°!

Git: ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ

Π’ Π΄Π²ΡƒΡ… словах: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git rebase source-commit --onto target-branch

  • target-branch ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«Π²Π΅Ρ‚Π²ΡŒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡΒ»
  • source-commit ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ «фиксация ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ фиксациСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ»

Допустим, my-feature-branch основан Π½Π° master , ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» основан Π½Π° production .Рассмотрим эту ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ (самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ = послСдний):

  • фиксация 6 [my-feature-branch]
  • ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 5
  • фиксация 4 [мастСр]
  • ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 3
  • ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 2 [производство]
  • ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 1

Π—Π΄Π΅ΡΡŒ master ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Ρ‰Π΅ Π½Π΅Ρ‚ Π² production (Π½ΠΎΠΌΠ΅Ρ€Π° 3 ΠΈ 4).

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ простого git rebase production ΠΈΠ· my-feature-branch Π½Π΅ сработаСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ пСрСмСстит ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с 3 ΠΏΠΎ 6 Π² производство, эффСктивно объСдиняя master Π² production .Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ.

ВмСсто этого ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚Ρ€ΡƒΠ±ΠΈΡ‚ΡŒ наши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с master (Π½ΠΎΠΌΠ΅Ρ€Π° 5 ΠΈ 6) ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° production . Нам Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это (Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² my-feature-branch ):

 

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

git rebase --onto production master

Π­Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ git, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с master Π½Π° production , ΠΈ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ эту ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π² своСй Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅:

  • фиксация 6 [my-feature-branch]
  • ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 5
  • ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 2 [производство]
  • ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ 1

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ послС этого Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ своСй Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ, Ссли Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΎΠ½Π° Π±Ρ‹Π»Π° Π² источникС.


Как всСгда, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ…ΡΡˆΠΈ фиксации, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠ΅Π½Π° Π²Π΅Ρ‚ΠΎΠΊ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² любом случаС ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ярлыками для фиксации).

Π’Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ экспСртов DevOps?

Π£ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список запросов Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ€ΡƒΡ‚ΠΈΠ½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Π²ΠΊΡƒΠΏΠ΅ со сроками? ΠœΡ‹ с этим Π·Π½Π°ΠΊΠΎΠΌΡ‹. Π‘ нашим Β«DevOps ΠΊΠ°ΠΊ услуга» ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Ρ, ΠΌΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² с инфраструктурой ΠΈ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ эксплуатации.

Git: ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ git для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ, Ссли скаТСтС git push .
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ git push Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, Ссли Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ refspec, Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π½Π΅ настроСно refspec, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ refspec Π½Π΅ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния:

  • Π½ΠΈΡ‡Π΅Π³ΠΎ — Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ.
  • соотвСтствиС — Π½Π°ΠΆΠ°Ρ‚ΡŒ всС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‚Π²ΠΈ. ВсС Π²Π΅Ρ‚Π²ΠΈ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π½Π° ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠ½Ρ†Π°Ρ… ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
  • восходящий ΠΏΠΎΡ‚ΠΎΠΊ — ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ Π² Π²ΠΎΡΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ.
  • tracking — ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ синоним для восходящСго ΠΏΠΎΡ‚ΠΎΠΊΠ° .
  • тСкущая — ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои настройки, сдСлайтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ , ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ (см. Π’Ρ‹ΡˆΠ΅).

 

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

$ git config --global push.default соотвСтствиС

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ, просто скаТитС:

 

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅

git config --global push.Ρ‚ΠΎΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ отсутствиС Ρ„Π»Π°Π³Π° --global измСняСт Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ рСпозитория. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ слоТно Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΠ°ΠΊ сСбя Π²Π΅Π΄Π΅Ρ‚, Π²Π°ΠΌ слСдуСт Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ настройку.

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git push origin my-branch , Ρ‡Ρ‚ΠΎΠ±Ρ‹ явно ΠΏΡ€ΠΎΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΈΠ· нас Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ — это самый бСзопасный Ρ€Π΅ΠΆΠΈΠΌ push. Однако Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ нСбольшой ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт: ΠΊΠΎΠ³Π΄Π° Π²Π΅Ρ‚ΠΊΠ° с вашим Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ сущСствуСт Π½Π° вашСм ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, автоматичСски создаСт Π΅Π΅ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π₯отя ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, Π½Π΅ настраиваСт отслСТиваниС ΠΌΠ΅ΠΆΠ΄Ρƒ вашСй локальной ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ вСтвями . Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ git pull Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈ Git Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ вас, ΠΊΠΎΠ³Π΄Π° ваша локальная ΠΈ удалСнная Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Ρ‚Π²ΡŒ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… устройствах отслСТивания ΠΈ , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -u :

 

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

git push -u

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git push -u Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·, Ссли Π²Ρ‹ случайно создали ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Π½ΠΎ Π·Π°Π±Ρ‹Π»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ отслСТиваниС.