ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืžื•ืœื˜ื™-ื‘ืึทื ื™ืฆืขืจ ืึทืงืกืขืก ืฆื• ื“ื™ GIT ืกืขืจื•ื•ืขืจ

ื•ื•ืขืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืึท Git ืกืขืจื•ื•ืขืจ, ื“ื™ ืงืฉื™ื ืขืจื™ื™ื–ืึทื– ื•ื•ืขื’ืŸ ืึธืจื’ืึทื ื™ื™ื–ื™ื ื’ ืึทืงืกืขืก ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื™ื•ื–ืขืจื– ืฆื• ืขื˜ืœืขื›ืข ืคึผืจืึทื“ื–ืฉืขืงืก. ืื™ืš ืจื™ืกืขืจื˜ืฉื˜ ื“ืขื ืึทืจื•ื™ืกื’ืขื‘ืŸ ืื•ืŸ ื’ืขืคึฟื•ื ืขืŸ ืึท ืœื™ื™ื–ื•ื ื’ ื•ื•ืึธืก ื‘ืื’ืขื’ื ื˜ ืึทืœืข ืžื™ื™ืŸ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ: ืคึผืฉื•ื˜, ื–ื™ื›ืขืจ, ืคืึทืจืœืึธื–ืœืขืš.

ืžื™ื™ื ืข ื•ื•ืื•ื ื˜ืฉืŸ ื–ืขื ืขืŸ:

  • ื™ืขื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืึทื ืขืงืฅ ืžื™ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื—ืฉื‘ื•ืŸ
  • ืขื˜ืœืขื›ืข ื™ื•ื–ืขืจื– ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜
  • ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื‘ืึทื ื™ืฆืขืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืงื™ื™ืคืœ ืคึผืจืึทื“ื–ืฉืขืงืก
  • ื™ืขื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื”ืื˜ ืฆื•ื˜ืจื™ื˜ ื‘ืœื•ื™ื– ืฆื• ื“ื™ ืคึผืจืึทื“ื–ืฉืขืงืก ืื•ื™ืฃ ื•ื•ืึธืก ืขืจ ืึทืจื‘ืขื˜
  • ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืžืขื’ืœืขืš ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ื“ื•ืจืš ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”, ืื•ืŸ ื ื™ื˜ ื ืึธืจ ื“ื•ืจืš ืขื˜ืœืขื›ืข ืžื™ืŸ ืคื•ืŸ ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“

