์ฐธ๊ณ ์ฌ์ดํธ
git ๋ช ๋ น์ด๋ฅผ ํตํ์ฌ ์๊ฒฉ ์ ์ฅ์์ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํด๋ณด์.
์ ๊ฒ์๊ธ์์ git clone์ ํตํด ๋ฐ์ ํด๋๋ฅผ ๋ค์ด๊ฐ ํด๋์ ๋ด์ฉ์ ๋ณ๊ฒฝํด๋ณด์.
๐ git status
ํด๋์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ํธ๋ํนํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค๋ค.
์ด๋, ๋นจ๊ฐ์์ผ๋ก ํ์๋ ํ์ผ์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋์์ผ๋, ์ ์ฅ์์ ๋ฑ๋กํ์ง ์์ ํ์ผ๋ค์ด๊ณ
๋ น์์ผ๋ก ํ์๋๋ ํ์ผ๋ค์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋์๊ณ , ์ ์ฅ์์ ๋ฑ๋กํ ํ์ผ๋ค์ด๋ค.
$ git status
# ์ ์ฅ์์ ์ํ๋ฅผ ์ฒดํฌํ๋ค.
# ์ด๋ค ํ์ผ์ด ์ ์ฅ์ ์์ ์๋์ง, ์ปค๋ฐ์ด ํ์ํ ๋ณ๊ฒฝ์ฌํญ์ด ์๋์ง, ํ์ฌ ์ ์ฅ์์ ์ด๋ค ๋ธ๋์น์์
# ์์
ํ๊ณ ์๋์ง ๋ฑ์ ๋ณผ ์ ์๋ค.
$ git status -s
# git status์ ์ ์ฌํ๋ ์ํน ํธ๋ฆฌ์ ์ํ๋ฅผ ์์ฝํด์ ๋ณด์ฌ์ฃผ๋ ๋ช
๋ น
# ๋ณ๊ฒฝ๋ ํ์ผ๋ค์ด ๋ง์ ๋ ์ ์ฉ
$ git status
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: People.jsx
new file: src/Properties/Arcordian.js
modified: yarn.lock
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: src/layout/AppLayout.js
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/Editor/Mesh/cube.glb
Changes to be committed: staged ๋ ํ์ผ๋ก commitํ ์ ์๋ ์ํ์ ํ์ผ๋ค์ ๋ปํ๋ค.
Untracked files: ๊น์ด ํด๋น ํ์ผ์ ๊ด๋ฆฌํ๊ณ ์์ง ์๋ค๋ ๋ป์ด๋ค.
๐ฆ Stage
stage๋ผ๊ณ ๋ถ๋ฆฌ๋๋ฐ stage๋ผ๋ ๊ณณ์ ์ ์ฅ์์ ๋ฑ๋กํ ํ์ผ๋ค์ ๋ด์๋๋ค.
์์ฑ์๋ stage๋ฅผ ํ๋ฐฐ ๋ฐ์ค์ ๊ฐ๋ค๊ณ ์ดํดํ๊ณ ์๋ค.
โ git add
add ๋ช ๋ น์ ํตํด ์ ์ฅ์์ ๋ฑ๋กํ ํ์ผ๋ค์ ์ ํํ๋ค.
git add <ํ์ผ๋ช >์ผ๋ก ์๊ฒฉ ์ ์ฅ์์ ์ ์ฅํ ํ์ผ์ ์ ํ์ ์ผ๋ก ์ถ๊ฐํ ์ ์์ผ๋ฉฐ,
git add . ์ ํตํด ํ์ฌ ๋ณ๊ฒฝ๋ ํ์ผ๋ค์ stage์ ๋ชจ๋ ์ถ๊ฐํ ์ ์๋ค.
๐ .gitignore
100๊ฐ์ ํ์ผ์ ์์ ํ๋คํด๋ณด์. ๊ทธ ์ค 30๊ฐ๋ ๋ด๊ฐ ์ฌ๋ฆฌ๊ณ ์ถ์ง ์์ ํ์ผ ์ ํ์ด๋ค.
๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค.
1. git add . ๋ฅผ ํตํด 100๊ฐ๋ฅผ ๋ชจ๋ ์ฌ๋ฆฌ๊ณ 30๊ฐ๋ฅผ ๋นผ๋ ๋ฐฉ๋ฒ.
2. git add <ํ์ผ๋ช > ์ ํตํด 70๊ฐ๋ฅผ ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ.
๊ฐ๋ฐ์๋ ์ด๋ฐ ๊ฑฐ ์ ํ๋ค.
๐.gitignoreํ ํ์ผ์ ์ค์ ํ์ฌ ํน์ ํ์ผ์ git์ด ๊ด๋ฆฌํ์ง ๋ชปํ๋๋ก ํ๋ค.
Repository ์์ฑ ์, .gitignore๋ฅผ ๋ง๋ค๊ฑด์ง์ ๋ํ ์ฒดํฌ๋ฐ์ค๋ฅผ ๋ณด์์ ๊ฒ์ด๋ค.
ํด๋น ํ์ผ์ ๋ง๋ค์ด์ฃผ์.
๐.gitignore
*.log
build/
security/
ํด๋น ๊ธฐ๋ฅ์ ํตํด .log๋ผ๋ ํ์ฅ์์ build, security ํด๋๋ git์ด ๊ด๋ฆฌํ๋ ๊ฒ์ ๋ง์ ์ ์๋ค.
๐ท๏ธ git commit
๊น์ ํน์ ์์ ์ด ๋๋๋ฉด, ํด๋น ์์ ์ ๋ง์นจ์ ์๋ฆฌ๋ ์์ ์ผ๋ก ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
$ git commit -m "Developed Message";
Developed Message๋ ๋ค์ํ Convention์ ์ ์ฉํ์ฌ ํด๋น ์์ ๋ด์ฉ์ ์ค๋ช ํ ์ ์๋ค.
Convention์ ํด๋น ๋ด์ฉ์ ์ด๋ ํ ๋ฐฉ์์ผ๋ก ์์ฑํ ์ง์ ๋ํ ์ ํ์ผ๋ก ๊ฒ์ํด๋ณด๋ฉด ๋ค์ํ๋ค.
ํด๋น ๋ด์ฉ์ ํ๋ก์ ํธ ๊ฐ๋ฐ ๋ก๊ทธ๋ฅผ ํ์ธํ ๋ ๋์์ด ๋๋ค.
๊ธ ์์ฑ์๋ commit ์์ ์ ํ๋ฐฐ ๋ฐ์ค์ ์ด์ก์ฅ(๋ผ๋ฒจ๋ง)์ ๋ถ์ด๋ ๊ฒ๊ณผ ๋น์ทํ๋ค๊ณ ์๊ฐํ๊ณ ์๋ค.
๐ git push
์ด์ก์ฅ์ ๋ถ์ธ commit ํ์ผ๋ค์ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ฌํด์ผํ๋ค.
git push๋ฅผ ํตํด ์๊ฒฉ ์ ์ฅ์๋ก ํด๋น ์ฝ๋ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฉํ๋ค.
๋ธ๋์น๋ฅผ ์์ฑํด์ ๋ธ๋์น๋ฅผ upstream์ ํตํด ์ฐ๊ฒฐํ๋ค๋ฉด ๋ถ๋ชจ ํธ๋ฆฌ๋ก push๋๋ฉฐ,
$ git push
# ๋ถ๋ชจ ํธ๋ฆฌ๋ก ๋ณ๊ฒฝ๋ด์ฉ ์ ์ฉ
$ git push <์ ์ฅ์๋ช
> <๋ธ๋์น๋ช
>
$ git push origin master
# ํน์ ๋ธ๋์น์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฉํ ์ ์๋ค.
โฌ๏ธ git pull
๋๊ตฐ๊ฐ ๋ณ๊ฒฝํ ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ์ ๊ฐ์ ธ์ ๋ก์ปฌ ์ ์ฅ์์ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ ๋ ์ฌ์ฉํ๋ค.
๐งพ git log
์ปค๋ฐ ๋ด์ญ์ ํ์ธํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ค.
์ด๋ฅผ ํ์ธํ๊ณ ํด๋น ๋ฒ์ ์ผ๋ก ๋๋๋ฆฌ๊ฑฐ๋ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋ค.
$ git log
$ git shortlog
$ git log --graph
# ๊น์ ์ปค๋ฐ ๊ทธ๋ํ๋ฅผ ๋ณด์ฌ์ค๋ค.
๐งน ์ ๋ฆฌ
์ ๋ฆฌํ์๋ฉด,
๋ณ๊ฒฝ๋ ๋ด์ฉ์ add๋ฅผ ํตํด ๋ฐ์ค์ ํฌ์ฅํ๊ณ ,
ํด๋น ๋ฐ์ค์ commit์ ํตํด ํ๋ฐฐ ๋ด์ฉ์ด ๋ด๊ธด ์ด์ก์ฅ(๋ผ๋ฒจ๋ง)์ ๋ถ์ฌ,
๋ฐ์ค๋ฅผ ์๊ฒฉ ์ ์ฅ์์ pushํ๋ ๊ฒ์ผ๋ก ์๊ฐํ๋ฉด ์กฐ๊ธ ์ดํด๊ฐ ํธํ ๊ฑฐ ๊ฐ๋ค.
'DevOps > GitHub' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ GitHub ] ํ์ ์ ์ํ SSH Key ๊ณต๊ฐํค๋ฅผ ์์ฑํด๋ณด์. (0) | 2024.04.11 |
---|---|
[ GitHub ] Repository ์๊ฒฉ ์ ์ฅ์ ์ด์ฉํด๋ณด์. (0) | 2024.04.11 |
[ GitHub ] Git / GitHub ์ฐจ์ด ๋ฐ ์ดํดํ๊ธฐ (0) | 2024.02.22 |