ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠΈ пристап Π΄ΠΎ сСрвСрот GIT

ΠŸΡ€ΠΈ ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°ΡšΠ΅ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Git сСрвСр, сС поставува ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ пристап Π·Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ корисници Π΄ΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. Π“ΠΎ истраТував ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ ΠΈ најдов Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡˆΡ‚ΠΎ Π³ΠΈ исполнува ситС ΠΌΠΎΠΈ Π±Π°Ρ€Π°ΡšΠ°: Сдноставно, Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ, сигурно.

ΠœΠΎΠΈΡ‚Π΅ ΠΆΠ΅Π»Π±ΠΈ сС:

  • сСкој корисник сС ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π° со своја смСтка
  • НСколку корисници ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
  • истиот корисник ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° повСќС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ
  • сСкој корисник ΠΈΠΌΠ° пристап само Π΄ΠΎ ΠΎΠ½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ
  • Π’Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија, Π° Π½Π΅ само ΠΏΡ€Π΅ΠΊΡƒ нСкој Π²ΠΈΠ΄ Π²Π΅Π±-ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ

Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ° Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΠ΄Π»ΠΈΡ‡Π½ΠΎ:

  • давањС Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ само Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈΡ‚Π΅ Π»ΠΈΡ†Π°
  • Погодно ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°Ρ˜Ρ‚Π΅ со ΠΏΡ€Π°Π²Π°Ρ‚Π° Π·Π° пристап Π½Π° корисницитС Π²ΠΎ Git

ΠŸΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΌΠΎΠΆΠ½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° пристап Π΄ΠΎ сСрвСрот GIT

ΠŸΡ€Π΅Π΄ сè, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ΄ ΡˆΡ‚ΠΎ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅, ΠΏΠ° Π·Π°Ρ‚ΠΎΠ° Π΅Π²Π΅ Π±Ρ€Π· ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ Git.

  • ssh - ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Π½Π° корисничка смСтка сС користи Π·Π° пристап Π΄ΠΎ сСрвСрот.
    • Π§ΡƒΠ΄Π½ΠΎ Π΅ ΡˆΡ‚ΠΎ Git Π½Π΅ ја исклучува ΠΎΠ΄ своитС ΠΏΡ€Π΅ΠΏΠΎΡ€Π°ΠΊΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° Π΅Π΄Π½Π° смСтка Π·Π° пристап Π΄ΠΎ ситС ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π°. Ова Π²ΠΎΠΎΠΏΡˆΡ‚ΠΎ Π½Π΅ Π³ΠΈ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡƒΠ²Π° ΠΌΠΎΠΈΡ‚Π΅ Π±Π°Ρ€Π°ΡšΠ°.
    • ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° користитС повСќС смСтки, Π½ΠΎ ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ корисничкиот пристап само Π΄ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ?
      • Π—Π°Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π²ΠΎ Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΠΎΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π½Π΅ Π΅ соодвСтно, бидСјќи Π΅ Ρ‚Π΅ΡˆΠΊΠΎ Π΄Π° сС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π° пристап Π·Π° ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Ρ‚Π°ΠΌΡƒ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ корисници
      • ΠšΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ симболи ΠΎΠ΄ Π²Π°ΡˆΠΈΠΎΡ‚ домашСн Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π΅ исто Ρ‚Π°ΠΊΠ° Ρ‚Π΅ΡˆΠΊΠΎ бидСјќи Git Π½Π΅ Π³ΠΈ Ρ‚ΠΎΠ»ΠΊΡƒΠ²Π° ΠΊΠ°ΠΊΠΎ врски
      • МоТно Π΅ Π΄Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ пристапот Π΄ΠΎ ΠΏΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π°Ρ‡ΠΎΡ‚, Π½ΠΎ Π½Π΅ постои цСлосна Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜Π° Π΄Π΅ΠΊΠ° Ρ‚ΠΎΡ˜ сСкогаш ќС Ρ€Π°Π±ΠΎΡ‚ΠΈ
        • Π“Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΎΠ²Ρ€Π·Π΅Ρ‚Π΅ сопствСн ΠΏΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π°Ρ‡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° Ρ‚Π°ΠΊΠ²ΠΈ корисници, Π½ΠΎ
          • ΠΏΡ€Π²ΠΎ, ΠΎΠ²Π° Π΅ вСќС Π½Π΅ΠΊΠ°ΠΊΠ²Π° Ρ‚Π΅ΡˆΠΊΠ° ΠΎΠ΄Π»ΡƒΠΊΠ°,
          • ΠΈ Π²Ρ‚ΠΎΡ€ΠΎ, ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ.

    Но, ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡˆΡ‚ΠΎ корисникот ќС ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΠΈ ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ?.. Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, овој ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС исклучи Π°ΠΊΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ сфатитС ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ користитС. На овој ΠΌΠ΅Ρ‚ΠΎΠ΄ ќС сС Π²Ρ€Π°Ρ‚ΠΈΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΡ†Π½Π°, Π½ΠΎ засСга Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ ќС Π³ΠΈ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ, ΠΌΠΎΠΆΠ΅Π±ΠΈ ќС ΠΈΠΌΠ° Π½Π΅ΡˆΡ‚ΠΎ поСдноставно.

  • Π›ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» git ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π²ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ˜Π° со sshfs, ΠΌΠΎΠΆΠ΅ Π΄Π° сС користат повСќС корисници, Π½ΠΎ Π²ΠΎ ΡΡƒΡˆΡ‚ΠΈΠ½Π° ист ΠΊΠ°ΠΊΠΎ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜
  • http - само Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅
  • git Π΅ само Π·Π° Ρ‡ΠΈΡ‚Π°ΡšΠ΅
  • https - Ρ‚Π΅ΡˆΠΊΠΎ сС инсталира, ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ Π²ΠΈ Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ софтвСр, Π½Π΅ΠΊΠ°ΠΊΠΎΠ² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π» Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° корисничкиот пристап... ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΈΠ·Π²ΠΎΠ΄Π»ΠΈΠ²ΠΎ, Π½ΠΎ Π½Π΅ΠΊΠ°ΠΊΠΎ сС Π΅ ΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΡ‚ ssh Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠΈ пристап Π΄ΠΎ сСрвСрот Git

