๐ด branch
[GIT] โก๏ธ Branch ์ ๋ฆฌ (git branch / checkout / switch / merge / rebase)
Git Branch(๋ธ๋์น) ๋? SW๋ฅผ ๊ฐ๋ฐํ ๋, ๊น์ ๋ธ๋์น๊ธฐ๋ฅ์ ํ์ฉํ๋ค๋ฉด ๊ฐ์ ํ๋ผ๋ฆฌ ์์ ํ๋ก์ ํธ๋ฅผ ๊ณต์ ํ๊ณ ๊ฐ์ด ์์ ํ ์ ์๋๋ก ํด์ค๋ค. ๋ ํผ์์ ์์ ํ๋๋ผ๋ ์ฌ๋ฌ ๋ฒ์ ์ ๋ง๋ค์ด ๋์ ๋,
inpa.tistory.com
branch๋ ํน์ commit์ ๋ํ ์ฐธ์กฐ์ด๊ธฐ ๋๋ฌธ์ branch๋ฅผ ๋ง์ด ๋ง๋ค์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ ๋์คํฌ ๊ณต๊ฐ์ ๋ถ๋ด์ด ๋์ง ์๋๋ค.
๋ฐ๋ผ์, ์์ ์ ์ปค๋ค๋ branch๋ก ๋ง๋ค๊ธฐ๋ณด๋ค๋ ์์ ๋จ์๋ก ์๊ฒ ๋๋๋ ๊ฒ์ด ์ข๋ค.
branch๋ "ํ๋์ commit๊ณผ ๊ทธ ๋ถ๋ชจ commit๋ค์ ํฌํจํ๋ ์์ ๋ด์ญ"์ด๋ผ๊ณ ๊ธฐ์ตํ์.
option

// ํ์ฌ branch ํ์ธํ๊ธฐ
git branch
// ์์ธํ ์ ๋ณด๋ฅผ ํฌํจํ ํ์ฌ branch ํ์ธํ๊ธฐ
git branch -v
// branch ์์ฑ
git branch [New Branch Name] [Diverge Branch Name]
// ํ์ฌ HEAD branch ์ด๋ํ๊ธฐ
git checkout [Move Branch Name]
// branch ์ญ์ ํ๊ธฐ
git branch -D [Delete Branch Name]
// ๋ก์ปฌ ๋ถ๊ธฐ๋ฅผ ์ญ์ ํ์์๋ ์๊ฒฉ ๋ถ๊ธฐ๊ฐ ๋จ์์์ ๋
git remote prune origin
// branch ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ
git branch -m [Current Branch Name] [Modified Branch Name]
// branch ์์ฑ๊ณผ ๋์์ checkout
git checkout -b [New Branch Name]
// branch commit ์์น ์ด๋
git branch -f [Moved Branch Name] [Target Branch Name]
๐ merge
merge๋ ๋ ๊ฐ์ ๋ถ๋ชจ๋ฅผ ๊ฐ๋ฆฌํค๋ ํน๋ณํ commit์ ๋ง๋ค์ด๋ธ๋ค.
์ด๋ ํ ๋ถ๋ชจ์ ๋ชจ๋ ์์ ๋ด์ญ๊ณผ ๋๋จธ์ง ๋ถ๋ชจ์ ๋ชจ๋ ์์ , ๊ทธ๋ฆฌ๊ณ ๋ ๋ถ๋ชจ์ ๋ชจ๋ ๋ถ๋ชจ๋ค์ ์์ ๋ด์ญ์ ํฌํจํ๋ค.
๐ก rebase
rebase๋ commit๋ค์ ๋ชจ์์ ๋ณต์ฌํ ๋ค, ๋ค๋ฅธ ๊ณณ์ ๋จ๊ถ ๋๋๋ค.
commit์ ํ๋ฆ์ ๋ณด๊ธฐ ์ข๊ฒ ํ ์ค๋ก ์ ๋ฆฌํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
๐ข HEAD
HEAD๋ ํ์ฌ checkout ๋ commit์ ๊ฐ๋ฆฌํจ๋ค. ์ฆ, ํ์ฌ ์์ ์ค์ธ commit์ ๋งํ๋ค.
๐ต Relative Reference
ํด์๋ก commit์ ๊ตฌ๋ถํ๋ ๊ฒ์ด ๋ถํธํ๋ ๊ฒ์ ํด์์์ผ์ค๋ค.
โช ์บ๋ฟ์ฐ์ฐ์(^) ํ ๋ฒ์ ํ commit ์๋ก ์ฌ๋ผ๊ฐ๋ค.
โช ~<num> ํ ๋ฒ์ num commit ์๋ก ์ฌ๋ผ๊ฐ๋ค.
๐ฃ reset & revert
[GIT] โก๏ธ git add / commit / push ์ทจ์ํ๊ธฐ ๐ฏ ์ ๋ฆฌ
๊ธฐ์กด ์ฝ๋๋ฅผ ๋ ๋ฆฌ๊ณ ์ถ์ง์์ผ๋ฉด origin(๊นํ)์๋ค๊ฐ push๋ฅผ ํด๋๊ณ ๋ฆฌ์ ํด์ผ ์๊ฒฉ์๋ฒ์ ๋ด๊ฐ ์์ ํ๊ฒ ๋จ๋๋ค. ๋ก์ปฌ์์ ๋ค ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ด๋ค. git add ์ทจ์ํ๊ธฐ (ํ์ผ ์ํ๋ฅผ Unstage๋ก ๋ณ๊ฒฝํ๊ธฐ) ์
inpa.tistory.com
reset
ํ์ฌ๊น์ง ์์ ํ๋ ์ด๋ ฅ๋ค์ ๋ชจ๋ ์ง์ฐ๊ณ ์ํ๋ commit ์์ ์ผ๋ก ๋์๊ฐ๋ค.
commit ์ด๋ ฅ๋ค์ ์ง์ฐ๊ธฐ ๋๋ฌธ์ ์๊ฒฉ repository์ history๊ฐ ๊ผฌ์ผ ์๋ ์๋ค.