ืขืก ื•ื•ืึธืœื˜ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืจื•ื™ืก:

  • ื’ืขื‘ืŸ ื‘ืœื•ื™ื– ืœื™ื™ืขื ืขืŸ ืคึผืขืจืžื™ืฉืึทื ื– ืฆื• ืงืึทื ื˜ืจืึธื•ืœื™ื ื’ ืžืขื ื˜ืฉืŸ
  • ืงืึทื ื•ื•ื™ื ื™ืึทื ื˜ืœื™ ืคื™ืจืŸ ื‘ืึทื ื™ืฆืขืจ ืึทืงืกืขืก ืจืขื›ื˜ ืื™ืŸ Git

ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ืžืขื’ืœืขืš ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ืึทืงืกืขืก ื“ื™ GIT ืกืขืจื•ื•ืขืจ

ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื•ื•ื™ืกืŸ ื•ื•ืึธืก ืฆื• ืงืœื™ื™ึทื‘ืŸ ืคื•ืŸ, ืึทื–ื•ื™ ื“ืึธ ืก ืึท ืฉื ืขืœ ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื’ื™ื˜ ืคึผืจืึธื˜ืึธืงืึธืœืก.

  • ssh - ืึท ืกืคึผืขืฉืœื™ ื‘ืืฉืืคืŸ ื‘ืึทื ื™ืฆืขืจ ื—ืฉื‘ื•ืŸ ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืึทืงืกืขืก ื“ื™ ืกืขืจื•ื•ืขืจ.
    • ืขืก ืื™ื– ืžืึธื“ื ืข ืึทื– Git ื˜ื•ื˜ ื ื™ืฉื˜ ื•ื™ืกืฉืœื™ืกืŸ ืคื•ืŸ ื–ื™ื™ืŸ ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื– ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืื™ื™ืŸ ื—ืฉื‘ื•ืŸ ืฆื• ืึทืงืกืขืก ืึทืœืข ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ื–. ื“ืืก ืงื•ืžื˜ ื‘ื›ืœืœ ื ื™ืฉื˜ ืฆื• ืžื™ื™ื ืข ื‘ืื“ืขืจืคืขื ื™ืฉืŸ.
    • ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืงื™ื™ืคืœ ืึทืงืึทื•ื ืฅ, ืึธื‘ืขืจ ื•ื•ื™ ืงืขื ืขืŸ ืื™ืจ ื‘ืึทื’ืจืขื ืขืฆืŸ ื‘ืึทื ื™ืฆืขืจ ืึทืงืกืขืก ืฆื• ื‘ืœื•ื™ื– ื–ื™ื›ืขืจ ื“ื™ื™ืจืขืงื˜ืขืจื™ื–?
      • ืงืœืึธื•ื–ื™ื ื’ ืื™ืŸ ื“ื™ ื”ื™ื™ื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง, ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืฉื•ื•ืขืจ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืฉืจื™ื™ึทื‘ืŸ ืึทืงืกืขืก ื“ืึธืจื˜ ืคึฟืึทืจ ืื ื“ืขืจืข ื ื™ืฆืขืจืก
      • ืขืก ืื™ื– ืื•ื™ืš ืฉื•ื•ืขืจ ืฆื• ื ื•ืฆืŸ ืกื™ืžืœื™ื ืงืก ืคื•ืŸ ื“ื™ื™ืŸ ื”ื™ื™ื ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื•ื•ื™ื™ึทืœ Git ืงืขืŸ ื ื™ืฉื˜ ื˜ื™ื™ึทื˜ืฉืŸ ื–ื™ื™ ื•ื•ื™ ืœื™ื ืงืก
      • ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ืึทืงืกืขืก ืฆื• ื“ื™ ื™ื‘ืขืจื–ืขืฆืขืจ, ืึธื‘ืขืจ ืขืก ืื™ื– ืงื™ื™ืŸ ืคื•ืœ ื’ืึทืจืึทื ื˜ื™ืจืŸ ืึทื– ืขืก ื•ื•ืขื˜ ืฉื˜ืขื ื“ื™ืง ืึทืจื‘ืขื˜
        • ืื™ืจ ืงืขื ืขืŸ ื‘ื›ืœืœ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื‘ืึทืคึฟืขืœ ื™ื‘ืขืจื–ืขืฆืขืจ ืคึฟืึทืจ ืึทื–ืึท ื™ื•ื–ืขืจื–, ืึธื‘ืขืจ
          • ืงื•ื“ื ื›ืœ ืื™ื– ื“ืืก ืฉื•ื™ืŸ ื ืฉื•ื•ืขืจืข ื‘ืืฉืœื•ืก,
          • ืื•ืŸ ืฆื•ื•ื™ื™ื˜ื ืก, ืงืขืŸ ืžืขืŸ ื“ืืก ืื•ืžืงืขืจืŸ.

    ืื‘ืขืจ ืืคืฉืจ ืื™ื– ื ื™ืฉื˜ ืงื™ื™ืŸ ืคืจืื‘ืœืขื ืื– ื“ืขืจ ื‘ืื ื•ืฆืขืจ ื•ื•ืขื˜ ืงืขื ืขืŸ ืื•ื™ืกืคื™ืจืŸ ืกื™ื™ ื•ื•ืขืœื›ืข ื‘ืืคืขืœืŸ?.. ืื™ืŸ ืืœื’ืขืžื™ื™ืŸ ืงืขืŸ ืžืขืŸ ื ื™ืฉื˜ ืื•ื™ืกืฉืœื™ืกืŸ ื“ืขื ืžืขื˜ืื“ ืื•ื™ื‘ ืžืขืŸ ืคืืจืฉื˜ื™ื™ื˜ ืคื•ื ืงื˜ืœื™ืš ื•ื•ื™ ืื–ื•ื™ ืžืขืŸ ืงืขืŸ ื“ืืก ื ื•ืฆืŸ. ืžื™ืจ ื•ื•ืขืœืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืฆื• ื“ืขื ืื•ืคึฟืŸ ืฉืคึผืขื˜ืขืจ, ืึธื‘ืขืจ ืื™ืฆื˜ ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืขืงื™ืฆืขืจ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ืื ื“ืขืจืข ืึทืœื˜ืขืจื ืึทื˜ื™ื•ื•ืขืก, ืืคึฟืฉืจ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืขืคึผืขืก ืกื™ืžืคึผืœืขืจ.

  • ื“ื™ ื’ื™ื˜ ื”ื™ื’ืข ืคึผืจืึธื˜ืึธืงืึธืœ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื™ืŸ ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืžื™ื˜ sshfs, ืงื™ื™ืคืœ ื™ื•ื–ืขืจื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜, ืึธื‘ืขืจ ื™ืกืขื ืฉืึทืœื™ ื“ื™ ื–ืขืœื‘ืข ื•ื•ื™ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืคืึทืœ
  • ื”ื˜ื˜ืคึผ - ื‘ืœื•ื™ื– ืœื™ื™ืขื ืขืŸ
  • ื’ื™ื˜ ืื™ื– ื‘ืœื•ื™ื– ืœื™ื™ืขื ืขืŸ
  • https - ืฉื•ื•ืขืจ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ื ืึธืš ื•ื•ื™ื™ื›ื•ื•ืืจื’, ืึท ืžื™ืŸ ืคื•ืŸ ืงืึธื ื˜ืจืึธืœ ื˜ืึทืคืœื™ืข ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ื‘ืึทื ื™ืฆืขืจ ืึทืงืกืขืก ... ืขืก ืงื•ืงื˜ ืคื™ื–ืึทื‘ืึทืœ, ืึธื‘ืขืจ ืขืคืขืก ืึทืœืฅ ืื™ื– ืงืึธืžืคึผืœื™ืฆื™ืจื˜.