Π”Π° сС ​​вратимС Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΡ‚ ssh.

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ користитС ssh пристап Π·Π° git, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја осигуратС бСзбСдноста Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° сСрвСрот. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΊΠΎΡ‚ кој сС ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π° ΠΏΡ€Π΅ΠΊΡƒ ssh користи сопствСно Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° сСрвСрот Linux, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅ ΠΏΡ€Π΅ΠΊΡƒ ssh ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ ΠΈ Π΄Π° пристапи Π΄ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија Π½Π° сСрвСрот.
НС постои цСлосна Π·Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ Ρ‚Π°ΠΊΠΎΠ² пристап.

Но, корисникот Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ заинтСрСсиран Π·Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π½Π° Linux. Π—Π½Π°Ρ‡Π°Ρ˜Π½ΠΈΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ сС Ρ‡ΡƒΠ²Π°Π°Ρ‚ само Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ git. Π—Π°Ρ‚ΠΎΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° Π½Π΅ сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ пристапот ΠΏΡ€Π΅ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија, Ρ‚ΡƒΠΊΡƒ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π½Π° Linux Π·Π° Π΄Π° сС Π·Π°Π±Ρ€Π°Π½ΠΈ корисникот Π΄Π° Π³Π»Π΅Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΈΡΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΈ ΠΎΠ½ΠΈΠ΅ Π²ΠΎ ΠΊΠΎΠΈ учСствува.
ΠžΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΈΠΎΡ‚ ΠΈΠ·Π±ΠΎΡ€ Π΅ Π΄Π° сС користи систСмот Π·Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Linux.