// commit ๋ ํ์ผ๋ค์ staging area๋ก ๋๋ ค๋์ (commit ํ๊ธฐ ์ ์ํ)
git reset --soft [Commit ID]
// commit ๋ ํ์ผ๋ค์ working directory๋ก ๋๋ ค๋์ (add ํ๊ธฐ ์ ์ํ)
git reset --mixed [Commit ID]
// commit ๋ ํ์ผ๋ค ์ค tracked ํ์ผ๋ค์ working directory์์ ์ญ์ ํ๋ค.
git reset --hard [Commit ID]
// ํ์ฌ๋ก๋ถํฐ ์ํ๋ ๋งํผ์ commit์ด ์ญ์ ๋๋ค.
git reset HEAD~10
// ๊ฐ์ฅ ์ต๊ทผ commit์ด ์ทจ์๋๋ค.
git reset HEAD^
revert
ํ์ฌ๊น์ง ์์ ํ๋ ์ด๋ ฅ๋ค์ ๊ทธ๋๋ก ๋๋ ์ฑ๋ก ์ํ๋ commit ์์ ์ผ๋ก ๋์๊ฐ๋ค.
commit ์ด๋ ฅ๋ค์ ์ง์ฐ์ง ์์ ์ฑ ์๋ก commit์ ํ๋ ๊ฐ๋ ์ด๋ฏ๋ก history๊ฐ ์ ์ง๋๋ค.

