Git μ΄λ μμ€ μ½λ κ΄λ¦¬λ₯Ό μν λΆμ° λ²μ κ΄λ¦¬ μμ€ν
μΌλ‘ Gitμ μ΄μ©νμ¬ μμ
ν΄λμ λ³κ²½ λ΄μμ μΆμ ν μ μλ€.
μ¦, Gitμ μ΄μ©νλ©΄ λ²κ·Έ λ°μμ μ΄μ λ²μ μΌλ‘ λλ리λ rollbackμ νκ±°λ μμ λ λ΄μ©μ νμ
ν μ μλ€.
π‘ λΆμ° λ²μ κ΄λ¦¬ μμ€ν
μννΈμ¨μ΄ λ²μ κ΄λ¦¬λ₯Ό μν μμ€ν μΌλ‘ κ° κ°λ°μκ° μ€μ μλ²μ μ μνμ§ μμ μνμμ μ½λ μμ μ ν μ μλ€.
π git μ€μΉλ²μ λ§ν¬ λ₯Ό μ°Έμ‘°
μ μ₯μλ νμΌμ΄λ ν΄λλ₯Ό μ μ₯νλ κ³³μΌλ‘ μλμ κ°μ΄ 2μ’ λ₯κ° μ‘΄μ¬νλ€.
λΈν κΈ°λ° λ²μ κ΄λ¦¬ μμ€ν
μΈ CVS, Subversion, Perfoce, Bazaar λ±κ³Ό λ¬λ¦¬ Gitμ λ°μ΄ν°λ₯Ό μ μ₯νκ±°λ μ·¨κΈμνμ§ μλλ€.
λμ μ Gitμ λ°μ΄ν°λ₯Ό μν νμΌ μμ€ν
μ μΌλ ¨μ μ€λ
μ·μ²λΌ μ¬κΈ΄λ€.
νλ‘μ νΈμ μνλ₯Ό μ»€λ° νΉμ μ μ₯ν λλ§λ€ λͺ¨λ νμΌμ΄ μ΄λ»κ² ꡬμ±λμλμ§ μ¬μ§μ μ°μ΄ μ€λ
μ·μ λν μ°Έμ‘°λ₯Ό μ μ₯νλ€.
π‘ μ€λ μ· : κ³Όκ±°μ ν λ μ‘΄μ¬νκ³ μ μ§μν¨ μ»΄ν¨ν° νμΌκ³Ό λλ ν°λ¦¬μ λͺ¨μ
π‘ λΈν κΈ°λ° λ²μ κ΄λ¦¬ μμ€ν : κ° νμΌμ λ³νλ₯Ό μκ°μμΌλ‘ κ΄λ¦¬νλ©΄μ νμΌμ μ§ν©μ κ΄λ¦¬
μκ°μμ΄ μλ μ€λ μ·μ μ°Έκ³ ν¨μΌλ‘μ Gitμ μλμ κ°μ νΉμ§μ κ°λλ€.
π‘ λ¬΄κ²°μ± : λ°μ΄ν°μ μ νμ±κ³Ό μΌκ΄μ±μ μ μ§νκ³ λ³΄μ¦νλ κ²
π‘ 체ν¬μ¬ : μ€λ³΅ κ²μ¬μ ν ννλ‘ μ€λ₯ μ μ μ ν΅ν΄ μλ£μ 무결μ±μ 보νΈνλ λ°©λ²
π‘ SHA-1 ν΄μ(Secure Hash Algorithm)
μνΈν ν΄μ ν¨μ(ν΄μ κ°μΌλ‘ λΆν° μλ κ° μ°ΎκΈ° νλ€κ²νλ ν¨μ)λ€μ λͺ¨μμΈ SHA μ€ νλλ‘ μ΄λ€.
Gitμ νμΌμ Commited, Modifed, Staged μΈκ°μ§ μνλ‘ κ΄λ¦¬νλ€.
π‘ Working Directory : νμΌ μμ , μ μ₯ λ±μ μμ μ νλ λλ ν 리
π‘ λΈλμΉ(branch) : μ»€λ° μ¬μ΄λ₯Ό κ°λ³κ² μ΄λν μ μλ μ΄λ€ ν¬μΈν° κ°μ κ²
π‘ checkout : λΈλμΉλ₯Ό μ΄λνλ git λͺ λ Ήμ΄
π Staging Areaκ° νμν μ΄μ
Staging Areaλ μ΄λ€ λ³κ²½μ¬νμ΄ μ μ₯μμ 컀λ°νκΈ° μ μ κ±°μΉλ μ€κ°λ¨κ³μ΄λ€. λν, Staging Areaλ₯Ό indexλΌκ³ λ νλ€.
μ΄λ₯Ό ν΅ν΄ λ³κ²½λ μΌλΆλΆλ§ μ μ₯μμ 컀λ°μ ν μ μλ€. μλ₯Ό λ€μ΄ μ μ₯μμ μΆ©λμ΄ λλ κ²½μ° μΆ©λμ΄ λμ§ μμ νμΌλ€μ λ¨Όμ 컀λ°ν μ μλ€.
Gitμ μ΄μ©ν΄ λ³κ²½ μ¬νμ μ μ₯μμ κΈ°λ‘νκΈ° μν΄μλ μλμ κ°μ μμ μ μ§νν΄μΌνλ€.
μ μ₯μλ₯Ό μμ±νλ λ°©λ²μ 2κ°μ§κ° μλ€.
π‘ μ격 μ μ₯μ μλΉμ€λ₯Ό μ 곡νλ κ³³μ GitHub, Bitbucket λ±μ΄ μλ€.
λ³Έ μμ λ 'λ²μ κ΄λ¦¬κ° μλ λ‘컬 λλ ν 리μ Git μ μ₯μ' λ₯Ό μ μ©νλ κ²μ μ§ννλ€.
λν, μ격 μ μ₯μλ GitHubλ₯Ό μ΄μ©νλ€.
λ¨Όμ GitHubμ κ°μ μ μ§ννλ€.
κ°μ ν GitHubμ μλ‘μ΄ repository(μ격 μ μ₯μ)λ₯Ό μμ±νμ
μλ‘μ΄ repositoryμ μ€μ μ ν΄μ€λ€.
README.md
νμΌμ repositoryμ ν¨κ» λ§λ€μ§λ₯Ό μ€μ νλ€.μ΅μ κΉμ§ μ€μ νμ¬ repositoryλ₯Ό μμ±νλ©΄ μλμ κ°λ€.
μ΄ν λ¨κ³λ git bashλ₯Ό μ¬μ©νμ¬ μ¬μ§μ ...or create a new repository on the command line μ²λΌ λͺ λ Ήμ΄λ₯Ό μ λ ₯ λ° μ§ννλ©΄ λλ€.
git bash | git bash μ€ν |
---|---|
λ‘컬 μ μ₯μλ₯Ό μμ±νκΈ° μν΄μλ μνλ μμ
νΈλ¦¬μ git init
λͺ
λ Ήμ΄λ‘ Git μ μ₯μλ₯Ό μμ±ν΄μΌνλ€.
$ git init
μ΄ λͺ
λ Ήμ΄λ₯Ό μ€ννλ©΄ .git
νμΌμ΄ μμ±μ΄λλ€.
λ‘컬 μ μ₯μλ₯Ό μμ±ν ν μ΄λ€ νμΌμ΄λ μ§ μΆκ°νκ³ μμ μ ν΄λ³΄μ
λ³Έ μμ λ test.txt
νμΌμ μΆκ°νμλ€.
μ€ν
μ΄μ§μ νκΈ° μν λͺ
λ Ήμ΄λ git add
λͺ
λ Ήμ΄μ΄λ€.
μνλ νμΌμ μ€ν
μ΄μ§νκΈ° μν΄ μλμ κ°μ΄ μ¬μ©νλ€.
$ git add file_name
# νΉμ
$ git add μ΅μ
μ΄λ μ΅μ
μλ μλκ° λ€μ΄κ° μ μλ€.
μ΅μ | μ€λͺ |
---|---|
-u | λ³κ²½κ³Ό μμ λ κ²λ§ μ€ν μ΄μ§(λ¨ μΆκ°λ νμΌμ μ μΈ) |
*.js | νμ₯μκ° js νμΌ λͺ¨λλ₯Ό μ€ν μ΄μ§ |
. | λ³κ²½λ νμΌκ³Ό μΆκ°λ νμΌ λͺ¨λλ₯Ό μ€ν μ΄μ§(λ¨ μμ λ νμΌ μ μΈ) |
-all , -A | λ³κ²½λ λͺ¨λ μ¬νμ μ€ν μ΄μ§νλ€. |
μ»€λ° λͺ λ Ήμ΄λ μλμ κ°λ€.
$ git commit -m 'μ»€λ° λ©μμ§'
π‘
git commit -am
: addμ commitμ λμμ μ§ν
β οΈ μ»€λ° λ©μμ§κ° μλ κ²½μ° μ»€λ°μ μ€λ¨ν΄λ²λ¦°λ€
λ‘컬 μ μ₯μμ μ격 μ μ₯μλ₯Ό μ°κ²°ν΄μΌ νλ€.
# 'μ격-μ μ₯μ-URL'μ origin μ΄λΌλ μ΄λ¦μΌλ‘ μ격 μ μ₯μλ‘ λ±λ‘ν¨
$ git remote add origin μ격-μ μ₯μ-URL
π
origin
,master
μλ―Έ?
master
: μ΅μ΄λ‘ 컀λ°ν λΈλμΉ μ΄λ¦
origin
: μ격 μ μ₯μλ‘ Gitμ μλμΌλ‘origin
μ΄λΌλ μ΄λ¦μ λΆμΈλ€.
β οΈ λ§μ½ Git μ€μΉμ μ μ μ₯μ λΈλμΉλͺ μ€μ μ 컀μ€ν νκ² ν΄μ€ κ²½μ°
master
λμ ν΄λΉ λΈλμΉλͺ μ μ¬μ©ν΄μΌνλ€.
νΈμ¬(push) λͺ λ Ήμ΄λ λ‘컬 μ μ₯μμ 컀λ°λ μ¬νλ€μ μ격 μ μ₯μμ μ¬λ¦¬λ λͺ λ Ήμ΄μ΄λ€.
# 리λͺ¨νΈ μ μ₯μμ λ‘컬 λΈλμΉλ₯Ό νΈμ¬νλ€.
$ git push <리λͺ¨νΈ μ μ₯μ μ΄λ¦> <λ‘컬 λΈλμΉ μ΄λ¦>
μ΄λ κΉνλΈ κ³μ μΌλ‘ λ‘κ·ΈμΈμ νλΌκ³ λμ¨λ€. μ΄λ₯Ό ν΄κ²°νλ©΄ pushκ° μλ£λλ€.
β οΈ λ§μ½ μ¬λ¬ μ¬λμ΄ pushν νμ pushνλ €κ³ νλ©΄ pushν μ μλ€.
λ¨Όμ λ€λ₯Έ μ¬λμ΄ μμ ν κ²μ κ°μ Έμμ Merge ν νμ pushλ₯Ό ν μ μλ€.
νΈμ¬λ₯Ό ν λ λ§λ€ <리λͺ¨νΈ μ μ₯μ μ΄λ¦> <λ‘컬 λΈλμΉ μ΄λ¦>
μ κ³μ μ¬μ©νλ κ²μ΄ λ²κ±°λ‘μΈ μ μλ€.
μ΄λ₯Ό μν΄ git push -u origin master
λͺ
λ Ήμ΄λ₯Ό νλ² μ¬μ©νλ©΄ git push
λͺ
λ Ήμ΄λ§ μ¬μ©ν΄λ νΈμ¬ν μ μλ€.
$ git push -u origin master
# μ΄ν pushλ
$ git push
-u
μ΅μ
μ μ€μ νμΌμ νμ¬μ master
λΈλμΉ λ₯Ό origin
μ(μ¬κΈ°μλ fork λ°μ μμ μ μ격μ μ₯μ) master
λΈλμΉλ‘ μ°κ²°ν΄μ€λ€.
μ¦, λ€μλΆν°λ μλμΌλ‘ master
λΈλμΉ μμ git push
λ₯Ό νλ©΄ origin
μ master
λΈλμΉ λ‘ νΈμκ° λκ³ git pull
μ νλ©΄ origin
μ master
λ₯Ό fetchν΄μ λ‘컬μ master
λ‘ merge νλλ‘ μ€μ νλ€.
git bashλ₯Ό μ¬μ©νμ¬ 1-2 ~ 5 κΉμ§μ λͺ λ Ήμ΄λ₯Ό μ€νν κ²°κ³Όλ μλμ κ°λ€.
μ격 μ μ₯μμ κ²°κ³Όλ μλμ κ°λ€.
https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F