Како ΡˆΡ‚ΠΎ вСќС спомСнавмС, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС користи само Π΅Π΄Π½Π° смСтка Π·Π° пристап Π΄ΠΎ ssh. Оваа ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π΅ Π½Π΅Π±Π΅Π·Π±Π΅Π΄Π½Π° Π·Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ корисници, ΠΈΠ°ΠΊΠΎ Π΅ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½Π° Π²ΠΎ списокот со ΠΏΡ€Π΅ΠΏΠΎΡ€Π°Ρ‡Π°Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° git.

Π—Π° Π΄Π° сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π°, сС ΠΊΡ€Π΅ΠΈΡ€Π° слСднава структура Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ со Π΄ΠΎΠ΄Π΅Π»ΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€Π°Π²Π° ΠΈ сопствСници:

1) ΠΈΠΌΠ΅Π½ΠΈΡ†ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ

dir1(proj1:proj1,0770)
dir2(proj2:proj2,0770)
dir3(proj3:proj3,0770)
...
ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ
dir1, dir2, dir3 - ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ: ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ 1, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ 2, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ 3.

proj1:proj1, proj2:proj2, proj3:proj3 сС ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Π½ΠΈ корисници Π½Π° Linux ΠΊΠΎΠΈ сС Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ сопствСници Π½Π° соодвСтнитС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.

Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ Π·Π° ситС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ сС поставСни Π½Π° 0770 - цСлосСн пристап Π·Π° сопствСникот ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° ΠΈ цСлосна Π·Π°Π±Ρ€Π°Π½Π° Π·Π° ситС останати.

2) смСтки Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 1: dev1:dev1,proj1,proj2
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ 2: dev2:dev2,proj2,proj3

ΠšΠ»ΡƒΡ‡Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π΅ ΡˆΡ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΈΠΌ Π΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Π³Ρ€ΡƒΠΏΠ° Π½Π° сопствСникот Π½Π° корисникот Π½Π° систСмот Π½Π° соодвСтниот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Ова Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ администраторот Π½Π° сСрвСрот Линукс со Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Π’ΠΎ овој ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€žDeveloper 1β€œ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ proj1 ΠΈ proj2, Π° β€žDeveloper 2β€œ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ proj2 ΠΈ proj3.

Ако нСкој ΠΎΠ΄ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ сС ΠΏΠΎΠ²Ρ€Π·Π΅ ΠΏΡ€Π΅ΠΊΡƒ ssh ΠΏΡ€Π΅ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија, Ρ‚ΠΎΠ³Π°Ρˆ Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²Π° Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ Π΄ΡƒΡ€ΠΈ Π½ΠΈ Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° содрТината Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ Π²ΠΎ ΠΊΠΎΠΈ Π½Π΅ учСствуваат. Вој самиот Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΠ²Π°.

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ основата Π½Π° овој ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΅ основната бСзбСдност Π½Π° ΠΏΡ€Π°Π²Π°Ρ‚Π° Π½Π° Линукс, ΠΎΠ²Π°Π° шСма Π΅ сигурна. ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, ΡˆΠ΅ΠΌΠ°Ρ‚Π° Π΅ ΠΌΠ½ΠΎΠ³Ρƒ лСсна Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€Π°ΡšΠ΅.

АјдС Π΄Π° ΠΎΠ΄ΠΈΠΌΠ΅ Π½Π° пракса.

ΠšΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° Π½Π° Git Π½Π° сСрвСр Π½Π° Linux

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°.

[root@server ~]# cd /var/
[root@server var]# useradd gitowner
[root@server var]# mkdir gitservertest
[root@server var]# chown gitowner:gitowner gitservertest
[root@server var]# adduser proj1
[root@server var]# adduser proj2
[root@server var]# adduser proj3
[root@server var]# adduser dev1
[root@server var]# adduser dev2
[root@server var]# passwd dev1
[root@server var]# passwd dev2