// ํด๋น commit์ผ๋ก ๋์๊ฐ๋ค.
git revert [Commit ID]
๐ค cherry-pick
[GIT] โก๏ธ ์ํ๋ commit ๊ฐ์ ธ์ค๊ธฐ (git cherry-pick)
์ํ๋ commit ๊ฐ์ ธ์ค๊ธฐ git cherry-pick cherry pick์ด๋, ์ฒด๋ฆฌ ํ ๋ฐ๊ตฌ๋์์ ์ ์ผ ์ข์ ์ฒด๋ฆฌ๋ง ๊ณ ๋ฅด๋ ๊ฒ์์ ์ ๋ํ ํํ์ด๋ผ๊ณ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ์ ์ผ ์ข์ ๊ฑธ ์ ๋ณํ๋ค๋ ๋ป์ผ๋ก ์ฐ์ธ๋ค. git์
inpa.tistory.com
๐ด stash
[GIT] โก๏ธ ์ปค๋ฐํ์ง์๊ณ ๋ธ๋์น ๊ฐ ์ด๋ (git stash)
์คํ์(Stash) ํ์ผ์ ๋ณ๊ฒฝ ๋ด์ฉ์ ์ผ์์ ์ผ๋ก ๊ธฐ๋กํด๋๋ ์์ญ์ด๋ค. ์์ง ๋ง๋ฌด๋ฆฌํ์ง ์์ ์์ ์ ์คํ์ ์ ์ ์ ์ฅํ ์ ์๋๋ก ํ๋ค. ์ด๋ฅผ ํตํด ์์ง ์๋ฃํ์ง ์์ ์ผ์ commitํ์ง ์๊ณ ๋์ค์
inpa.tistory.com
๐ Gitmoji
[GIT] โก๏ธ Gitmoji ์ฌ์ฉ๋ฒ (Gitmoji-cli)
Gitmoji๋? Gitmoji = git + emoji ์ ๋๋ค. ๊ธ์ ์ธ ๋ ์ด๋ชจ์ง๋ฅผ ์ด์ฉํ๋ฉด, ๋์ค์ ๊ธ์ ์ฝ์๋ ๋ช ํํฉ๋๋ค. ์ปค๋ฐํ ๋๋ ์ด๋ชจ์ง๋ฅผ ์ด์ฉํ๋ค๋ฉด, ๋ด์ฉ์ ํ ๋์ ์์๋ณด๊ธฐ ๋ ์ฝ๊ฒ ์ฃ . carloscuesta/gitmoji An emo..
inpa.tistory.com
๐ก tag
[GIT] โก๏ธ ํ๊ทธ ๊ธฐ๋ฅ ๋ฐ ์ฌ์ฉ๋ฒ (git tag)
git ํ๊ทธ(Tag) git์์ ํ๊ทธ๋ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ฌด์ธ๊ฐ ํ์๋ฅผ ํด๋๊ธฐ ์ํ ํ๊น ๊ธฐ๋ฅ์ ์ํ ๊ฒ์ผ๋ก, ํน์ ์ปค๋ฐ์ ํ๊ทธํด ๋๋ ๊ฒ์ด๋ค. ํน์ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๋ ๋งํฌ๋ผ๊ณ ์๊ฐํด๋ ์ข๋ค. ์ด
inpa.tistory.com
๐ข with remote storage
[GIT] โก๏ธ ๊นํ - ์๊ฒฉ ์ ์ฅ์ ์ฐ๋ ๐ฏ ์ ๋ฆฌ (git remote / push / pull)
GIT ์๊ฒฉ ์ ์ฅ์ ์ฐ๋ Git์ ์ ๋๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์๊ฒฉ ์ ์ฅ์๊ฐ ํ์ํ๋ค. Remote repository(์๊ฒฉ ์ ์ฅ์)๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ ์์ ๋ฌผ์ ์์ ํ๊ฒ ๋ฐฑ์ ํ ์ ์์ผ๋ฉฐ, ๋ง์ ์ฌ๋๋ค๊ณผ ํ์
inpa.tistory.com
๐ต ์๊ฐํ
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
learngitbranching.js.org
๐ฃ Reference
[๊น๋ง] Git ๋ชฉ๋ก
๋ณธ ๋ธ๋ก๊ทธ์ ์์ฑ๋ Git ๊ด๋ จ ๋ด์ฉ URL์ ์ ๋ฆฌํ ๊ณณ์ ๋๋ค. ๋ชฉ๋ก [Git] "git add -p" ๋ฅผ ํ์ฉํ๋ ์ด์ [Git] .gitignore ์ค์ [Git] learngitbranching ๋ต์ ๋ฐ ํ์ด - 1 [Git] learngitbranching ๋ต์ ๋ฐ ํ์ด -..
zoosso.tistory.com