[ # 3νμ°¨ μ 보 ]
- 2023λ 7μ 29μΌ 14:00 - 17:00
- Discord μμ ν΅νλ‘ μ¨λΌμΈ μ€ν°λ νμ μ§ν
[ # 3νμ°¨ κ°μΈ λͺ©ν ]
Git κΈ°λ³Έ λͺ λ Ήμ΄ μμ보기
02 κΉ κΈ°λ³Έ λͺ λ Ήμ΄ μμ보기
2.5.1 μ»€λ° μμ±νκΈ°
2.5.2 μ»€λ° μ΄ν΄νκΈ°
[ # 3νμ°¨ κ°μΈ νλ λ΄μ© ]
μ»€λ° μμ±νκΈ°
κΉμμ λ³κ²½ μ΄λ ₯μ κΈ°λ‘νλ κ²μ΄ λ°λ‘ 컀λ°μ΄λ€. νμΌμ μμ ν git add λͺ λ Ήμ΄λ‘ μ€ν μ΄μ§ μμμ λ±λ‘νλ€λ©΄ 컀λ°μ μμ±ν μ°¨λ‘μ΄λ€.
컀λ°μ git commit
λͺ
λ Ήμ΄λ‘ μ€ννλ€. μ»€λ° λ©μμ§λ₯Ό κ°λ¨νκ² μ
λ ₯ν λλ git commit -m
λͺ
λ Ήμ΄μ²λΌ -m
μ΅μ
μ μ¬μ©νλ€. νμ§λ§ μμ
λ΄μ©μ λ°λΌ μ»€λ° λ©μμ§λ₯Ό λ μμΈνκ² μμ±ν΄μΌ νλ κ²½μ°λΌλ©΄ -m
μ΅μ
μμ΄ git commit
λͺ
λ Ήμ΄λ₯Ό μ€ννλ©΄ μλν° νλ©΄μμ μΆ©λΆν λ©μμ§λ₯Ό μμ±ν μ μλ€.
git commit
01 μ»€λ° λͺ λ Ήμ΄λ₯Ό μ€ννλ€.
chapter2-basic
$ git commit
κ·Έλ¬λ©΄ λ€μκ³Ό κ°μ΄ μ»€λ° λ΄μ©μ μμ±νλ μλν° νλ©΄μ΄ μλμΌλ‘ λ¬λ€.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master β
#
# Initial commit
#
# Changes to be committed: β‘
# new file: .gitignore
#
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
#μΌλ‘ μμνλ μ€μ μ»€λ° λ©μμ§μ λ°μλμ§ μλλ€. β On branch master(main)λΌλ λ©μμ§λ νμ¬ μ»€λ°μΌλ‘ κΈ°λ‘νλ λΈλμΉκ° master(main)μ΄λΌλ κ²μ μλ―Ένλ€. β‘ Changes to be committed λ©μμ§λ₯Ό 보면 μλ‘μ΄ νμΌμΈ .gitignore νμΌμ΄ νμ¬ μ»€λ°μ μΆκ°λμλ€λ μ¬μ€μ μ μ μλ€.
02 β iλ₯Ό μ λ ₯νλ€. κ·Έλ¬λ©΄ μ λ ₯ λͺ¨λλ‘ μ νλκ³ ν°λ―Έλ λ΄μ© νλ¨ μ²λΌ -- INSERT -- νμκ° λνλλ€. μ΄μ μ§μ μ»€λ° λ©μμ§λ₯Ό μμ±ν μ μλ€λ μλ―Έμ΄λ€.
iλ νμ¬ κΉμ΄ μ¬μ©νκ³ μλ vi/vim νΈμ§κΈ°μμ λ¬Έμ μ λ ₯ λ¨μΆν€μ΄λ€.
β‘ μμ
ν λ΄μ©μ κΈ°λ‘νκ³ → esc ν€ μ
λ ₯ → :wq
μ
λ ₯ → enter ν€λ₯Ό λλ¬ ν΄λΉ μ»€λ° λ©μμ§λ₯Ό μ μ₯νλ€.
:wqλ vi/vim νΈμ§κΈ°μμ λ³κ²½ λ΄μ©μ μ μ₯ ν μ’ λ£νλ λ¨μΆν€μ΄λ€. wλ μ μ₯/μμ±(write), qλ μ’ λ£(quit)λ₯Ό μλ―Ένλ€.
Add .gitignore file
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
# new file: .gitignore
:wq
κ·ΈλΌ λ€μκ³Ό κ°μ νλ©΄μ΄ λ³΄μΈλ€.
[master (root-commit) 810c862] Add .gitignore file
1 file changed, 7 insertions(+) β
create mode 100644 .gitignore
β λ©μμ§λ 컀λ°μμ νμΌ νλλ₯Ό μμ νκ³ μΌκ³± μ€μ μΆκ°νλ€λ λ»μ΄λ€.
03 컀λ°ν νμΌ(.gitignore)μ μ΄μ΄ νμΈν΄λ³΄μ.
μ»€λ° μ΄ν΄νκΈ°
git log
λͺ
λ Ήμ΄λ‘ νμ¬ μμ
νλ λΈλμΉμ μ»€λ° λ‘κ·Έλ₯Ό νμΈν μ μλ€. λΈλμΉλ νΉμ κΈ°λ₯μ λ
립μ μΌλ‘ κ°λ°νλ μ©λμ 곡κ°μ΄λ€.
κΉμλ HEADλΌλ νΉλ³ν ν¬μΈν°κ° μ‘΄μ¬νλ€. HEAD ν¬μΈν°λ νμ¬ μμ νλ λΈλμΉμ μ΅μ’ 컀λ°μ κ°λ¦¬ν¨λ€. HEAD → mainμ HEAD ν¬μΈν°κ° main λΈλμΉλ₯Ό κ°λ¦¬ν€κ³ μλ€λ μλ―Έμ΄λ€.
λ€μμ μ»€λ° λ‘κ·Έλ₯Ό νμΈνλ κΉ λͺ λ Ήμ΄μ λ€μν μ΅μ κ³Ό μ»€λ° λ‘κ·Έμ λν λ΄μ©μ΄λ€.
git log
μ»€λ° λ‘κ·Έλ₯Ό μ‘°ννλ κ°μ₯ κΈ°λ³Έμ μΈ λͺ λ Ήμ΄λ‘, νλ‘μ νΈμμ μ΄λ€ μμ λ€μ΄ μ΄λ£¨μ΄μ‘λμ§ μμ μ΄λ ₯μ νμΈνλ λ° μ¬μ©λλ€.
git log
chapter2-basic
$ git log
β commit 810c8623873e1384085d551ad5bc0e5c5c04d754 (HEAD -> master)
β‘ Author: lrycro <thscw973@naver.com>
β’ Date: Fri Jul 28 20:47:27 2023 +0900
β£ Add .gitignore file
β μ»€λ° μ²΄ν¬μ¬μ λνλΈλ€. 체ν¬μ¬μ 컀λ°μ μλ³νλ κ³ μ ν λ°μ΄ν° λ¨μμ΄λ€. 컀λ°μ ν¬ν¨λ νμΌ λ΄μ© λ° λλ ν°λ¦¬ ꡬ쑰λ₯Ό μ΄μ©νμ¬ μ²΄ν¬μ¬μ κ³μ°νκ³ , λͺ¨λ 컀λ°μ κ³ μ μ 체ν¬μ¬μ κ°κ³ μλ€. λ΄ μ€μ΅ νκ²½μμλ HEAD ν¬μΈν°κ° master λΈλμΉλ₯Ό κ°λ¦¬ν€κ³ μλ€.
①컀λ°μ μμ±ν μ μμ μ΄λ¦κ³Ό μ΄λ©μΌ μ£Όμμ΄λ€.
⒠컀λ°μ μμ±ν λ μ§μ μκ°μ΄λ€.
β£ μ»€λ° λ©μμ§λ₯Ό 보μ¬μ€λ€.
μ΄μ λΆν° μ»€λ° λ‘κ·Έλ₯Ό νμΈνλ git log
μ λ€μν μ΅μ
μ λν΄ μμ보μ.
git log -p
-p
μ΅μ
μ patchμ μ½μλ‘, ν΄λΉ μ΅μ
μ νμΌ λ¨μμμ λ³κ²½ λ΄μ©μ 보μ¬μ€λ€.
git log -p
chapter2-basic
$ git log -p
commit 810c8623873e1384085d551ad5bc0e5c5c04d754 (HEAD -> master)
Author: lrycro <thscw973@naver.com>
Date: Fri Jul 28 20:47:27 2023 +0900
Add .gitignore file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3e63d9f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Dependency directories
+node_modules/
\ No newline at end of file
ν΄λΉ 컀λ°μ ν¬ν¨λ νμΌμ λ³κ²½ λ΄μ©μ΄ μ 보μΈλ€.
git log -p
λͺ
λ Ήμ΄λ git log --patch
μ μμ ν λμΌν κ²°κ³Όλ₯Ό μΆλ ₯νλ€.
git log --patch
git log -[μ«μ]
git log
λͺ
λ Ήμ΄μ -{μ«μ}
μ΅μ
μ μ§μ ν΄μ£Όλ©΄ μ΅κ·Ό λͺ κ°μ 컀λ°μ 보μ¬μ€μ§ μ§μ νκ² λλ€. μλ₯Ό λ€μ΄ git log -2
λ₯Ό μ
λ ₯νλ©΄ μ΅κ·Ό μ»€λ° λ‘κ·Έ 2κ°λ₯Ό 보μ¬μ€λ€.
git log -{μ«μ}
chapter2-basic
$ git log -1
commit 810c8623873e1384085d551ad5bc0e5c5c04d754 (HEAD -> master)
Author: lrycro <thscw973@naver.com>
Date: Fri Jul 28 20:47:27 2023 +0900
Add .gitignore file
-p
μ΅μ
κ³Ό -{μ«μ}
μ΅μ
μ ν¨κ» μ¬μ©ν μλ μλ€.
git log -p -{μ«μ}
chapter2-basic
$ git log -p -1
commit 810c8623873e1384085d551ad5bc0e5c5c04d754 (HEAD -> master)
Author: lrycro <thscw973@naver.com>
Date: Fri Jul 28 20:47:27 2023 +0900
Add .gitignore file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3e63d9f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Dependency directories
+node_modules/
\ No newline at end of file
git log --stat
--stat
μ΅μ
μ μ¬μ©νλ©΄ κ° μ»€λ°μ ν΅κ³ μ 보λ₯Ό λ³Ό μ μλ€. μ¬κΈ°μμ ν΅κ³λ μ΄λ€ νμΌμ΄ μμ λμκ³ , κ° νμΌμμ λͺ μ€μ΄ μΆκ° νΉμ μμ λμλμ§λ₯Ό μλ―Ένλ€.
git log --stat
chapter2-basic
$ git log --stat
commit 810c8623873e1384085d551ad5bc0e5c5c04d754 (HEAD -> master)
Author: lrycro <thscw973@naver.com>
Date: Fri Jul 28 20:47:27 2023 +0900
Add .gitignore file
.gitignore | 7 +++++++ β
1 file changed, 7 insertions(+)
β .gitignore νμΌμ 7μ€μ΄ μΆκ°λμλ€λ μλ―Έμ΄λ€. μ΄ κ²°κ³Όλ 컀λ°μ μμ±νκ³ μ»€λ° λ©μμ§λ₯Ό μ μ₯ν κ²°κ³Ό νλ©΄κ³Ό κ°λ€.
git log --pretty
--pretty
μ΅μ
μ μ¬μ©νλ©΄ μ»€λ° λ‘κ·Έλ₯Ό 보μ¬μ£Όλ νμμ μ§μ ν μ μλ€. μ§μ ν μ μλ νμ μ’
λ₯λ λ€μνλ€.
git log --pretty={option}
--pretty=oneline
μ΅μ
μ μ§μ νλ©΄ κ° μ»€λ°μ ν μ€λ‘ 보μ¬μ€λ€. λ³΄ν΅ κ° μ»€λ°μ μμΈν λ΄μ©μ μ΄ν΄λ³΄κΈ°λ³΄λ€ μ΅κ·Ό μ»€λ° λ‘κ·Έλ₯Ό ν λμ μ΄ν΄λ³Ό λ μ£Όλ‘ μ¬μ©νλ€.
chapter2-basic
$ git log --pretty=oneline
810c8623873e1384085d551ad5bc0e5c5c04d754 (HEAD -> master) Add .gitignore file
--pretty
μ΅μ
μ μ¬μ©νλ©΄ λλ§μ μΆλ ₯ νμμ μ§μ ν μ μλ€. μλ₯Ό λ€μ΄ λ€μ λͺ
λ Ήμ΄λ 짧μ μ»€λ° ν΄μμ μ μ μ΄λ¦, μ»€λ° μμ½μ νμμΌλ‘ μ»€λ° λ‘κ·Έλ₯Ό μΆλ ₯νλ€λ μλ―Έμ΄λ€.
git log --pretty=format:"%h %an %s"
chapter2-basic
$ git log --pretty=format:"%h %an %s"
810c862 lrycro Add .gitignore file
--pretty
μ΅μ
μμ μ¬μ©ν μ μλ μΆλ ₯ νμμ λ€μκ³Ό κ°λ€.
νμ | μ€λͺ | νμ | μ€λͺ |
%H | μ»€λ° ν΄μ | %an | μ μ μ΄λ¦ |
%h | 짧μ μ»€λ° ν΄μ | %ae | μ μ μ΄λ©μΌ |
%T | νΈλ¦¬ ν΄μ | %ar | μ μ μλμ μκ° |
%t | 짧μ νΈλ¦¬ ν΄μ | %cn | μ»€λ―Έν° μ΄λ¦ |
%P | λΆλͺ¨ ν΄μ | %ce | μ»€λ―Έν° μ΄λ©μΌ |
%p | 짧μ λΆλͺ¨ ν΄μ | %cr | μ»€λ―Έν° μλμ μκ° |
%s | μ»€λ° μμ½ |
git log --pretty=oneline --graph
λ§μ§λ§μΌλ‘ --graph
μ΅μ
μ΄λ€. ν νλ‘μ νΈλ₯Ό μ¬λ¬ κ°λ°μκ° λμμ μμ
ν λλ λ³΄ν΅ μ¬λ¬ λΈλμΉλ₯Ό μμ±νκ³ λ³ν©νλ μμ
μ νκ² λλ€. μ΄λ κΈ°μ‘΄μ λ‘κ·Έ λͺ
λ Ήμ΄ κ²°κ³Όμ²λΌ λ‘κ·Έλ₯Ό λμ΄νκΈ°λ§ νλ€λ©΄ νλ¦μ νμ
νκΈ° μ΄λ ΅λ€. --graph
μ΅μ
μ μ¬μ©νλ©΄ κ°μμ μΌλ‘ μ»€λ° λ‘κ·Έμ νλ¦μ νμ
ν μ μλ€. λ³΄ν΅ κ·Έλνλ₯Ό λ κ°μμ μΌλ‘ λ§λ€κΈ° μν΄ --pretty=oneline
μ΅μ
μ ν¨κ» μ¬μ©νμ¬ μ»€λ° λ΄μμ μ‘°ννλ€.
git log --pretty=oneline --graph
chapter2-basic
$ git log --pretty=oneline --graph
* 810c8623873e1384085d551ad5bc0e5c5c04d754 (HEAD -> master) Add .gitignore file
νμ¬λ ν λΈλμΉμμ μμ ν μ»€λ° λ΄μλ§ μ‘΄μ¬νμ¬ μ΄λ κ² λνλμ§λ§, μ¬λ¬ λΈλμΉμμ μμ ν μ»€λ° λ΄μμ΄ μ‘΄μ¬νλ νλ‘μ νΈμ κ²½μ° κ°μμ μΌλ‘ μ»€λ° λ΄μμ μ‘°νν μ μλ€.