Π£ΠΌΠΎΡ€Π΅Π½ сум Π΄Π° ΠΏΠΈΡˆΡƒΠ²Π°ΠΌ Π½Π° Ρ€Π°ΠΊΠ°...

[root@server gitservertest]# sed "s/ /n/g" <<< "proj1 proj2 proj3" | while read u; do mkdir $u; chown $u:$u $u; chmod 0770 $u; done

[root@server gitservertest]# usermod -aG proj1 dev1
[root@server gitservertest]# usermod -aG proj2 dev1
[root@server gitservertest]# usermod -aG proj2 dev2
[root@server gitservertest]# usermod -aG proj3 dev2

Π£Π±Π΅Π΄Π΅Π½ΠΈ смС Π΄Π΅ΠΊΠ° Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС пристапи Π΄ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π°Ρ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π»ΡƒΡ“Π΅ ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија, ΠΏΠ° Π΄ΡƒΡ€ΠΈ ΠΈ Π΄Π° сС ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Π½ΠΈΠ²Π½Π°Ρ‚Π° содрТина.

[dev1@server ~]$ cd /var/gitservertest/proj3
-bash: cd: /var/gitservertest/proj3: Permission denied
[dev1@server ~]$ ls /var/gitservertest/proj3
ls: cannot open directory /var/gitservertest/proj3: Permission denied

Π‘ΠΎΡ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Ρ˜Ρ‚Π΅ со повСќС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π½Π° истиот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π²ΠΎ Git

ΠžΡΡ‚Π°Π½ΡƒΠ²Π° Π΅Π΄Π½ΠΎ ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅, Π°ΠΊΠΎ Π΅Π΄Π΅Π½ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Π²ΠΎΠ²Π΅Π΄Π΅ Π½ΠΎΠ²Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, Ρ‚ΠΎΠ³Π°Ρˆ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ја ΠΏΡ€ΠΎΠΌΠ΅Π½Π°Ρ‚, бидСјќи Ρ‚ΠΎΡ˜ самиот Π΅ нСјзин сопствСник (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, dev1), Π° Π½Π΅ корисник сопствСник Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, proj1). Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ ΠΎΠ΄ страна Π½Π° сСрвСрот, ΠΏΡ€Π΅Π΄ сè, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π·Π½Π°Π΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΅ структуриран Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ β€ž.gitβ€œ ΠΈ Π΄Π°Π»ΠΈ сС ΠΊΡ€Π΅ΠΈΡ€Π°Π°Ρ‚ Π½ΠΎΠ²ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ.

БоздавањС Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Π½Π° Git ΠΈ ΠΏΡ€ΠΈΡ‚ΠΈΡΠΊΠ°ΡšΠ΅ Π΄ΠΎ сСрвСрот Git

АјдС Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌΠ΅ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Microsoft Windows [Version 6.1.7601]
(c) ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΡ ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ (Microsoft Corp.), 2009. ВсС ΠΏΡ€Π°Π²Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹.

C:gittest>git init .
Initialized empty Git repository in C:/gittest/.git/

C:gittest>echo "test dev1 to proj2" > test1.txt

C:gittest>git add .

C:gittest>git status
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test1.txt

C:gittest>git commit -am "new test file added"
[master (root-commit) a7ac614] new test file added
 1 file changed, 1 insertion(+)
 create mode 100644 test1.txt
 
C:gittest>git remote add origin "ssh://[email protected]/var/gitservertest/proj2"

C:gittest>git push origin master
dev1:[email protected]'s password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 243 bytes | 243.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://10.1.1.11/var/gitservertest/proj2
 * [new branch]      master -> master

C:gittest>

Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, Π½Π° сСрвСрот сС ΠΊΡ€Π΅ΠΈΡ€Π°Π°Ρ‚ Π½ΠΎΠ²ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΈ ΠΌΡƒ ΠΏΡ€ΠΈΠΏΠ°Ρ“Π°Π°Ρ‚ Π½Π° корисникот кој Π³ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠΈΠ» притисокот

