#
๋์ ๊ฐ์ค/๊ณํ์ฐ์ํํ ํฌ์บ ํ ๋๋๊ณ ํจ๊ป ํ๋ก์ ํธํ ์ฌ๋๋ค ๋ง๋๊ธฐ
๋ค๋ฅธ ์ฌ๋ ์๊ฒฌ ์ ๋ฃ๊ธฐ
๋ด๊ฐ ์๋ ๊ฒ์ ์น์ ํ ์๋ ค์ฃผ๊ธฐ
๋ชจ๋ฅด๋ ๊ฒ์ ์ ์ง๋ฌธํ๊ธฐ
๋ฐฐ์ด ๊ฒ์ ๊ฐ์ธ์ ์ผ๋ก ์จ๋จน์ด ๋ณด๊ธฐ
์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ์ค๋ ๋ณต์ตํ๊ธฐ
#
Git / Github#
Git์ ๊ดํ์ฌGit์ ๋ฆฌ๋์ค ํ ๋ฐ์ฆ(Linus Torvalds)๊ฐ ๋ฆฌ๋ ์ค(Linux) ์ปค๋์ ๊ด๋ฆฌํ๊ธฐ ์ํด์ ๋ง๋ ์์ค๊ด๋ฆฌ ํด์ด๋ค. (ใทใท) Git ์ด์ ์ ํ์๊ด๋ฆฌ ํด์ SVN, CVS ๋ฑ์ด ์์์.
๊ฐ๋จํ ์๊ท๋ชจ ํ๋ก์ ํธ์ Git์ ์ฌ์ฉํ๋ ๊ฒ์ ๋์ด๋๋ฅผ ๋์ด์ง๋ง, ๋ณต์กํ ๋๊ท๋ชจํ๋ก์ ํธ์์๋ ํ๋ก์ ํธ์ ๋์ด๋๋ฅผ ์๋นํ ๋ฎ์ถ ์ ์๊ธฐ ๋๋ฌธ์ ํ์์ ์ด๋ค.
#
์ํฐ ํจํดgit add .
: ๋ณ๊ฒฝ์ฌํญ์ด ์๋ ๋ชจ๋ ํ์ผ์ ํ๋ฒ์ ์คํ ์ด์ง ํ์ง ๋ง์๋ผ. ํ ํ์ผํ ํ์ผ ์ฉ ๋ณ๊ฒฝ์ฌํญ์ ํ์ธํ๋ฉด์ ์ปค๋ฐํด๋ผ.git commit -m ""
: ์ปค๋ฐ์git commit
์ผ๋ก ์ ๋ชฉ๊ณผ ํจ๊ป ๊ฐ๋จํ ์ค๋ช ๊น์ง ๋ง๋ถ์ฌ์ ์์ฑํ๋ ๊ฒ์ด ์ ์์ด๋ค.
์ด๋ฌํ ์ํฐ ํจํด์ด ๋ง์ฐํด ์์. ์ข์ ์ปค๋ฐ ์ต๊ด์ ๊ธฐ๋ฅด๋ ๊ฒ์ด ์ค์ํ๋ค.
#
Git flowGit-flow, Github flow, Gitlab flow ๊ฐ๊ฐ์ด ๋ค๋ฅธ ํ์ ๊ด๋ฆฌ ์ ๋ต์ด๋ค. ์ด ์ธ์๋ ์๋ง์ flow ๋ค์ด ์กด์ฌ. ํ์ง๋ง Git-flow ๋ผ๋ ์ด๋ฆ ๋๋ฌธ์ Git flow๊ฐ ์ ์, ํ์ค์ด๋ผ๋ ์คํด๋ฅผ ํ๊ธฐ ์ฝ๋ค. ํ์ง๋ง Git flow๊ฐ ๋ณต์กํ๊ณ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ฐ๋์งํ์ง ์์ ์กฐ์ง, ํ์ด ์์ ์ ์๋ค. Git flow ์ธ์๋ ํ๋ฅญํ flow ์ ๋ต๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ Git flow์ ๋ํด ๊ณต๋ถํ๋ ๊ฒ์ ์ข์ง๋ง ๋ฌด์กฐ๊ฑด GIt flow๋ฅผ ์ ์ฉํ๋ ๊ฒ์ดํ์ค์ธ ๊ฒ์ ์๋๋ค.
์ฐ๋ฆฐ Git-flow๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์ - ์ฐ์ํํ์ ๋ค ๊ธฐ์ ๋ธ๋ก๊ทธ
ํ๋ฃจ์ 1000๋ฒ ๋ฐฐํฌํ๋ ์กฐ์ง ๋๊ธฐ | ๋ฑ ํฌ์๋ฌ๋
#
์ปค๋ฐ ๋ฉ์์ง์ ๋ํด๋ฉ์์ง๋ ํ๊ธ๋ ๊ฐ๋ฅํ๋ค.
์ปค๋ฐ ๋ฉ์์ง๋ ํ์ ๋ฟ๋ง ์๋๋ผ ๋ฏธ๋์ ๋๋ฅผ ์ํด ๋จ๊ธฐ๋ ๊ฒ์ด๋ค. ์ ๋นํ ๋จ์ด๋ฅผ์ฐพ์ง ๋ชปํ ์ด์ํ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋จ๊ธฐ๋ ๊ฒ๋ณด๋ค ํ๊ธ๋ก ๋ช ํํ๊ฒ ์์ฑํ๋ ๊ฒ์ด ํจ์ฌ๋ซ๋ค.
์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ์คํ ์์ค๊ฐ ์๋๋๊น
ํ์ด๋ธ๋ฆฌ๋๋ก ์ปค๋ฐ ๋ฉ์์ง ์ ๋ชฉ์ ์์ด๋ก ๋จ๊ธฐ๊ณ ์ค๋ช ์ ํ๊ธ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
์ค์ ๋ก TDD๋ฅผ ์ํ๋ ํ์์ ํ ์คํธ ์ฝ๋์ ๋ฉ์๋ ๋ช ์ ํ๊ธ๋ก ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ํจ์ฌ ๋ช ํํ ๋ฉ์๋ ๋ช ์ผ๋ก ์ธํด ์ข์ ํจ๊ณผ๊ฐ ์๋ค.
fork ํ PR๊ณผ branch ํ PR์ ์ฐจ์ด
๊ธฐ๋ณธ์ ์ผ๋ก fork๋ ๋ด๊ฐ ์ด ์ ์ฅ์์ ๊ถํ์ด ์์ ๋ ํ๋ ๊ฒ์ด๋ค. ์คํ ์์ค์ ๊ธฐ์ฌํ๋ ๊ฒฝ์ฐ ๋ฑ๋ฑ..
#
Git ๋ช ๋ น์ด์ ๋์ ์๋ฆฌGit ๋์ ์๋ฆฌ๋ฅผ ์ ๋๋ก ๋ฐฐ์ด ๊ฒ์ ์ฒ์์ด์๊ณ ๊ธฐ์กด ์๊ณ ์๋ ๊ฐ๋ ์ด ์๋ชป๋์๋ค๋๊ฒ์ ๊นจ๋ซ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ถฉ๊ฒฉ์ ๋ฐ์๋ค.
git init : ์จ๊ฒจ์ง ํด๋๊ฐ ํ๋ ์๊น
.git : ๋ก์ปฌ ์ ์ฅ์
git์ ์ ์ฅ ๋จ์๋ ์ปค๋ฐ
- Working directory โ Stage โ Commit
GitHub or GitLab ... - ์๊ฒฉ ์ ์ฅ์
git reset โ ๋ ์๊ฐ์ง ์์.
์ํน ๋๋ ํ ๋ฆฌ์ ๋ณ๊ฒฝ์ฌํญ์ ๋ํ ์ค๋ ์ท
์ปค๋ฐ์ ๋ด๋ถ์ ์ผ๋ก ํธ๋ฆฌ๋ก ๊ตฌ์ฑ๋์ด ์์ ํธ๋ฆฌ์ ์ค๋ธ์ ํธ๋ค์ด ๋ฌ๋ ค์ ํ๋์ ์ปค๋ฐ์ ๊ตฌ์ฑํจ
git cat-file -t ce013
git cat-file blob ce013
git cat-file -t HEAD
git log -n1
git cat-file -t 7da33cf4
git cat-file commit 7da33cf4
git ls-tree aaa96ced2d9a1c8e ...
branch๋ ํค๋์ ๋ํ ์ฐธ์กฐ์ผ ๋ฟ
์ปค๋ฐ์ ๋ถ๋ชจ ์ปค๋ฐ์ด ์๋ค
git checkout C4 vs git checkout hello
git์ diff๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ฒด๋ฅผ ์ ์ฅํ๋ค.
svn์ diff๋ฅผ ์ ์ฅํ๋ค
tree .git
๋ธ๋์น๋ฅผ ๋ง์ด ๋ง๋ค์ด๋ ์ฉ๋์ด ์ฆ๊ฐํ์ง ์๋๋ค.
git status
git checkout master
๋ธ๋์น๋ ์ปค๋ฐ์ ๋ํ ์ฐธ์กฐ์ผ ๋ฟ ์๋ฌด๊ฒ๋ ์๋๋ค.
๊น์๋ ์ปค๋ฐ๋ฐ์ ์๋ค. ํ๊ทธ, ๋ธ๋์น, ์ด์ฉ๊ณ ๋ ๋ค ์ฐธ์กฐ ๋ณ์์ผ ๋ฟ์ด๋ค ์ค์ ์กด์ฌํ๋ ๊ฐ์ฒด๋ ์๋ฌด๊ฒ๋ ์๋ค.
git reset โhard Head~1 ์์ ๋ณต์ํ๋ ๋ฒ
git branch test ์ฒดํฌ์ฌ
git reflog ๋ชจ๋ ์ฐธ์กฐ ๋ณ์๋ค์ ๋ก๊ทธ๋ฅผ ๋ณด๋ ๋ช ๋ น
git push ๋ก์ปฌ ์ ์ฅ์์ ์๋ ๊ฒ์ ์๊ฒฉ ์ ์ฅ์๋ก ๋ณด๋