1. Gitμ΄λ?2. Git μ€μΉνκΈ°2-1. Ubuntuμμ μ€μΉνκΈ°2-2. Mac μ€μΉνκΈ°2-3. Windows μ€μΉνκΈ°3. λ²μ νμΈ λ° μ΄κΈ° μ€μ 4. μ μ₯μ λ§λ€κΈ°5. μμ νκ³ μ μ₯μμ μ μ₯νκΈ°
1. Gitμ΄λ?
- Gitμ μμ€μ½λ λ° νμΌμ λ³κ²½λ΄μμ μ μ₯νλ λΆμ°λ²μ κ΄λ¦¬μμ€ν μ λλ€.
- 리λμ€ ν λ°μ¦μ μν΄ μ²μ λ§λ€μ΄μ‘μ΅λλ€.
- Github, Bitbucket, Gitlab λ±μ GitκΈ°λ°μ λ²μ κ΄λ¦¬νΈμ€ν μλΉμ€λ€μ΄ μμ΅λλ€.
- μΆμ²μμ : ProGit https://git-scm.com/book/ko/v2
Β
2. Git μ€μΉνκΈ°
2-1. Ubuntuμμ μ€μΉνκΈ°
λͺ
λ Ήμ΄λ₯Ό μ
λ ₯νμ¬ Gitμ μ€μΉν μ μμ΅λλ€.
$ sudo apt-get update $ sudo apt-get install git
Β
2-2. Mac μ€μΉνκΈ°
Macμλ κΈ°λ³Έμ μΌλ‘ Gitμ΄ μ€μΉλμ΄ μμ΅λλ€. μ€μΉλμλμ§ νμΈνκΈ° μν΄μλ ν°λ―Έλ μ°½μ μλμ λͺ
λ Ήμ΄λ₯Ό μ
λ ₯ν©λλ€.
$ git usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] ...
Β
μ€μΉκ° λμ§ μμ κ²½μ°, μλμ μμλλ‘ μ§νν©λλ€.
- https://git-scm.com/ μ μν©λλ€.
- Download for Mac λ²νΌ ν΄λ¦ν©λλ€.
- λ€μ΄ λ°μ νμΌ μ€νν©λλ€.
Β
2-3. Windows μ€μΉνκΈ°
- https://git-scm.com/ μ μν©λλ€.
- Download for Windows λ²νΌ ν΄λ¦ν©λλ€.
- λ€μ΄ λ°μ νμΌ μ€νν©λλ€.
Β
3. λ²μ νμΈ λ° μ΄κΈ° μ€μ
λ€μ΄λ°μ Git λ²μ μ νμΈν μ μμ΅λλ€.
$ git --version git version 2.19.1
Β
Gitμ μ¬μ©νκΈ° μν΄ μ¬μ©μ μ 보 μ€μ μ ν©λλ€.
$ git config --global user.name "hojun.lee" $ git config --global user.email email@example.com
Β
4. μ μ₯μ λ§λ€κΈ°
- μμ ν λλ ν 리 λ§λ€κ³ (mkdir) μ΄λνκΈ°(cd)
$ mkdir git-test $ cd git-test
Β
- νμ¬ λλ ν 리λ₯Ό Git μ μ₯μλ‘ λ§λ€μ΄ μνλ λλ ν 리λ₯Ό κΈ°μ€μΌλ‘ λ²μ κ΄λ¦¬λ₯Ό ν©λλ€.
$ cd git-test $ git init
Β
git initμ μ
λ ₯νλ©΄ ν΄λΉ ν΄λ κΈ°μ€μΌλ‘ .git(λ‘컬 μ μ₯μ)κ° μμ±λ©λλ€. λ‘컬 μ μ₯μμλ λ²μ μ 보, μ격 μ μ₯μ μ£Όμκ° μ μ₯λ©λλ€.

μ΄λ, ν ν΄λμλ νλμ .git(λ‘컬 μ μ₯μ)λ₯Ό κ°μ ΈμΌ ν©λλ€. κ·Έλ μ§ μμ κ²½μ° μΆ©λμ΄ λ°μν μ μμ΅λλ€.
Β
- μ μ₯μμ νμΌμ μΆκ°(touch)νκ³ μ»€λ°νκΈ°
$ touch README $ git add README $ git commit -m "first commit"
Β
5. μμ νκ³ μ μ₯μμ μ μ₯νκΈ°
- νμΌ μν νμΈνκΈ°
$ git status

Β
- gitμ΄ κ΄λ¦¬ν λμμΌλ‘ νμΌ λ±λ‘
λ³κ²½ν νμΌ μ€ μ¬λ¦¬κΈ° μνλ κ²λ§ μ νν©λλ€. μ 체 μ¬λ¦¬κ³ μΆμΌμ κ²½μ°μλ μ (.)μ μ
λ ₯ν©λλ€.
$ git add README
Β

Β
- λ²μ λ§λ€κΈ°(commit)
$ git commit -m "μ μ₯λ©μΈμ§λ₯Ό μ λ ₯ν΄μ£ΌμΈμ"
Β

Β
- νμΌ λ¬΄μνκΈ° - gitignore
.gitignoreνμΌμ λ²μ κ΄λ¦¬μμ μ μΈν νμΌμ μΆκ°νλ€.
# a comment - μ΄ μ€μ 무μνλ€. # νμ₯μκ° .aμΈ νμΌ λ¬΄μ *.a # μ μ€μμ νμ₯μκ° .aμΈ νμΌμ 무μνκ² νμ§λ§ lib.aλ 무μνμ§ μλλ€. !lib.a # λ£¨νΈ λλ ν 리μ μλ TODOνμΌμ 무μνκ³ subdir/TODOμ²λΌ νμλλ ν 리μ μλ νμΌμ 무μνμ§ μλλ€. /TODO # build/ λλ ν 리μ μλ λͺ¨λ νμΌμ 무μνλ€. build/ # `doc/notes.txt`κ°μ νμΌμ 무μνκ³ doc/server/arch.txtκ°μ νμΌμ 무μνμ§ μλλ€. doc/*.txt # `doc` λλ ν 리 μλμ λͺ¨λ .txt νμΌμ 무μνλ€. doc/**/*.txt
Β
- λ³κ²½μ¬ν νμΈνκΈ°
μ΅κ·Ό commit λ΄μ©κ³Ό νμ¬ ν΄λμ λ΄μ©μ λ³κ²½ μ¬νμ νμΈν μ μμ΅λλ€.
$ git diff

Β
- μ»€λ° νμ€ν 리 μ‘°ννκΈ°
$ git log

Β