[dev1@server proj2]$ tree
.
β”œβ”€β”€ 1.txt
β”œβ”€β”€ branches
β”œβ”€β”€ config
β”œβ”€β”€ description
β”œβ”€β”€ HEAD
β”œβ”€β”€ hooks
β”‚   β”œβ”€β”€ applypatch-msg.sample
β”‚   β”œβ”€β”€ commit-msg.sample
β”‚   β”œβ”€β”€ post-update.sample
β”‚   β”œβ”€β”€ pre-applypatch.sample
β”‚   β”œβ”€β”€ pre-commit.sample
β”‚   β”œβ”€β”€ prepare-commit-msg.sample
β”‚   β”œβ”€β”€ pre-push.sample
β”‚   β”œβ”€β”€ pre-rebase.sample
β”‚   └── update.sample
β”œβ”€β”€ info
β”‚   └── exclude
β”œβ”€β”€ objects
β”‚   β”œβ”€β”€ 75
β”‚   β”‚   └── dcd269e04852ce2f683b9eb41ecd6030c8c841
β”‚   β”œβ”€β”€ a7
β”‚   β”‚   └── ac6148611e69b9a074f59a80f356e1e0c8be67
β”‚   β”œβ”€β”€ f0
β”‚   β”‚   └── 82ea1186a491cd063925d0c2c4f1c056e32ac3
β”‚   β”œβ”€β”€ info
β”‚   └── pack
└── refs
    β”œβ”€β”€ heads
    β”‚   └── master
    └── tags

12 directories, 18 files
[dev1@server proj2]$ ls -l objects/75/dcd269e04852ce2f683b9eb41ecd6030c8c841
-r--r--r--. 1 dev1 dev1 54 Jun 20 14:34 objects/75/dcd269e04852ce2f683b9eb41ecd6030c8c841
[dev1@server proj2]$

Кога поставуватС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° сСрвСрот Git, сС создаваат Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ, Π° Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ сопствСник Π΅ Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚ корисникот кој Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ. Но, Ρ‚ΠΎΠ³Π°Ρˆ Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° Π½Π° ΠΎΠ²ΠΈΠ΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° ΠΈ Π½Π° Π³Π»Π°Π²Π½Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° Π½Π° овој корисник, односно Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° dev1 Π·Π° корисникот dev1 ΠΈ Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° dev2 Π·Π° корисникот dev2 (ΠΏΡ€ΠΎΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Π³Π»Π°Π²Π½Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° Π½Π° корисникот Π½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π΅ΠΌΠ° Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅, Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Ρ‚ΠΎΠ³Π°Ρˆ ΠΊΠ°ΠΊΠΎ моТСш Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡˆ Π½Π° повСќС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ?). Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, корисникот dev2 Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΌΠ΅Π½ΡƒΠ²Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ создадСни ΠΎΠ΄ корисникот dev1, ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π΄Π΅Ρ„Π΅ΠΊΡ‚ Π²ΠΎ функционалноста.

Linux chown - ΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° сопствСникот Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΎΠ΄ Ρ€Π΅Π΄ΠΎΠ²Π΅Π½ корисник

БопствСникот Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ја ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π΅Ρ˜Π·ΠΈΠ½Π°Ρ‚Π° сопствСност. Но, Ρ‚ΠΎΡ˜ ΠΌΠΎΠΆΠ΅ Π΄Π° ја ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΡˆΡ‚ΠΎ ΠΌΡƒ ΠΏΡ€ΠΈΠΏΠ°Ρ“Π°, Π° ΠΏΠΎΡ‚ΠΎΠ° ΠΎΠ²Π°Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Ρ‚Π° ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈ корисници ΠΊΠΎΠΈ сС Π²ΠΎ истата Π³Ρ€ΡƒΠΏΠ°. Π’ΠΎΠ° Π΅ ΠΎΠ½Π° ΡˆΡ‚ΠΎ Π½ΠΈ Ρ‚Ρ€Π΅Π±Π°.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΊΡƒΠΊΠ° Git

