์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- await
- object
- addEventListener
- Porject
- https://m.blog.naver.com/tt2t2am1118/221010125300
- eport
- execCommand
- db
- prj
- setTimeout()
- ๋น๋๊ธฐ
- ajax
- webpack
- sql
- JS #ํ๋ก์ ํธ
- promise
- mysql
- Project
- json
- js
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- ๊ฒ์
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- slow and steady
- Import
- callback
- ๋๊ธฐ
- database
- async
- ํผํ
- Today
- Total
C-log
๐ธGit์ผ๋ก ํ์ ๋ฅ๋ ฅ ๊ธฐ์ด ๋ค์ง๊ธฐ ๋ณธ๋ฌธ
* ๋ค์ด๊ฐ๊ธฐ ์์ ํด๋น ํฌ์คํ ์ ์งง์ ๊ฐ์์ธ ๋งํผ ํ ๊ฐ์๋น ํ ํฌ์คํ ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ง ์๋ค. ๋ค๋ง ๊ฐ์ธ์ ์ผ๋ก ์ค์ตํ ๊ณผ์ ๋ค์ด ๋ง์ '๋ ๋ณด๊ธฐ'๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ์ฒญ๊ฐ ํ ํฌ์คํ ๊ณผ ํจ๊ป ์ค์ต ํด๋ณด๊ธธ ๊ถ์ ํ๋ค.
1๊ฐ์ : ์ปค๋ฐ(commit)ํ๊ณ ํธ์ฌ(push)ํ๊ธฐ
- git clone ~ : ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ด ์ปดํจ๋์ ๋ณต์ฌํ๋ ์ผ
- git add ~ / . : ์ ์ฅ์ ์ํ๋ ํ์ผ๋ค์ ๋ฌถ์ด git์ ์ ์ฅํ๋ ์ผ(commit ์ค๋น)
- git commit -m "~" : ์ ์ฅํ๋ ์์ ์ ๊ธ๋ก ํ๊ธฐํ๋ ๊ฒ.
- git push ~ : github์ ์ ๋ก๋ํ๋ ์ผ
2๊ฐ์ : ๋ง์ง๋ง ์ปค๋ฐ์ผ๋ก ๋๋๋ฆฌ๊ธฐ
- git checkout ~ : ๋ง์ง๋ง ์ปค๋ฐ์ผ๋ก ๋๋์ ๊ฐ ์ ์๋ค.
- sourceTree์ ์ฝ๋๋ญ์น ๋ฒ๋ฆฌ๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ณ๊ฒฝ์ฌํญ์ ๋๋กค๋ฆด ์ ์๋ค.
* ๋ด๊ฐ ๋ง๋ ํ์ผ๋ก ์ค์ตํ๊ธฐ
๋จผ์ class_2.md ํ์ผ์ VSC์ ์๋ก ๋ง๋ค๊ณ VSC์ ์ ์ฅํ ํ์ ๋ค์ ์์ ์ ํ๊ณ ์ ์ฅ์ ํ๋ค. status๋ช ๋ น์ด๋ฅผ ํ์ธํด๋ณด๋ฉด Untracked files๋ผ๊ณ ๋์ด ์๋ค. ๋ป์ '์ถ์ ๋์ง ์๋๋ค.' ์ฆ, ํ์ฌ ๋ด๊ฐ git์ ์ ์ฅ์ด ๋์ด ์์ง ์์ ํ์ผ์ด๊ธฐ์ ์ถ์ ์ด ๋์ง ์๋ ๋ค๋ ๊ฒ์ด๋ค. ๋ค์ ๋งํด์ git์ add(git์ ์ ์ฅ์ด)๊ฐ ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ checkout์ ์คํํด๋ ์๋ฌด๋ฐ ๋ณํ๊ฐ ์์ ๊ฒ์ด๋ค.
rdwoo1024@DESKTOP-B1D88NN MINGW64 /d/myclass/Git/Github/gitflow_test/fixed (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
class_2.md
nothing added to commit but untracked files present (use "git add" to track)
git add๋ฅผ ํ git status๋ ์๋์ ๊ฐ๋ค. ์ด์ ์ฌ๊ธฐ์ ํด๋น ํ์ผ์ ๊ธ์ ์ญ์ ํ๊ฑฐ๋ ์ถ๊ฐํ๋ฉด ๋๋ค.
rdwoo1024@DESKTOP-B1D88NN MINGW64 /d/myclass/Git/Github/gitflow_test/fixed (main)
$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: class_2.md
์ด์ checkout์ ํ๊ฒ ๋๋ฉด ์๋์ ๊ฐ์์ง๋ค.
rdwoo1024@DESKTOP-B1D88NN MINGW64 /d/myclass/Git/Github/gitflow_test/fixed (main)
$ git checkout -- class_2.md
๋ฐ๋ผ์ add๋ฅผ ํตํด์ git์ด ๊ฐ์ง๊ณ ์๋ ๋๋ commit์ ํตํด์ git์ด ๋ฐ๋ผ๋ณด๊ณ ์๋ ์ํ์ ํ์ผ๋ค์ ๊ณผ๊ฑฐ๋ก ๋๋ฆด ์ ์๋ ๊ฒ์ด๋ค. ํ์ฌ ๋์ local์์ ๋ณํ๋๋ ๊ฒ๋ค์ git์ด ๋ชจ๋ ์ฝ์ด ๋ผ ์ ์๋ค. ๊ทธ๋ฌ๋ add์ commit์ ํตํด์ ์ ์ฅ๋์ด ์๋ ์ํ๋ค๋ง ์ ์ ์๋ ๊ฒ์ด๋ค.
2 ๊ฐ์ : branch ๋ง๋ค๊ธฐ
- README.md์ ์๋ก์ด ๋๋ง์ branch ๊ท์น ์์ฑํ๊ธฐ -> lecuture๋ธ๋ฐ์น์ ๊ฐ์๋ฅผ ๋ค์ ๋ ๋๋ง๋ค ์ถ๊ฐํ๊ณ pr์ ๋ ๋ ค ๋ณผ ๊ฒ.
- branch : ๊ธฐ์กด ๋ด์ฉ์ ์ ์งํ ์ฒด ์๋ก์ด ๋ด์ฉ์ ์ถ๊ฐํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
- checkout : ํน์ ๋ธ๋์น(ํน์ ์ปค๋ฐ)์ผ๋ก ๋์๊ฐ๊ณ ์ถ์ ๋ ์ฌ์ฉ.
- ์์คํธ๋ฆฌ์ ์ฒดํฌ์์ : ๋ธ๋์น ์ด๋ฆ์ ๋๋ธ ํด๋ฆญํ๋ฉด ์ฒดํฌ์์ ๊ธฐ๋ฅ
* ๋ด๊ฐ ๋ง๋ ํ์ผ๋ก ์ค์ตํ๊ธฐ
ํ์ฌ main์ sourceTree๋ ๋ค์๊ณผ ๊ฐ๋ค.

์ด์ํ์์ ์ฐ๋ฆฌ๊ฐ class_1.mdํ์ผ์ด ์์ฑ์ด ๋๊ธฐ ์ ๋ถ๋ถ์ lecutre branch๋ฅผ ์์ฑํ ๊ฒ์ด๋ค.(์๋๋ฉด class_1.mdํ์ผ์ด ์๋ ๊ณณ์์ class_1.mdํ์ผ์ ์ถ๊ฐํด์ผ add์ commit์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.) ์ดํ lecutre ๋ธ๋์น์์ ๋ค์ calss_1 ๋ธ๋์น๋ฅผ ์์ฑํ ๊ฒ์ด๋ค.

๊ทธ๋ ๋ค๋ฉด ์ด์ class_1.md์ ๋ด์ฉ์ ํ์ฌ class_1.md๋ด์ฉ์ด ์๋ ๊ณผ๊ฑฐ์์ ๋ถ๋ฌ์์ผํ๋ค. ์ฌ๊ธฐ์ ์ฌ์ฉํ ๋ฌธ๋ฒ์ checkout์ด๋ค. ํด๋น ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
git checkout <commit-hash> -- <file-path>
์ฌ๊ธฐ์ <commit-hash>๋ ๊ฐ์ ธ์ค๊ณ ์ ํ๋ ์ปค๋ฐ์ ํด์์ด๊ณ , <file-path>๋ ๊ฐ์ ธ์ค๋ ค๋ ํ์ผ์ ๊ฒฝ๋ก๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ๋ช ๋ น์ ํ๊ฒ ๋๋ฉด branch class_1์ vsc์์๋ fixedํด๋์ class_1.mdํ์ผ์ด ์์ฑํ๊ฒ ๋ ๊ฒ์ด๋ค.

sourceTree์์ add์์ด commit๋ง ์งํ ํ๋ค. ๊ทธ๋ฌ๋๋ ํ์ฌ class_1์ด ๊ฐ๋ฆฌํค๋ ๋ถ๋ถ์ ์๋์ ๊ฐ๋ค.


์ด์ ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ๊ธฐ์ต์ ํด๋ด์ผ ํ๋ค. ๋ค์ ๋์์์ ํ์ํ ๊ฒ์ lecture branch์์ class_2 branch๊ฐ ์์ฑ์ด๋๊ณ class_2 ํ์ผ์ ์ปค๋ฐํด์ผํ๋ค. ์ด์ ์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ๊ฒ ํ๋ฉด ์๋์ ๊ฐ๋ค. (ํ์ฌ ์ปค๋ฐ์ด ๋์์์ ์ธ์งํ๊ณ ์์ด์ผํ๋ค.)

์ด๋ ๊ฒ class_2 branch๋ฅผ ์์ฑํ๊ณ ์ปค๋ฐ๊น์ง ์๋ฃ๋ฅผ ํ๋ค. main branch์์ ๊ฐ์ง ๋ชจ์์ ํ์ธํด ๋ณด๋ฉด ์๋์ ๊ฐ๋ค.

์ด์ ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๊ณผ๊ฑฐ feat! : Don't remove this files, this is description about lectures scripts ๊น์ง์ ์ปค๋ฐ์ ์ญ์ (์ปค๋ฐ์ ๊ฐ์ ๊ณผ๊ฑฐ๋ก ๋๋๋ฆฌ๋ ๊ฒ)ํด๋ณผ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ฃผ์ํ ๊ฒ์ Add newFile.js์ ์๋ ํ์ผ์ ์ญ์ ๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
rdwoo1024@DESKTOP-B1D88NN MINGW64 /d/myclass/Git/Github/gitflow_test (main)
$ git reset --hard 4c7b53a
HEAD is now at 4c7b53a ...
ํ์ฌ main์ ์๋์ ๊ฐ๋ค

๋ญ๊ฐ ์์ง ์๋ฒฝํด ๋ณด์ด์ง ์๋๋ค. ๋ค์ ๋ณด๋ class_2์ history๊ฐ ๋ง์์ ๋ค์ง ์๋๋ค. class_2๊ฐ main๊ณผ ํจ๊ป HEAD๊ฐ ์ฌ๋ผ๊ฐ๋ฉด์ ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ์ฆ, class_2์ ์์ฑ ์์น๊ฐ ๋ถ๋ถ๋ช ํ๋ค. ๋ฐ๋ผ์ backup์ ํ ์ ์๋ branch๋ฅผ lecutre์ ์์ฑํ๊ณ checkout์ ์ด์ฉํด์ backup branch์ class_1๊ณผ class_2์ ๊ฐ๋ค์ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ค.
ํ์ฌ back branch๋ฅผ ๋ง๋ค๊ณ class_2์ fixed๋ฅผ git checkout <commit-hash> -- <file-path>๋ก ๊ฐ์ง๊ณ ์๋ค.

์ด์ commit์ ํ๊ณ class_2 branch๋ฅผ ์ญ์ ํ๋ฉด ๋๋ค.

์ด์ class_2 branch๋ฅผ ์ํ๋ ๊ณณ์ผ๋ก reset์ ํ๋ฉด ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.

์ด์ ์ฌ๊ธฐ์ ๊ฐ์ push๋ฅผ ํ๊ณ branch๋ฅผ ์ญ์ ํ๋ฉด ์๋ฃ๊ฐ ๋ ๊ฒ์ด๋ค. ๋ฌผ๋ก ์๊ฒฉ ์ ์ฅ์์ ์๋ branch๋ ์ญ์ ํ๋ฉด ๋๋ค. ๋ชจ๋ ๊ณผ์ ์ด ์๋ฃ๋ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ๋ค.

๋ง์ง๋ง์ผ๋ก ๋ชจ๋ branch๋ค์ pushํ๊ณ history ๊ฐ์ง๋ค์ ๋ณด๋ฉด ์ด์ํ ๊ฒ์ด ์๋ค. lecture branch์์ class_3๋ฅผ ์์ฑํ๋ ค๋๋ฐ ํ์ฌ lecture์ ํ์ฌ ์์น๊ฐ ๊ณผ๊ฑฐ์ ์๋ค ์ด๋ฅผ class_2๋ก ๋ง์ถ์ด์ผ ํ๋ค. ์ด๊ฒ์ reset --hard์ผ๋ก ์ด๋ํด๋ณด์.

ํ์ฌ local์ lecture branch HEAD๋ class_2๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ค. ํ์ง๋ง ์์ง ์๊ฒฉ ์ ์ฅ์๋ ๊ณผ๊ฑฐ์ ์๋ค. push๋ฅผ ํด์ฃผ๋ฉด ๋๋ค. ๋จ ์ด๋ฒ์๋ ๋ด๊ฐ push๋ฅผ ๊ฐ์ push๋ฅผ ํ์ง ์์๋ค. ๊ทธ๋ฌ๋๋ pr์ด ๋ ๋ผ์จ๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ lecture์ด ํ์ฌ๋ ์ด๋ ๋๊ตฌ์๋ merge๊ฐ ๋์ง ์์์ง๋ง ๋ง์ฝ merge๊ฐ ๋์ด ์๋ ์ํฉ์ด๋ผ๋ฉด ์ฒ์๋ถํฐ lecture์ ๊ฑด๋๋ ค์๋ ์๋๋ ๊ฒ์ด๋ค.์ด์ class_3 branch๋ฅผ ๋ง๋ค์ด๋ณด์. class 3๋ฅผ ๋ง๋ค์ด๋ ์์ ๊ฐ์ด ๊ฐ์ง๊ฐ ๋ป์ด์ง์ง ์๋๋ค. ๊ทธ ์ด์ ๋ ์์ง merge๋ฅผ ํ์ง ์์์์ด๋ค.(branch๋ฅผ ๋ง๋ค์ด๋ธ class_3 history๊ฐ์ง ์ด๋ฏธ์ง ์ฒจ๋ถ๋ฅผ ๋ชปํ์ง๋ง ์์ ๊ฐ์ ๋ชจ์์์ ์ธ์ง๋งํ๊ณ ๋ค์ ์ด๋ฏธ์ง๋ฅผ ์ฐธ๊ณ ํ์.)
3. ๊ฐ์ : mergeํ๋ ๋ฐฉ๋ฒ
- merge : ์ํ๋ branch์ branch๋ฅผ ํฉ์น๋ ๊ณผ์ ์ด๋ค.
- ์ถฉ๋์ด ์ผ์ด ๋ ์ ์๋ค. ์ถฉ๋์ ๋ค์ ์๊ฐ์ ๋ค์ ์์ ๋ณผ ๊ฒ์ด๋ค.
- mergeํ๋ ๊ณผ์ ์์ ํฉ์ณ์ง branch์ ์์ ์ฌํญ์ ํ์ธํด์ผ merge๊ฐ ์น์ธ์ด ๋๋ค.
- ํค๋ ๋ธ๋์น(ํฉ์ณ์ง์ ๋นํ๋ branch)์ ๋ณ๊ฒฝ์ฌํญ์ด ์์ด์ผ ํ๋ค.
- ๋ณํฉ ๋์ ๋ธ๋์น๊ฐ ํค๋๋ก๋ถํฐ ์์๋ ๊ฒฝ์ฐ ์์ฃผ ์ฝ๊ฒ ๋ณํฉ์ด ๊ฐ๋ฅํ๋ค.(Fast-Forward)
- ํค๋ ๋ธ๋์น์ ์ถ๊ฐ์ ์ธ ์ปค๋ฐ์ด ์๊ธฐ๋ ๊ฒฝ์ฐ ์ง์ง ๋ณํฉ์ด ํ์ํด์ง๋ค. ์ถฉ๋์ด ๋ ์๋ ์๋ ์์ผ๋ ๊ฒ๋จน์ง ๋ง๋ผ
- merge๋ฅผ ํ ๋ lecture branch์ธ ์ํ์์ ๋ค๋ฅธ branch merge๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ค. ์ฆ, ๋์์ ์๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ค.
* ๋ด๊ฐ ๋ง๋ ํ์ผ๋ก ์ค์ตํ๊ธฐ

merge๋ฅผ ํ๊ณ ๋๋ ์ผ๋ ฌ์ด์๋ ๊ฐ์ง๊ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ชจ์ต์ ๊ฐ์ง๋ก ๋ณํ์ด ๋์๋ค. ๋๋จธ์ง branch๋ ๋ณํฉ์ ํด๋ณด๋ คํ์ง๋ง ํ์ฌ lecture๊ฐ ๋ค์ ๋ฐ๋ ค ์์ด์ class_1,2,3๋ณด๋ค ๋ฐ๋ ค์๋ค. ๊ท์น์ lecture์ ๋ณ๊ฒฝ์ด ๋๋ฉด ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ก class_1์ผ๋ก ์ฎ๊ธธ ๊ฒ์ด๋ค.

ํ์ฌ๋ lecture์ด class_1๋ณด๋ค ๋จผ์ ์์์๋ค. ์ด์ ๋๋จธ์ง๋ค์ mergeํด๋ณด๊ฒ ๋ค. mergeํ ๋์ branch ํ๊ฒฝ์ ์๋ ์ํฉ์์ merge๋ฅผ ํด์ผํ๋ค. ์์ ๋ฐฉ๋ฒ๋ค์ ์ค๋ฅ๊ฐ ์์ผ๋ ๋ง์ง๋ง ๋ถ๋ถ์ ์ฃผ์๋ฅผ ์ ์ฝ๊ธฐ๋ฅผ ๋ฐ๋๋ค.
4๊ฐ์ : ํ(pull) ํ๊ธฐ
- git pull~ : ์๋ฒ์ ๋ด์ฉ์ด ๋ด PC๋ณด๋ค ์ต์ ์ผ ๊ฒฝ์ฐ pull์ ์ ์ฉํ๋ค.
- ์ถฉ๋์ด ๋ ์ ์์ง๋ง ๋๋ผ์ง ๋ง์.
- pull = fetch + merge
- ์ถฉ๋์ด ๋ฌ์๋
- ํ์ฌ ๋์ branch๋ฅผ ๋ณ๊ฒฝํจ๊ณผ ๋์์ master๋ ๋ค๋ฅธ branch์์ ๋ณ๊ฒฝ์ฌํญ์ด ์๋ ๋์ค ๋ด๊ฐ branch๋ฅผ mergeํ๋ ค๋ ์๊ฐ ์ถฉ๋์ด ๋ฐ์ํ๋ค. ์ด๋ ์ง์ ์๋ํฐ์์ ๋ณ๊ฒฝ์ฌํญ๋ค์ ํ์ธํ๊ณ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ปค๋ฐ์ ํด์ค๋ค.
- ๋๋ '์ ์ฅ์ ๊ฒ์ผ๋ก ์ถฉ๋ ํด๊ฒฐ' ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด๋ ์ฝ๋๊ฐ ๋ง์ด ์ถฉ๋ ๋ ๊ฒฝ์ฐ ์คํํ๋ฉด ์ข๋ค.
5๊ฐ์ : ๋ฆฌ์ (reset) ํ๊ธฐ - ๋น์ถ
- git reset --hard ~ : ์ปค๋ฐ์ ๋๋๋ฆฐ๋ค.
- reset ์ดํ git push ~ ~ --force๋ ๊ฐ์ ์ต์ ์ ์ ํํด์ผํ๋ค.
- ์ด์ ์ปค๋ฐ์ด ์ฌ๋ผ์ง๋ค.
6๊ฐ์ : ๋ธ๋ ์น๋ฅผ ๋ง๋ค์ด์ ์ปค๋ฐ ๋๋๋ฆฌ๊ธฐ - ๋ค์ ๋ค์ด๋ณด๊ธฐ
- ์ฅ์ :์ฝ๋ค
- ๋จ์ : ํธ๋ฆฌ๊ฐ ๋๋ฌ์์ง๋ค.
- ๊ณผ๊ฑฐ๋ก ๋์๊ฐ ์์น์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด์ ์์ ์ ํ๋ค.
7๊ฐ์ : Revert๋ฅผ ์ฌ์ฉํด ์ปค๋ฐ ๋๋๋ฆฌ๊ธฐ
- Revert์ Reset์ ์ฐจ์ด๋ฅผ ์๊ฐํด๋ณด๊ธฐ
- ์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง '์ด ์ปค๋ฐ ํ์ฌ ๋ธ๋ฐ์น๋ก ์ด๊ธฐํ'๋ ๊ฐ์ reset --hard๋ฅผ ํ๊ฒ์ด๋ค.
- push๋ฅผ ํ๊ธฐ ์ ์ revert๋ฅผ ํด์ผํ๋ค.
- ์ฅ์ : commit์ ๋จ๊ธฐ๊ณ ์ด์ ์ผ๋ก ๋์๊ฐ๋ ๊ฒ์ด๋ค.
- ๋จ์ : ์ถฉ๋์ด ์ผ์ด๋๊ฐ ์ฝ๋ค.
pr์์ merge๋ฅผ ํ์ ๊ฒฝ์ฐ์๋ fetch๋ฅผ ํ๊ณ pull์ ํด์ค๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตณ์ด ํด๋น ๋ธ๋ฐ์น๋ฅผ mregeํ ํ์๋ ์๋ ๊ฒ์ด๋ค.
+ ๋ณด๋์ค ์๋ฃ๋ PR์ ์์ ํด ๋ณด์
PR์ ํ๊ธฐ ์ํด์ PR์ ํ testํ์ผ๊ณผ lecture์์ PR_edit branch๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ปค๋ฐ๊น์ง ์ค๋น๋ฅผ ํ๋ค.

์ด์ ์ฌ๊ธฐ์ ๋ถํฐ commit์ ์ถ๊ฐํด์ ๋ค์ push๋ฅผ ํ ๊ฒ์ด๋ค.

์ด์ ์ฌ๊ธฐ์ ๋๋ฒ์ ์ปค๋ฐ์ผ๋ก ์๊ฒฉ ์ ์ฅ์์์ PR์ ์ปค๋ฐ์ด ๋๊ฐ๊ฐ ์กด์ฌํ๊ณ ๊ทธ๋ ๊ฒ PR์ ์์ฑํ๋ค.

๊ธฐ์กด์ ํ๋๋๋ก PR์ ์์ฑํ๊ณ ์๋๋ merge๊น์งํด์ reset์ ํตํด ์์ ํด๋ณด๋ ค๊ณ ํ์ผ๋ ์ฐ์ ์ ํ์ฌ PR์ด Assigin์ด ๋๊ธฐ ์ ๊น์ง๋ก ํด๋ณด๊ฒ ๋ค.
์ฐ์ ๋ณธ์ธ์ reset์ผ๋ก '์ฒซ ๋ฒ์งธ' commit๊น์ง ๋ด๋ ค๊ฐ์ ํด๋น branch๋ฅผ ๊ฐ์ push --force๋ฅผ ํด๋ณผ ๊ฒ์ด๋ค. ํ์ฌ branch๋ PR_edit branch์ฌ์ผ ํ๋ค.

์ด์ ๊ฐ์ ๋ก pushํด์ ์๊ฒฉ ์ ์ฅ์์ PR์ด ์ด๋ป๊ฒ ๋๋์ง ํ์ธํด ๋ณด์.

์ฑ๊ณต์ ์ผ๋ก PR์ด ์์ ๋์์์ ํ์ธํ ์ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฐ๋๋ก merge๋ฅผ ํ์ํ์์ commit์ ๋ณ๊ฒฝํ ์ ์์์ง ์คํ ํด๋ณด๊ฒ ๋ค.

๊ธฐ์กด์๋ rebase merge๋ฅผ ํ์ง๋ง ์ด๋ฒ์๋ Merge pull request๋ฅผ ํด๋ณด๊ฒ ๋ค. (PR merge์๋ ์ธ๊ฐ์ง mrege๊ฐ ์๋ค๋ ๊ฒ์ ์์๋์.)

merge๋ฅผ ์๋ฃํ PR์ด ๊ณผ์ฐ ํ๋ฆด์ง ๊ถ๊ธํ ์๊ฐ์ด๋ค. ์ฐ์ merge๋ lecture๋ก ๋์ด ์๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ log๋ฅผ ํ์ธ ํ ๋ branch๊ฐ lecture์ธ ์ํ์์ ํ์ธํด์ผํ๋ค. lecture์ log ์ํ๋ฅผ ํ์ธํ์ผ๋ ์ด์ reset์ผ๋ก ํ์ด๋ณด์.(์์ ํ๊ฒ ํ๊ธฐ์ํด์๋ ํ์ฌ ์์น์์ backup branch๋ฅผ ํ๋ ๋จ๊ฒจ๋ ์ํ์์ ์งํ์ ํด์ผํ๋ค.)

์ด ์ํ์์ ๊ฐ์ push๋ฅผ ์งํํด ๋ณด๊ฒ ๋ค. (์๋๋ผ๋ฉด ๊ฐ์ push๋ฅผ ๊ตณ์ด ํ ํ์๊ฐ ์์ด ๋ณด์ด๊ธด ํ๋ ๊ฒฝํ์ ์ํด ์งํํด ๋ณด๊ฒ ๋ค.)


merge๊ฐ ํ๋ ค ์์ง ์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์๊ฒฉ ์ ์ฅ์๊ฐ ํ์ฌ ๋ณ๊ฒฝ๋์ง ์์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์๊ฒฉ ์ ์ฅ์๋ ๋๊ธฐํ๊ฐ ๋์ง ์๋๋ค๋ ๊ฒ์ธ๋ฐ ์ฌ๊ธฐ์ ๊ฐ์ ๋ก '์ฒซ ๋ฒ์งธ' ์ปค๋ฐ๊น์ง ์งํ์ ํ๊ณ ๊ฐ์ push๋ฅผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น? (ํ์ฌ lecture๊ณผ PR_edit branch๋ฅผ ๋ชจ๋ '์ฒซ ๋ฒ์งธ' ์ปค๋ฐ์ผ๋ก ์ด๋ํด์ผํ๋ค๋ ๊ฒ์ ์ธ์งํด์ผ ํ๋ค.)

ํ์ฌ ๋ชจ๋ ๋ธ๋์น๋ฅผ ๋๋๋ ค ๋์๋ค. ์ด์ ๊ฐ์ ๋ก push๋ฅผ ํ๋ฉด ์ด๋ป๊ฒ ๋ ์ง ์ดํด๋ณด์.

PR์ ๋ณ๊ฒฝ๋์ง ์๊ณ ์๋ก์ด PR์ ์์ฑํด๋ฌ๋ผ๊ณ ๋ง ํ๋ค. ์ฆ ๋ด๊ฐ ์๊ฐํ ๋ชจ์์ผ๋ก ๊ทธ๋ ค์ง์ง ์์๋ค. ํ์ง๋ง ์๊ฒฉ ์ ์ฅ์์ lecture์ ์ ์์ ์ผ๋ก ๋ณ๊ฒฝ์ด ๋์๋ค. ์ง๊ธ์ด๋ผ๋ ์๊ฒฉ ์ ์ฅ์์ revert๋ฅผ ์ด์ฉํ๊ฒ ๋๋ฉด ์ด๋ป๊ฒ ๋ ์ง ์ดํด ๋ณด๊ฒ ๋ค.

์ด๋ฌํ ๊ฒฝ๊ณ ์ฐฝ์ด ๋์ค๊ฒ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ค์ ๋์๊ฐ๊ธฐ ์ํด์๋ ๊ณผ๊ฑฐ์ history ๋ชจ์์ผ๋ก ๋ง๋ค์ด์ ๋ค์ ๋ง์ถฐ์ผํ๋ ๊ฒ์ด๋ค. ์ reset์ด ์ํํ์ง ํ์ธ ํ ์ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ์๊ฒฉ ์ ์ฅ์์ revert๋ฅผ ์ฌ์ฉํด์ ๋ด์ฉ์ ๋ณ๊ฒฝํด๋ณด์. ์๊น์ ๊ฐ์ ์ํฉ์ ๋ค์ ๋ง๋ค์ด ๋ณด๊ฒ ๋ค.

์๊น์ ๊ฐ์ ๋๋ฒ ์งธ PR์ด๋ค. ์ด์ ์๊ฒฉ ์ ์ฅ์์์ revert๋ฅผ ํด๋ณด์.

๊ฒฐ๊ณผ๋ merge๊ฐ ๋ค์ ์ด๋ ธ๋ค. ์ฌ์ค PR์ด ์๋ก ์ด๋ ธ๋ค๊ธฐ๋ณด๋จ Revert PR์ด ์์ฑ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด์ ์ฌ๊ธฐ์ ๊ฐ์ ๋ก '์ธ ๋ฒ์งธ' commit์ push๋ฅผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ์ง ํ์ธํด ๋ณด์.

๊ฐ์ ๋ก push๋ฅผ ํ์ ๋ PR์ด ๋ณ๊ฒฝ๋์ง ์๋๋ค ๊ทธ๋์ ์ปค๋ฐ์ ํ๊ณ ํต์์ ์ธ push๋ฅผ ํ๋ค๋ Revert PR์ ์ถ๊ฐ๊ฐ ๋๊ณ ์๋์น ์๊ฒ PR์ ์ถ๊ฐ ํ๊ฒ ๋์๋ค. Revert PR์ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค.


์ด ๋ฐฉ๋ฒ์ด ์ต์ ์ด ๋ ์ง๋ ํ์ธ์ด ํ์ํ๋ค.
rebase๋ฅผ ํด์ผํ๋ค. ๊ทธ๋์ผ rebase merge ์ ๋ต์ด๋ค. Pr์ ๋จ์ํ ๋ฌธ์ํ ํ๊ธฐ ์ํจ์ด๋ค.(rebase ๊ฐ์ ์ฐธ๊ณ )
8๊ฐ์ : revert๋ก ์ฌ๋ฌ ์ปค๋ฐ ๋๋๋ฆฌ๊ธฐ
- revert์ ํน์ง : ์ปค๋ฐ์ ์์ด์ง์ง ์๋๋ค.
- revert๋ก ์ฌ๋ฌ ์ปค๋ฐ์ ๋๋๋ฆฌ๋ ค๋ฉด ์ต์ ๋ถํฐ ์์๋๋ก revert ํ์ ๊ทธ๋ ๊ฒ ํ๋ฉด ์ถฉ๋์ ๋ง์ ์ ์๋ค.
9๊ฐ์ : ๋ธ๋์น์ ์คํ์
- git commit --amend : ์ปค๋ฐ ๋ฎ์ด์ฐ๋ ๋ช ๋ น์ด๋ก sourceTree์์๋ ์ด์ ์ปค๋ฐ ๋ฎ์ด์ฐ๊ธฐ๊ฐ ๊ธฐ๋ฅ์ด ์๋ค.
- ์ด๋ฏธ push๋ฅผ ํ ๊ฒฝ์ฐ push --force๊ฐ ํ์ํ๋ค.
- git stash / git stash save : stash๋ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ฒดํฌ์์ํ๊ธฐ ์ ์ ํ์ฌ ์์ ๋ด์ฉ์ ์ ์ฅํ๋ ์์ ์ ์ฅ์์ด๋ค.
- sourceTree์๋ stash๊ฐ ์์ผ๋ GUI๋ฅผ ํ์ฉํด์ ๋์ฑ ํธ๋ฆฌํ๊ฒ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์๋ค.
10๊ฐ์ : rebase๋ก ๋ณํฉํ๊ธฐ
- merge์ฒ๋ผ ๋ ๋ธ๋ ์น๋ฅผ ํฉ์น ๋ ์ฌ์ฉํ๋ค.
- ํ์ฌ ๋ธ๋์น๊ฐ ๋์ ๋ธ๋์น ์๋ก ์ฌ๋ผ๊ฐ๋ค.
- ์ํ๋๊ฐ ์์ผ๋ ์ ์คํ๊ฒ ์๊ฐํ๊ณ ์ฌ์ฉํ์.
* rebase ์ค์ต

์ํ๋ branch๋ก HEAD๋ฅผ ์ฎ๊ธด ์ํ์์ rebase๊ฐ ๋์ด์ผ ํ๋ ๊ณณ์ ํฐ๋ฏธ๋์์ ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ฉด ๋๋ค.(study/1 -> lecture)
$ git rebase lecture

์์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ถ ๋๋ค.
+๋ณด๋์ค sourceTree์์ history๋ฅผ ๋ณด๋ ๋ฐฉ๋ฒ

branch๊ฐ 3๊ฐ(study/test/2,study/test/1,lecture)๋ก ๊ฐ์ง๊ฐ ๋ป์ด์ผ ํ๋ค๊ณ ์คํดํ ์ ์๋ค. ๋ํ study/test/2์ lecture์ด ํ๋์์ผ๋ก ๋์ด ์์ด์ ์ด ๋์ด ๊ฐ์ tree ์ ์์ ์๋ค๊ณ ์๊ฐํ ์ ์๋ค. ํ์ง๋ง ํ์ฌ lecture์ ์๋ฌด๋ฐ ์ปค๋ฐ์ด ์๊ณ ์งํ๋๋ ์ฌํญ์ด study/test/2, study/test/1๋ณด๋ค ๋ค์ ์๋ ๊ฒ์ด๋ค. ๊ทธ๋์ sourceTree๋ lecture์ ์ ์ธํ ๋๊ฐ์ ์ปค๋ฐ๋ง์ ๊ตฌ๋ฒผํ๊ณ ์๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ study/test/1๊ณผ study/test/2์ branch๋ง ๋ฐ๋ผ๋ณด๊ณ ๊ฐ์์ ๋ธ๋ฐ์น๋ก ๋ป์ด๋๊ฐ ๊ฒ ๋ฟ์ด๋ค. ๋ ๋์๊ฐ์ ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ lecture์ branch๋ฅผ study/test/3๋ฅผ ์ถ๊ฐํ๊ณ ์ปค๋ฐ์ ํ๊ฒ ๋๋ฉด study/test/2๋ธ๋ฐ์น๊ฐ study/test/1์ฒ๋ผ ๊ฐ์ง๋ฅผ ์๋ก ๋ป์ ํํ๋ก ๋ ๊ฒ์ด๋ค. ๋ฌผ๋ก lecutre๊ณผ study/test/3๋ ๊ฐ์ ์์์ผ๋ก ์ ์ง๊ฐ ๋ ๊ฒ์ด๋ค.
'๐๏ธGit > โกver.0' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ธGit์ผ๋ก ํ์ ๋ฅ๋ ฅ ๊ธฐ์ด ๋ค์ง๊ธฐ (0) | 2024.02.08 |
---|