ื ื™ืฆืŸ ื“ื™ ssh ืคึผืจืึธื˜ืึธืงืึธืœ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืžืึทืœื˜ื™-ื‘ืึทื ื™ืฆืขืจ ืึทืงืกืขืก ืฆื• ื“ื™ Git ืกืขืจื•ื•ืขืจ

ืœืึธืžื™ืจ ื–ื™ืš ืื•ืžืงืขืจืŸ ืฆื• ื“ืขื ืฉืฉ ืคึผืจืึธื˜ืึธืงืึธืœ.

ื–ื™ื ื˜ ืื™ืจ ื ื•ืฆืŸ ssh ืึทืงืกืขืก ืคึฟืึทืจ ื’ื™ื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืขื ืฉื•ืจ ื“ื™ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ื“ืึทื˜ืŸ. ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืึธืก ืงืึทื ืขืงืฅ ื“ื•ืจืš ssh ื ื™ืฆื˜ ื–ื™ื™ืขืจ ืื™ื™ื’ืขื ืข ืœืึธื’ื™ืŸ ืื•ื™ืฃ ื“ื™ ืœื™ื ื•ืงืก ืกืขืจื•ื•ืขืจ, ืึทื–ื•ื™ ื–ื™ื™ ืงืขื ืขืŸ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื•ืจืš ื“ื™ ssh ืงืœื™ืขื ื˜ ืื•ืŸ ืึทืงืกืขืก ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ.
ืขืก ืื™ื– ืงื™ื™ืŸ ื’ืึทื ืฅ ืฉื•ืฅ ืงืขื’ืŸ ืึทื–ืึท ืึทืงืกืขืก.