Π Π°Π±ΠΎΡ‚Π½ΠΈΠΎΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ Π·Π° ΠΊΡƒΠΊΠ° Π΅ root Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚. ΠΊΡƒΠΊΠ° Π΅ ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎΠ΄ корисникот кој Π²Ρ€ΡˆΠΈ ΠΏΡ€ΠΈΡ‚ΠΈΡΠΊΠ°ΡšΠ΅. Π—Π½Π°Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ спровСдСмС Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΎΠ²ΠΈ.

[dev1@server proj2]$ mv hooks/post-update{.sample,}
[dev1@server proj2]$ sed -i '2,$ s/^/#/' hooks/post-update
[dev1@server proj2]$ cat <<< 'find . -group $(whoami) -exec chgrp proj2 '"'"'{}'"'"' ;' >> hooks/post-update

или само

vi hooks/post-update

Π”Π° сС ​​вратимС Π½Π° клиСнтската машина.

C:gittest>echo "dev1 3rd line" >> test1.txt

C:gittest>git commit -am "3rd from dev1, testing server hook"
[master b045e22] 3rd from dev1, testing server hook
 1 file changed, 1 insertion(+)

C:gittest>git push origin master
dev1:[email protected]'s password:
   d22c66e..b045e22  master -> master

На сСрвСрот Git, ја ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° скриптата Π·Π° пост-Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΡƒΠΊΠ°Ρ‚Π° ΠΏΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ

[dev1@server proj2]$ find . ! -group proj2

- ΠΏΡ€Π°Π·Π½ΠΎ, сС Π΅ Π²ΠΎ Ρ€Π΅Π΄.

ΠŸΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Ρ‚ΠΎΡ€ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Π²ΠΎ Git

АјдС Π΄Π° ја симулирамС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡.

На ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚

C:gittest>git remote remove origin

C:gittest>git remote add origin "ssh://[email protected]/var/gitservertest/proj2"

C:gittest>echo "!!! dev2 added this" >> test1.txt

C:gittest>echo "!!! dev2 wrote" > test2.txt

C:gittest>git add test2.txt

C:gittest>git commit -am "dev2 added to test1 and created test2"
[master 55d49a6] dev2 added to test1 and created test2
 2 files changed, 2 insertions(+)
 create mode 100644 test2.txt

C:gittest>git push origin master
[email protected]'s password:
   b045e22..55d49a6  master -> master

И Π²ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, Π½Π° сСрвСрот ...

[dev1@server proj2]$ find . ! -group proj2

- ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€Π°Π·Π½ΠΎ, сС Ρ€Π°Π±ΠΎΡ‚ΠΈ.

Π‘Ρ€ΠΈΡˆΠ΅ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Git ΠΈ ΠΏΡ€Π΅Π·Π΅ΠΌΠ°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ ΠΎΠ΄ сСрвСрот Git

Па, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡˆΡ‚Π΅ Сднаш Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π΅ΠΊΠ° ситС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ сС Π·Π°Ρ‡ΡƒΠ²Π°Π½ΠΈ.

C:gittest>rd /S /Q .
ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ этот Ρ„Π°ΠΉΠ» занят Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссом.

- Π·Π° Π΄Π° ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Git, Сдноставно исчистСтС Π³ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ цСлосно. АјдС Π΄Π° сС справимС со Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° ΡˆΡ‚ΠΎ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°, бидСјќи Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅ Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈΠΎΡ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ со помош Π½Π° ΠΎΠ²Π°Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π½ΠΎ ΠΎΠ²Π° Π΅ Ρ‚ΠΎΠΊΠΌΡƒ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ ΡˆΡ‚ΠΎ Π½ΠΈ Ρ‚Ρ€Π΅Π±Π°.

C:gittest>dir
 Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ C:gittest

21.06.2019  08:43    <DIR>          .
21.06.2019  08:43    <DIR>          ..

