[`23 ํ๊ณ ๋ชจ๊ฐ์ฝ] ไปๆ็ฐๆจๆ 3ํ์ฐจ ๊ฐ์ธ ๋ฆฌ๋ทฐ
[ # 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
ํ์ฌ๋ ํ ๋ธ๋์น์์ ์์ ํ ์ปค๋ฐ ๋ด์ญ๋ง ์กด์ฌํ์ฌ ์ด๋ ๊ฒ ๋ํ๋์ง๋ง, ์ฌ๋ฌ ๋ธ๋์น์์ ์์ ํ ์ปค๋ฐ ๋ด์ญ์ด ์กด์ฌํ๋ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๊ฐ์์ ์ผ๋ก ์ปค๋ฐ ๋ด์ญ์ ์กฐํํ ์ ์๋ค.