ืึธื‘ืขืจ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื–ืึธืœ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืœื™ื ื•ืงืก ื˜ืขืงืขืก. ื‘ืึทื˜ื™ื™ื˜ื™ืง ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ืกื˜ืึธืจื“ ื‘ืœื•ื™ื– ืื™ืŸ ื“ื™ ื’ื™ื˜ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™. ื“ืขืจื™ื‘ืขืจ, ืขืก ืื™ื– ืžืขื’ืœืขืš ื ื™ืฉื˜ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ืึทืงืกืขืก ื“ื•ืจืš ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”, ืึธื‘ืขืจ ื ื™ืฆืŸ ืœื™ื ื•ืงืก ืžื›ืฉื™ืจื™ื ืฆื• ืคืึทืจื•ื•ืขืจืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืฆื• ื–ืขืŸ ืคึผืจืึทื“ื–ืฉืขืงืก, ืขืงืกืงืœื•ื“ื™ื ื’ ื“ื™ ืื™ืŸ ื•ื•ืึธืก ืขืจ ืคึผืึทืจื˜ื™ืกืึทืคึผื™ื™ืฅ.
ื“ื™ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ื‘ืจื™ืจื” ืื™ื– ืฆื• ื ื•ืฆืŸ ื“ื™ ืœื™ื ื•ืงืก ืคึผืขืจืžื™ืฉืึทื ื– ืกื™ืกื˜ืขื.

ื•ื•ื™ ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื ื•ืฆืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ื—ืฉื‘ื•ืŸ ืคึฟืึทืจ ssh ืึทืงืกืขืก. ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื™ื– ืึทื ืกื™ื™ืฃ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื™ื•ื–ืขืจื–, ื›ืึธื˜ืฉ ืขืก ืื™ื– ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ืขืจ ืจืฉื™ืžื” ืคื•ืŸ ืจืขืงืึทืžืขื ื“ื™ื“ ื’ื™ื˜ ืึธืคึผืฆื™ืขืก.

ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื’ืขื’ืขื‘ืŸ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ื“ื™ ืคืืœื’ืขื ื“ืข ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืกื˜ืจื•ืงื˜ื•ืจ ืื™ื– ื‘ืืฉืืคืŸ ืžื™ื˜ ื“ื™ ืึทืกื™ื™ื ืžืึทื ื˜ ืคื•ืŸ ืจืขื›ื˜ ืื•ืŸ ืึธื•ื ืขืจื–:

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 ื–ืขื ืขืŸ ืกืคึผืขืฆื™ืขืœ ื‘ืืฉืืคืŸ ืœื™ื ื•ืงืก ื™ื•ื–ืขืจื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืึทืกื™ื™ื ื“ ื•ื•ื™ ืึธื•ื ืขืจื– ืคื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคึผืจื•ื™ืขืงื˜ ื“ื™ืจืขืงื˜ืขืจื™ื–.

ืคึผืขืจืžื™ืฉืึทื ื– ืคึฟืึทืจ ืึทืœืข ื“ื™ื™ืจืขืงื˜ืขืจื™ื– ื–ืขื ืขืŸ ื‘ืึทืฉื˜ื™ืžื˜ ืฆื• 0770 - ืคื•ืœ ืึทืงืกืขืก ืคึฟืึทืจ ื“ื™ ื‘ืึทื–ื™ืฆืขืจ ืื•ืŸ ื–ื™ื™ืŸ ื’ืจื•ืคึผืข ืื•ืŸ ืึท ื’ืึทื ืฅ ืคืึทืจื‘ืึธื˜ ืคึฟืึทืจ ืึทืœืขืžืขืŸ ืึทื ื“ืขืจืฉ.

2) ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืึทืงืึทื•ื ืฅ

ะ ะฐะทั€ะฐะฑะพั‚ั‡ะธะบ 1: dev1:dev1,proj1,proj2
ะ ะฐะทั€ะฐะฑะพั‚ั‡ะธะบ 2: dev2:dev2,proj2,proj3

ื“ืขืจ ืฉืœื™ืกืœ ืคื•ื ื˜ ืื™ื– ืึทื– ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื–ืขื ืขืŸ ืึทืกื™ื™ื ื“ ืึทืŸ ื ืึธืš ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกื™ืกื˜ืขื ื‘ืึทื ื™ืฆืขืจ ื‘ืึทื–ื™ืฆืขืจ ืคื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคึผืจื•ื™ืขืงื˜. ื“ืขื ืื™ื– ื’ืขื˜ืืŸ ื“ื•ืจืš ื“ื™ ืœื™ื ื•ืงืก ืกืขืจื•ื•ืขืจ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจ ืžื™ื˜ ืื™ื™ืŸ ื‘ืึทืคึฟืขืœ.

ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ, "ื“ืขื•ื•ืขืœืึธืคึผืขืจ 1" ืื™ื– ืืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืคึผืจืึทื“ื–ืฉืขืงืก ืคึผืจืึธื“ื–ืฉ1 ืื•ืŸ ืคึผืจืึธื“ื–ืฉ2, ืื•ืŸ "ื“ืขื•ื•ืขืœืึธืคึผืขืจ 2" ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืคึผืจืึทื“ื–ืฉืขืงืก ืคึผืจืึธื“ื–ืฉ2 ืื•ืŸ ืคึผืจืึธื“ื–ืฉ3.