C:gittest>git clone ssh://[email protected]/var/gitservertest/proj2
Cloning into 'proj2'...
[email protected]'s password:

C:gittest>cd proj2

C:gittestproj2>dir
 Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΏΠΊΠΈ C:gittestproj2

21.06.2019  08:46    <DIR>          .
21.06.2019  08:46    <DIR>          ..
21.06.2019  08:46               114 test1.txt
21.06.2019  08:46                19 test2.txt
C:gittestproj2>type test1.txt
"test dev1 to proj2"
"dev1 added some omre"
"dev1 3rd line"
"!!! dev2 added this"

C:gittestproj2>type test2.txt
"!!! dev2 wrote"

Π‘ΠΏΠΎΠ΄Π΅Π»ΡƒΠ²Π°ΡšΠ΅ Π½Π° пристап Π²ΠΎ Git

Π‘Π΅Π³Π° Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈ ΠΏΡ€Π΅ΠΊΡƒ Git Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° пристапи Π΄ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Proj1, Π½Π° кој Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ.

C:gittestproj2>git remote remove origin

C:gittestproj2>git remote add origin "ssh://[email protected]/var/gitservertest/proj1"

C:gittestproj2>git push origin master
[email protected]'s password:
fatal: '/var/gitservertest/proj1' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Π‘Π΅Π³Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°ΠΌΠ΅ пристап

[root@server ~]# usermod -aG proj1 dev2

ΠΈ послС Ρ‚ΠΎΠ° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ.

C:gittestproj2>git push origin master
[email protected]'s password:
To ssh://10.1.1.11/var/gitservertest/proj1
 * [new branch]      master -> master

Π—Π° повСќС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ,

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со стандарднитС Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΡ€ΠΈ ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ, Π²ΠΎ CentOS ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја користитС ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

setfacl -Rd -m o::5 -m g::7 /var/gitservertest

Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, Π²ΠΎ ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС сопнСтС Π½Π° ΠΌΠ°Π»ΠΈ корисни Ρ€Π°Π±ΠΎΡ‚ΠΈ:

  • ΠΊΠ°ΠΊΠΎ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ Π΄Ρ€Π²ΠΎ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ Π²ΠΎ Linux
  • ΠΊΠ°ΠΊΠΎ Π΄Π° сС прСнСсС опсСг Π½Π° адрСси Π²ΠΎ sed ΠΎΠ΄ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° линија Π΄ΠΎ ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°, односно Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π·Π°ΠΌΠ΅Π½Π° Π²ΠΎ sed Π²ΠΎ ситС Π»ΠΈΠ½ΠΈΠΈ освСн Π²ΠΎ ΠΏΡ€Π²Π°Ρ‚Π° линија
  • Како Π΄Π° сС ΠΏΡ€Π΅Π²Ρ€Ρ‚ΠΈ условот Π·Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ Π½Π°ΠΎΡ“Π°ΡšΠ΅ Π½Π° Linux
  • Како Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅Ρ‚Π΅ повСќС Π»ΠΈΠ½ΠΈΠΈ Π²ΠΎ јамка ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Сднослојно Π²ΠΎ ΡˆΠΊΠΎΠ»ΠΊΠ°Ρ‚Π° Π½Π° Linux
  • Како Π΄Π° ΠΈΠ·Π±Π΅Π³Π°Ρ‚Π΅ ΠΎΠ΄ Π΅Π΄ΠΈΠ½Π΅Ρ‡Π½ΠΈ Ρ†ΠΈΡ‚Π°Ρ‚ΠΈ Π²ΠΎ баш
  • ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ со Ρ†Π΅Π»Π°Ρ‚Π° Π½Π΅Π³ΠΎΠ²Π° содрТина Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија Π½Π° Windows
  • Како Π΄Π° користитС bash mv Π·Π° ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° ја ΠΏΡ€Π΅ΠΏΠΈΡˆΠ΅Ρ‚Π΅

Π’ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌΠ΅ Π·Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€