๐ฃ ๋ธ๋์น(Branch)
1. ๋ธ๋์น ๊ฐ๋
- ๋
๋ฆฝ์ ์ธ ์์
์ ํ ์ ์๋ ๊ณต๊ฐ
- ๊ฐ๊ฐ์ ๋ธ๋์น๋ ๋ค๋ฅธ ๋ธ๋์น์ ์ํฅ์ ๋ฐ์ง ์์
- ์ฌ๋ฌ ์์
์ ๋์์ ์งํ ๊ฐ๋ฅ

๐ฃ Branch ์ดํด๋ณด๊ธฐ (๋ชฉ๋ก)
1. Main Branch
์ ์ฅ์๋ฅผ ์ฒ์ ๋ง๋ค๋ฉด, Git์ ๋ฐ๋ก 'main'(ํน์ master)๋ผ๋ ์ด๋ฆ์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๋๋ค. ์ด ์๋ก์ด ์ ์ฅ์์ ์๋ก์ด ํ์ผ์ ์ถ๊ฐ ํ๋ค๊ฑฐ๋ ์ถ๊ฐํ ํ์ผ์ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ฌ ๊ทธ ๋ด์ฉ์ ์ ์ฅ(์ปค๋ฐ, Commit)ํ๋ ๊ฒ์ ๋ชจ๋ 'main' ๋ผ๋ ์ด๋ฆ์ ๋ธ๋์น๋ฅผ ํตํด ์ฒ๋ฆฌํ ์ ์๋ ์ผ์ด ๋๋ค.
'master'๊ฐ ์๋ ๋ ๋ค๋ฅธ ์๋ก์ด ๋ธ๋์น๋ฅผ ๋ง๋ค์ด์ '์ด์ ๋ถํฐ ์ด ๋ธ๋์น๋ฅผ ์ฌ์ฉํ ๊ฑฐ์ผ!'๋ผ๊ณ ์ ์ธ(์ฒดํฌ์์, checkout)ํ์ง ์๋ ์ด์, ์ด ๋์ ๋ชจ๋ ์์
์ 'master' ๋ธ๋์น์์ ์ด๋ฃจ์ด์ง๋ค.
2. Feature Branch
- main์์๋ index.html ๋ก ๋ฉ์ธํ์ด์ง
- Feature branch์์๋ login.html ๋ก๊ทธ์ธํ์ด์ง
์์
ํ๊ธฐ
3 ๋ธ๋์น ํตํฉ (merge)
- main์์๋ index.html ๋ก ๋ฉ์ธํ์ด์ง
- Feature branch์์๋ login.html ๋ก๊ทธ์ธํ์ด์ง
- ๋ ๊ฐ๋ฅผ mergy ๋ก ํ๋๋ก ํฉ์น๊ธฐ
4. ํ์ฌ ๋ธ๋์น ๋ชฉ๋ก๊ณผ ํ์ฌ ๋ธ๋์น ํ์ธ ( ํ์ธ ๋ช
๋ น์ด : git branch )
- ํ์ธ ๋ช
๋ น์ด : git branch
- *๊ฐ Head์
- Head : ํ์ฌ ๋ด ์์
๊ณต๊ฐ์ main๋ธ๋์น์ด๋ค. ํ์ฌ ๋ด ์์
์ด ์ด๋ ์ปค๋ฐ์ ๊ฐ๋ฆฌํค๊ณ ์๋ ์๋ ค์ฃผ๋ ๊ฒ. (์ฆ ๊ฐ๋ฆฌ2๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ค๋ฉด, ๋ด ์์
๊ณต๊ฐ์ ๊ฐ๋ฆฌ2๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ ๊ฒ)
5. ๋ธ๋์น (Branch) ๋ง๋ค๊ธฐ
1. ํฐ๋ฏธ๋๋ก branch ์์ฑ
2. fork ํ์ธ
3. git branch login ๋ง๋ค์์ง๋ง, Head๋ ์์ง amin์ ๊ฐ๋ฆฌํด
6. ๋ธ๋์น (Branch) ์ด๋
checkout
- checkout -b : ๋ธ๋์น ์๋ก ๋ง๋ค์ด ์ด๋
- git checkout -b <๋ธ๋์น๋ช
>
Switch
git switch gary
switch -c : ๋ธ๋์น ์๋ก ๋ง๋ค์ด ์ด๋
๐ฃ ํ์ผ ์์ ๋ด์ฉ ๋ณต์
1. restore
ํ์ผ ์์ ๋ด์ฉ ๋ณต์
• git restore ํ์ผ๋ช
- ์ญ์ ํ๊ณ git diff ํ์๋ ๋ค๋ฅธ๊ฑฐ ์๋ ค์ค
- ๊ฐ์ฅ์ต๊ทผ ์ปค๋ฐ๋ ๋ด์ฉ์ผ๋ก ๋ณต์๋จ
- VScode๋ก ๋ณต์
2. restore --staged
์คํ
์ด์ง ์ฌ๋ฆฐ๊ฒ ๋นผ๊ธฐ (์คํ
์ด์ง ์ฌ๋ผ๊ฐ ๊ฒ - addํ๊ฒ์)
์คํ
์ด์ง์ ์ฌ๋ผ๊ฐ๋๊ฒ์ ๋ค์ ๋นผ๊ธฐ
git restore --staged ํ์ผ๋ช
3. reset
์คํ
์ด์ง ์ฌ๋ฆฐ๊ฒ ๋นผ๊ธฐ
• git reset HEAD ํ์ผ๋ช
๐ฃ ๋ธ๋์น ์ญ์
1. git branch -D ์ญ์ ํ ๋ธ๋์น๋ช
git branch -D ์ญ์ ํ ๋ธ๋์น ๋ช
- ์ฃผ์ํ ์ ์ ํด๋น ๋ธ๋์น์์ ์ญ์ ํ๋ฉด ์๋จ. ๋ค๋ฅธ ๋ธ๋์น์ ๋ค์ด๊ฐ์ ์ญ์ ํด์ผํจ.
- ๋๊ฐ ๋์์ ์ญ์ ๋ ๊ฐ๋ฅ
0. ๋๋ง์ ์ ๋ฆฌ๋ณธ
1. git ์ ๋ฆฌ
[main]
1. git clone ์ฃผ์
2. ํ์ผ ๋ง๋ค๊ธฐ git pushํ์ํ๊น์ง
3. git branch ๋ธ๋์น๋ช
4. git push origin ๋ธ๋์น๋ช
//๋ธ๋์นgithub์ฌ๋ผ๊ฐ(main์์ pull๋์ํ๋ก๊ฐ)
[branch]
(main ์ผ๋ก ๋์ด์์๊ฒฝ์ฐ)
1. git checkout ๋ธ๋์น๋ช
//๋ธ๋์น์ด๋
2. ํ์ผ๋ญ ๋ง๋ค๊ธฐ
3. git add . / git commit -m "" /
4. git push origin ๋ธ๋์น๋ช
๋ธ๋์น github์ ์ฌ๋ผ๊ฐ
์ด ๋จ๊ณ์์ mergeํด๋ ๋์ง๋ง
๋ง์ฝ ๋๊ตฐ๊ฐ main์ ๊ทธ ์ฌ์ด์ push๋ฅผ ํ๋ค๋ฉด, ์ถฉ๋ ์๋ฐฉ์ ์ํด์
5. git pull origin main ํด์ค๊ณ
6. git push origin ๋ธ๋์น๋ช
7. ์ดํ์ mergeํ๊ธฐ
/// branch์ ์ง์ ๋ค์ด๊ฐ ๊ฒฝ์ฐ
[branchํ๊ณ ์]
[์ง์ ๋ค์ด๊ฐ๊ธฐ]
1. git clone -b ๋ธ๋์น --single-branch ๋ ํ์งํ ๋ฆฌ์ฃผ์
git clone -b branch2 --single-branch <https://github.com/test-tenten/test1.git>
2. ํ์ผ ๋ง๋ค๊ธฐ
3. git add . / git commit -m ""
4. git push
์ด ์ํ๋ก ์ด์ githubํ์ด์ง๊ฐ์ merge๋๋ฌ๋๋๋๋ฐ ์ถฉ๋์๋ฐฉ์ฐจ์์์
5. git pull origin
6. git push
ํด์ฃผ๊ธฐ
7. ์ดํ์ githubํํ์ด์ง๊ฐ์ merge
์ฌ์ค
4๋ฒ์ ํ๊ธฐ์ ์
5-6๋ฒ ์ด๋ ๊ฒ ํด์ค๋ ๋จ.
ํน์ 2๋ฒ์ ์ 5๋ฒํด์ค๋๋จ.
[main]
1. main ๋ธ๋์น
2. git branch ๋ธ๋์น๋ช
(๋ธ๋์น๋ช
์ผ๋ก branch ์์ฑ)
(main ์ผ๋ก ๋์ด์์๊ฒฝ์ฐ)
3. git checkout ๋ธ๋์น๋ช
//๋ธ๋์น์ด๋
4. ํด๋น ๋ด์์ ๊ฐ๋ฐ(ํญ์ git pull origin main)
5. git add . / git commit -m ""
6. git push origin ๋ธ๋์น๋ช
๋ธ๋์น github์ ์ฌ๋ผ๊ฐ
์ด ๋จ๊ณ์์ mergeํด๋ ๋์ง๋ง
๋ง์ฝ ๋๊ตฐ๊ฐ main์ ๊ทธ ์ฌ์ด์ push๋ฅผ ํ๋ค๋ฉด, ์ถฉ๋ ์๋ฐฉ์ ์ํด์
6. git pull origin main ํด์ค๊ณ
7. git push origin ๋ธ๋์น๋ช
8. ์ดํ์ mergeํ๊ธฐ
2. ์ถฉ๋
- ์ ๊ฐ pushํ๊ธฐ์ ์ ๋ญ๊ฐ main์ด๋ ๊ฒน์น๋ฉด
- 2023๋
6์ 9์ผ ์คํ 4:412023๋
6์ 9์ผ ์คํ 4:412023๋
6์ 9์ผ ์คํ 4:41**
- pull origin mainํ์๋ vscode์๋ ๋ง์ง๋ง ์ฌ์ง์ฒ๋ผ ๋จ๊ณ
- 2023๋
6์ 9์ผ ์คํ 4:412023๋
6์ 9์ผ ์คํ 4:412023๋
6์ 9์ผ ์คํ 4:41**
- ๋ง์ฝ pull origin main์ ์ํ์ํ์์ ๊ทธ๋ฅ pushํ์ megeํ๋ คํ๋ฉด 1-2๋ฒ ์ฌ์ง์ฒ๋ผ๋ฉ๋๋ฑ
3. Git ๋ธ๋์น ์ด๋ฆ ๋ณ๊ฒฝ
Git ๋ก์ปฌ ๋ธ๋์น ์ด๋ฆ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ
- ์ด๋ฆ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ branch ๋ค์ด๊ฐ์ ์์
git branch -m old-branch new-branch //์ด ๋ฐฉ๋ฒ์ฌ์ฉํ๊ธฐ
git branch -m test nameChange
- ๊ธฐ์กด test ์ด๋ฆ์์ > nameChange๋ก ๋ณ๊ฒฝ
- branch pushํ ๊ฒฝ์ฐ, ๋ก์ปฌ์์๋ main๊ณผ nameChange๋ง ๋จ์
- ๊ทธ๋ฌ๋ githubํ์ด์ง์์๋ test๋ธ๋์น์ nameChange๋ธ๋์น๊ฐ ๊ณต์กด
- ๋ณต์ ๊ฐ๋
์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ
- ๊ทธ์น๋ง commit ๋ด์ญ์ ๊ทธ๋๋ก ๋ณต์ฌ๋๊ธฐ ๋๋ฌธ์
- ๊ธฐ์กด์ test ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ฉด ๋จ
4. Git Branch ์ญ์
๋ฐฉ๋ฒ1.
๋ฐฉ๋ฒ2.
Git ๋ก์ปฌ ๋ฐ ์๊ฒฉ ๋ธ๋์น ์ญ์ ํ๊ธฐ
5. ๋ฐ๋ก์ด์ commit ๋ด์ญ push ํ ๊ฒ๋ค ์์
git commit --amend -m "์ปค๋ฐ์์ ํ ๋ด์ฉ"
git push -f origin branch
(git push -force origin branch)