ืื•ื™ื‘ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืคืึทืจื‘ื™ื ื“ืŸ ื“ื•ืจืš ssh ื“ื•ืจืš ื“ื™ ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”, ื–ื™ื™ืขืจ ืจืขื›ื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืขื ื•ื’ ืืคื™ืœื• ืฆื• ื–ืขืŸ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ืคึผืจื•ื™ืขืงื˜ ื“ื™ืจืขืงื˜ืขืจื™ื– ืื™ืŸ ื•ื•ืึธืก ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ. ืขืจ ืงืขืŸ ื“ืึธืก ืึทืœื™ื™ืŸ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ.

ื–ื™ื ื˜ ื“ื™ ื™ืงืขืจ ืคื•ืŸ ื“ืขื ืคึผืจื™ื ืฆื™ืคึผ ืื™ื– ื“ื™ ื™ืงืขืจื“ื™ืง ื–ื™ื›ืขืจื”ื™ื™ื˜ ืคื•ืŸ ืœื™ื ื•ืงืก ืจืขื›ื˜, ื“ืขื ืกื›ืขืžืข ืื™ื– ืคืึทืจืœืึธื–ืœืขืš. ืื™ืŸ ื“ืขืจืฆื•, ื“ื™ ืกื›ืขืžืข ืื™ื– ื–ื™ื™ืขืจ ื’ืจื™ื ื’ ืฆื• ืคื™ืจืŸ.

ื–ืืœ ืก ืžืึทืš ืื•ื™ืฃ ืฆื• ืคื™ืจ.

ืงืจื™ื™ื™ื˜ื™ื ื’ Git ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ื– ืื•ื™ืฃ ืึท ืœื™ื ื•ืงืก ืกืขืจื•ื•ืขืจ

ื˜ืฉืขืงื™ื ื’.

[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 ืกืขืจื•ื•ืขืจ

ื–ืืœ ืก ืžืึทืš ืื•ื™ืฃ ืฆื• ื“ืขืจ ืงืœื™ืขื ื˜ ืžืึทืฉื™ืŸ.

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 ืกืขืจื•ื•ืขืจ, ื ืึธืš ื˜ืขืงืขืก ืื•ืŸ ื“ื™ื™ืจืขืงื˜ืขืจื™ื– ื–ืขื ืขืŸ ื‘ืืฉืืคืŸ, ืื•ืŸ ื–ื™ื™ืขืจ ื‘ืึทื–ื™ืฆืขืจ ืื™ื– ืคืืงื˜ื™ืฉ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืึธืก ืžืื›ื˜ ื“ื™ ื•ืคึผืœืึธืึทื“. ืึธื‘ืขืจ, ื“ื™ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ื˜ืขืงืขืก ืื•ืŸ ื“ื™ื™ืจืขืงื˜ืขืจื™ื– ืื•ื™ืš ืงืึธืจืึทืกืคึผืึทื ื“ื– ืฆื• ื“ื™ ื”ื•ื™ืคึผื˜ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ืขื ื‘ืึทื ื™ืฆืขืจ, ื“ืึธืก ืื™ื–, ื“ื™ ื“ืขื•ื• 1 ื’ืจื•ืคึผืข ืคึฟืึทืจ ื“ื™ ื“ื™ื•ื• 1 ื‘ืึทื ื™ืฆืขืจ ืื•ืŸ ื“ื™ ื“ืขื•ื• 2 ื’ืจื•ืคึผืข ืคึฟืึทืจ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ื“ื™ื•ื• 2 (ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ื”ื•ื™ืคึผื˜ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื”ืขืœืคืŸ, ื•ื•ื™ ืึทื–ื•ื™ ืงืขืŸ ืื™ืจ ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืงื™ื™ืคืœ ืคึผืจืึทื“ื–ืฉืขืงืก?). ืื™ืŸ ื“ืขื ืคืึทืœ, ื‘ืึทื ื™ืฆืขืจ dev2 ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ื˜ื•ื™ืฉืŸ ื˜ืขืงืขืก ื‘ืืฉืืคืŸ ื“ื•ืจืš ื‘ืึทื ื™ืฆืขืจ dev1, ื•ื•ืึธืก ืงืขืŸ ืคื™ืจืŸ ืฆื• ืึท ื‘ืจื™ื™ืงื“ืึทื•ืŸ ืื™ืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™.

ืœื™ื ื•ืงืก ื˜ืฉืึทืŸ - ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ื‘ืึทื–ื™ืฆืขืจ ืคื•ืŸ ืึท ื˜ืขืงืข ื“ื•ืจืš ืึท ืจืขื’ื•ืœืขืจ ื‘ืึทื ื™ืฆืขืจ

ื“ืขืจ ื‘ืึทื–ื™ืฆืขืจ ืคื•ืŸ ืึท ื˜ืขืงืข ืงืขืŸ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ ื–ื™ื™ืŸ ืึธื•ื ืขืจืฉื™ืคึผ. ืื‘ืขืจ ืขืจ ืงืขืŸ ื˜ื•ื™ืฉืŸ ื“ื™ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืึท ื˜ืขืงืข ื•ื•ืึธืก ื’ืขื”ืขืจื˜ ืฆื• ืื™ื, ืื•ืŸ ื“ืขืจ ื˜ืขืงืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ืžืึทื“ืึทืคื™ื™ื“ ื“ื•ืจืš ืื ื“ืขืจืข ื ื™ืฆืขืจืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื’ืจื•ืคึผืข. ืึทื– ืก ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ.

ื ื™ืฆืŸ ื’ื™ื˜ ืงืจื•ืง

ื“ื™ ืึทืจื‘ืขื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืคึฟืึทืจ ืงืจื•ืง ืื™ื– ื“ืขืจ ื•ื•ืึธืจืฆืœ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜. ืงืจื•ืง ืื™ื– ืึท ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื•ื•ืึธืก ืœื•ื™ืคื˜ ืื•ื ื˜ืขืจ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื˜ืืŸ ื“ื™ ืฉื˜ื•ืคึผืŸ. ื•ื•ื™ื™ืœ ื“ืึธืก, ืžื™ืจ ืงืขื ืขืŸ ื™ื ืกื˜ืจื•ืžืขื ื˜ ืื•ื ื“ื–ืขืจ ืคึผืœืึทื ื–.

[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

ืื•ื™ืฃ ื“ื™ ื’ื™ื˜ ืกืขืจื•ื•ืขืจ, ืžื™ืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืคืึทืจื˜ืฉืขืคึผืขืŸ ืคึผืึธืกื˜ืŸ-ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืฉืจื™ืคื˜ ื ืึธืš ื“ื™ ื™ื‘ืขืจื’ืขื‘ืŸ

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

- ืœื™ื™ื“ื™ืง, ืึทืœืฅ ืื™ื– ื’ื•ื˜.

ืงืึทื ืขืงื˜ื™ื ื’ ืึท ืฆื•ื•ื™ื™ื˜ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืื™ืŸ ื’ื™ื˜

ื–ืืœ ืก ืกื™ืžื•ืœื™ืจืŸ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ื“ื™ ืจื’ืข ื“ืขื•ื•ืขืœืึธืคึผืขืจ.

ืื•ื™ืฃ ื“ืขื ืงืœื™ืขื ื˜

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

โ€” ืฐื™ื“ืขืจ ืœืฒื“ื™ืง, ืืœืฅ ืืจื‘ืขื˜.

ื“ื™ืœื™ื˜ื™ื ื’ ืึท ื’ื™ื˜ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื ื’ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืคื•ืŸ ื“ื™ ื’ื™ื˜ ืกืขืจื•ื•ืขืจ

ื ื•, ืื™ืจ ืงืขื ื˜ ื•ื•ื™ื“ืขืจ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืึทืœืข ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜.

C:gittest>rd /S /Q .
ะŸั€ะพั†ะตัั ะฝะต ะผะพะถะตั‚ ะฟะพะปัƒั‡ะธั‚ัŒ ะดะพัั‚ัƒะฟ ะบ ั„ะฐะนะปัƒ, ั‚ะฐะบ ะบะฐะบ ัั‚ะพั‚ ั„ะฐะนะป ะทะฐะฝัั‚ ะดั€ัƒะณะธะผ ะฟั€ะพั†ะตััะพะผ.

- ืฆื• ื•ื™ืกืžืขืงืŸ ืึท ื’ื™ื˜ ืคึผืจื•ื™ืขืงื˜, ืคืฉื•ื˜ ื•ื™ืกืžืขืงืŸ ื“ื™ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื’ืึธืจ. ื–ืืœ ืก ืฉื˜ืขืœืŸ ื–ื™ืš ืžื™ื˜ ื“ื™ ื˜ืขื•ืช ื•ื•ืึธืก ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“, ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืื•ืžืžืขื’ืœืขืš ืฆื• ื•ื™ืกืžืขืงืŸ ื“ืขื ืงืจืึทื ื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืžื™ื˜ ื“ืขื ื‘ืึทืคึฟืขืœ, ืึธื‘ืขืจ ื“ืึธืก ืื™ื– ืคึผื•ื ืงื˜ ื“ื™ ื ืึทื˜ื•ืจ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ.

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

ืื•ื™ืš ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ืจ ืงืขืŸ ืฉื˜ืึธืžืคึผืขืจืŸ ืื•ื™ืฃ ืงืœื™ื™ืŸ ื ื•ืฆื™ืง ื˜ื™ื ื’ื–:

  • ื•ื•ื™ ืฆื• ื‘ื•ื™ืขืŸ ืึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื‘ื•ื™ื ืื™ืŸ ืœื™ื ื•ืงืก
  • ื•ื•ื™ ืฆื• ืคืึธืจืŸ ืึท ืงื™ื™ื˜ ืคื•ืŸ ืึทื“ืจืขืกืขืก ืื™ืŸ ืกืขื“ ืคื•ืŸ ืึท ื–ื™ื›ืขืจ ืฉื•ืจื” ืฆื• ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ืขืจ ื˜ืขืงืข, ื“ืึธืก ืื™ื–, ืžืึทื›ืŸ ืึท ืคืึทืจื‘ื™ื™ึทื˜ ืื™ืŸ ืกืขื“ ืื™ืŸ ืึทืœืข ืฉื•ืจื•ืช ืึทื—ื•ืฅ ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉื•ืจื”
  • ื•ื•ื™ ืฆื• ื™ื‘ืขืจืงืขืจืŸ ืึท ื–ื•ื›ืŸ ืฆื•ืฉื˜ืึทื ื“ ืื™ืŸ ืœื™ื ื•ืงืก ื’ืขืคึฟื™ื ืขืŸ
  • ื•ื•ื™ ืฆื• ืคืึธืจืŸ ืงื™ื™ืคืœ ืฉื•ืจื•ืช ืื™ืŸ ืึท ืฉืœื™ื™ืฃ ืžื™ื˜ ืึท ืื™ื™ืŸ-ืœื™ื™ื ืขืจ ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืฉืึธืœ
  • ื•ื•ื™ ืฆื• ืึทื ื˜ืœื•ื™ืคืŸ ืื™ื™ืŸ ืงื•ื•ืึธื˜ืขืก ืื™ืŸ ื‘ืึทืฉ
  • ื•ื•ื™ ืฆื• ื•ื™ืกืžืขืงืŸ ืึท ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืžื™ื˜ ืึทืœืข ื–ื™ื™ึทืŸ ืื™ื ื”ืึทืœื˜ ืื™ืŸ ื“ื™ Windows ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื”
  • ื•ื•ื™ ืฆื• ื ื•ืฆืŸ bash mv ืฆื• ืจืขื ืึทืžืข ืึท ื˜ืขืงืข ืึธืŸ ืจื™ืจื™ื™ื˜ื™ื ื’ ืขืก ื•ื•ื™ื“ืขืจ

ื“ืื ืง ืื™ืจ ืคึฟืึทืจ ืื™ื™ืขืจ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’