TIL

Git , Github | ๊นƒ๊ณผ ๊นƒํ—ˆ๋ธŒ ๋งˆ์Šคํ„ฐ

grasinnong 2022. 9. 14. 21:59

 

 

1. setup ๊นƒ ์„ค์น˜ํ•˜๊ธฐ 

git : all the commands 

 

 

 

git --version

.gitconfig : ๋ชจ๋“  git์— ๊ด€ํ•œ ์„ค์ • ! 

 

git config --list

 config ํŒŒ์ผ ์—ด๊ธฐ 

git config --global -e

 

 

config ํŒŒ์ผ์„ ์—๋””ํ„ฐ์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ 

git config --global core.editor "code"

code ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด gitconfig ํŒŒ์ผ์ด ์—๋””ํ„ฐ์—์„œ ์—ด๋ฆผ 

code .

 

 

๊ธฐ๋ณธ ์ •๋ณด ์„ค์ •ํ•˜๊ธฐ 

git config --global user.name "sinyoung" //name ์„ค์ •
git config --global user.email "sinyoung@naver.com" //email ์„ค์ •
git config userr.name //sinyoung


/*
	window ๋„์–ด์“ฐ๊ธฐ : text \r\n (carriage-return)
    max : \n
    
    
*/
git config --global core.autocrlf true //git config --global core.autocrlf input

 

 

 

 

2. ๊นƒ ๊ณต๋ถ€ ํฌ์ธํŠธ 

๋ช…๋ น์–ด ์œ„์ฃผ๋กœ ์ดํ•ดํ•˜๊ธฐ ! 

git + ๋ช…๋ น์–ด(commit , add, ,,,,) -option

 

 

 

 

Git - Reference

Reference

git-scm.com

 

 

 

Terms(์šฉ์–ด์ •๋ฆฌ)

- ๋””๋ ‰ํ† ๋ฆฌ : folder

- Terminal or Command Line : Interface for Text Commands(๋ช…๋ น์–ด)

- CLI : Command Line Interface

- cd : Change Directory (ํด๋” ์ด๋™)

- Code Editor : ์ฝ”๋”ฉ ์›Œ๋“œ ํ”„๋กœ์„ธ์„œ

- ๋ ˆํฌ์ง€ํ† ๋ฆฌ(Repository) : ํ”„๋กœ์ ํŠธ ๋˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์ €์žฅ๋˜๋Š” ํด๋”

- Github : ๋‚˜์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์˜จ๋ผ์ธํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…ํ•ด์ฃผ๋Š” ์›น 

 

 

Git Commands(์ž์ฃผ ์“ฐ๋Š” ๊นƒ ๋ช…๋ น์–ด)

- Clone : ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‚˜์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉ

- add : ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ git์— ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ ์‚ฌ์šฉ(delete, add)

- commit : ํŒŒ์ผ๋“ค์„ ๊นƒ์— ์ €์žฅํ•  ๋•Œ 

- push : github ๊ณผ ๊ฐ™์€ ๋ฆฌ๋ชจํŠธ repository์— ๊นƒ ์ปค๋ฐ‹(๋ณ€๊ฒฝ๋œ ํŒŒ์ผ)์„ ์—…๋กœ๋“œํ•  ๋•Œ (๋กœ์ปฌ -> ๋ฆฌ๋ชจํŠธ) 

- pull : ๋ฆฌ๋ชจํŠธ repository์˜ ๋ณ€๊ฒฝ๋œ ๊ฒƒ๋“ค์„ ๋กœ์ปฌ์— ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ (๋ฆฌ๋ชจํŠธ -> ๋กœ์ปฌ )

 

 

 

1. ๊นƒํ—™ ๊ฐ€์ž…ํ•˜๊ธฐ 

 

2. ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ œ์ž‘ํ•˜๊ธฐ (ํ”„๋กœ์ ํŠธ ํด๋” ์ƒ์„ฑ)

 

3. READEME.md ํŒŒ์ผ ์ƒ์„ฑ 

README ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ์˜ ์ธํŠธ๋กœ ํŒŒ์ผ์ด๋‹ค. ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ์ ์„ ์ˆ˜ ์žˆ๋‹ค. 

 

 

์ปค๋ฐ‹ ํ™•์ธํ•˜๊ธฐ

 

 

 

4. ๊นƒ ์„ค์น˜ํ•˜๊ธฐ 

 

5. clone : ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋กœ์ปฌ์— ๋‹ค์šด๋ฐ›๊ธฐ

 

repo ์ฃผ์†Œ ๋ณต์‚ฌ ํ›„

 

clone ๋ฐ›์•„์˜ค๊ธฐ 

/*๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํด๋”๋ฅผ ์—๋””ํ„ฐ๋กœ ์—ด์–ด์ค€ ํ›„ */
$git clone repository address

 

clone ๋ฐ›์•„์˜จ ํด๋”๋กœ ์ด๋™ 

$cd github-repo

 

 

 

ls -la ๋ช…๋ น์–ด : ํด๋”์˜ ๋ชจ๋“  ํŒŒ์ผ(์ˆจ๊ฒจ์ง„ ํŒŒ์ผ๋„ ํฌํ•จ)์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น์–ด 

 

 

6. git status : ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ๋œ ํŒŒ์ผ ์ƒํƒœ ํ™•์ธ 

$git status

 

 

7. git add : ์ˆ˜์ •๋œ ํŒŒ์ผ ์—…๋ฐ์ดํŠธ 

/*git add filename or .(all)*/
git add .

 

 

 

8. git commit

์ฒซ๋ฒˆ์งธ ์ปค๋ฐ‹ -m "added index.html" ์ด commit์˜ ์ œ๋ชฉ๋ถ€๋ถ„์ด ๋˜๊ณ , ๋‘๋ฒˆ์งธ ์ปค๋ฐ‹ -m "somee description"์ด description ๋ถ€๋ถ„์ด ๋œ๋‹ค. 

 

9. git push 

 

$git push origin main
/*git push + ํ˜„์žฌ github storage ์œ„์น˜ + pushํ•  ๋ธŒ๋Ÿฐ์น˜ ์œ„์น˜*/

clone์„ ํ•ด์˜จ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๋Š” ์ž๋™์œผ๋กœ origin ์œผ๋กœ ๋“ฑ๋ก๋œ๋‹ค.

 

 

์—…๋ฐ์ดํŠธ ๋œ ๊นƒํ—™

clone ๋ฐ›์ง€ ์•Š์€ ๋กœ์ปฌ repository ์—์„œ github ๋ ˆํฌ๋กœ push ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค .

 

์—…๋กœ๋“œํ•  ๋ ˆํฌ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

$git remote add origin(๋ญ๋ผ๊ณ  ๋ถ€๋ฅผ์ง€) ๊นƒํ—™๋ ˆํฌ๋งํฌ

 

-u ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ์—…์ŠคํŠธ๋ฆผ ํ™˜๊ฒฝ origin ๋ธŒ๋žœ์น˜์— push ๋ฅผ ํ•  ๋•Œ git push ๋งŒ ์ž…๋ ฅํ•˜์—ฌ push ํ•  ์ˆ˜ ์žˆ๋‹ค. 

git push -u origin master

 

 

 

SSH Keys 

๋‚ด ๋กœ์ปฌ ํŒŒ์ผ๋“ค์„ ๊นƒํ—™(๋ฆฌ๋ชจํŠธ ํ™˜๊ฒฝ)์— ์—…๋กœ๋“œ ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊นƒํ—™์— ๋‚ด๊ฐ€ owner๋ผ๋Š” ๊ฒƒ์„ ์ธ์ฆํ•ด์•ผ ํ•œ๋‹ค. 

๊นƒํ—™(๋ฆฌ๋ชจํŠธ ํ™˜๊ฒฝ)๊ณผ ๋กœ์ปฌ ํ™˜๊ฒฝ์„ ์—ฐ๊ฒฐ์‹œ์ผœ์•ผ ํ•œ๋‹ค. 

 

์ด ๋•Œ SSH Keys๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

SSH Keys : ssh๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋ฆฌ๋ชจํŠธ ์ €์žฅ์†Œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” Secure Shell์ด๋‹ค. 

 

 

 

 

 

 

 

 

 

๊นƒ (git) 

๊นƒ์€ ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ถ€ํ„ฐ ํฐ ํ”„๋กœ์ ํŠธ๊นŒ์ง€ ๋ฒ„์ „๋ณ„๋กœ ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. 

๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฒ„์ „๋ณ„๋กœ ๊ฐ–๊ณ  ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์–ด๋–จ๊นŒ?

์˜ˆ์ „์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜๋„ ์žˆ๊ณ , ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ๋“ค์„ ํ™•์ธํ•˜๊ธฐ๋„ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. 

 

๊นƒ์€ ๊ทธ ์ผ๋“ค์„ ๋„์™€์ฃผ๋Š” ๋ฌด๋ฃŒ ๋„๊ตฌ์ด๋‹ค. 

 

 

What is Version Control?

 

๋งค์ผ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์ €์žฅํ•˜๊ณ  ๊ณ ์น˜๊ณ  ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•  ๊ฒƒ์ด๋‹ค. 

 

๋งŒ์•ฝ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ์—†๋‹ค๋ฉด ๋‚ด๊ฐ€ ์™œ, ์–ธ์ œ, ๋ฌด์—‡์„ ๊ณ ์ณค๋Š”์ง€ ์ผ์ผํžˆ ๊ธฐ๋กํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ์›๋ณธํŒŒ์ผ๋„ ๋”ฐ๋กœ ์ƒ์„ฑํ•˜๊ณ . ๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค ๊ณผ๊ฑฐ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ํž˜๋“ค ๊ฒƒ์ด๋‹ค. 

 

ํ•˜์ง€๋งŒ Version Control ์€ ์™œ, ์–ธ์ œ, ๋ฌด์—‡์„ ๊ณ ์ณค๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณผ๊ฑฐ์˜ ์›ํ•˜๋Š” ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํƒ€์ž„๋จธ์‹ ๊ณผ ๊ฐ™์€ ์—ญํ• ๋„ ํ•œ๋‹ค. .

 

- History Tracking 

- Collaboration

์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๊ณผ ํ˜‘์—…ํ•  ๋•Œ History๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

๊นƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ  ! 

 

1. ์—ฌ๋Ÿฌ ๋ฒ„์ „ ์ปจํŠธ๋กค ์ค‘ ๊นƒ์€ ๊ฐ€์žฅ ๋ชจ๋˜ํ•˜๊ณ  ๋น ๋ฅธ ๋„๊ตฌ์ด๋‹ค. 

2. ๊นƒ์€ ๊ณผ๊ฑฐ์˜ ํ–‰์ (๋ฌด์—‡์„, ์–ธ์ œ, ์™œ ๊ณ ์ณค๋Š”์ง€)์„ ์•Œ๋ ค์ค€๋‹ค. 

3. ๊นƒ์€ ์—ฌ๋ŸฌํŒŒ์ผ์˜ ๋ณ€ํ™”๋ฅผ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

ํ˜‘์—…์„ ํ•  ๋•Œ, ๋ˆ„๊ตฐ๊ฐ€๋Š” a ํŒŒ์ผ์„, ๋ˆ„๊ตฐ๊ฐ€๋Š” bํŒŒ์ผ์„ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ, ๊นƒ์€ ์—ฌ๋ŸฌํŒŒ์ผ์˜ ๋ณ€ํ™”(ํžˆ์Šคํ† ใ„น)๋ฅผ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

4. ๊นƒ์€ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

What is Git?

๊นƒ์„ ์‚ฌ์šฉํ•ด ํ”„๋กœ์ ํŠธ๋“ค์„ ๊ด€๋ฆฌํ•˜๋ฉด?

 

Local Git

๋กœ์ปฌ ๊นƒ์—์„œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์‰ฝ๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์‚ฌ์šฉํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

1. simple use of git 

//initialize project
$git init myproject

//create directory(history snapshot)
cd myproject

git add .
git commit -m "importing all the code"

 

2. collaborative git 

 

 

 

 

 

 

 

 

 

10. Github workflow

write code -> commit changed -> make a pull request

 

 

 

11. Local GIt Workflow

write code -> stage changes(git add) -> commit changes(git commit) -> push chages(git push) -> make a pull request

 

 

 

12. git branching

 

main branch๋Š” default ๋ธŒ๋žœ์น˜๋‹ค.

 

๊ฐ๊ฐ์˜ ๋ธŒ๋žœ์น˜๋Š” ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์™„์ „ํžˆ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•œ๋‹ค. => ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ, ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๋ธŒ๋žœ์น˜๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ž‘์—…ํ•˜๋ฉด, ์›๋ž˜ ๋ธŒ๋žœ์น˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€์•Š๊ณ (๋ฒ„๊ทธ, ๋ฌธ์ œ๋“ฑ...) ๋…๋ฆฝ์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  push ํ•  ์ˆ˜ ์žˆ๋‹ค. + ๋‹ค๋ฅธ์‚ฌ๋žŒ๊ณผ ํ˜‘์—…์„ ํ•  ๋•Œ ์„œ๋กœ ๊ฐ์ž์˜ ๋ธŒ๋žœ์น˜์—์„œ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

 

sandbox area์ฒ˜๋Ÿผ ์—ฐ์Šต์žฅ์ฒ˜๋Ÿผ ! 

 

์›ํ•˜๋Š” ์‹œ์ (๊ธฐ๋Šฅ๊ฐœ๋ฐœ ์™„๋ฃŒ, ๋ฒ„๊ทธ ๊ฐœ์„ ) main branch์— merge(ํ†ตํ•ฉ)์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 

 

 

๋ธŒ๋žœ์น˜ ํ™•์ธํ•˜๊ธฐ 

$git branch

 

ํ˜„์žฌ ๋‚ด๊ฐ€ ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ * ์œผ๋กœ ํ‘œ์‹œ๋œ๋‹ค. 

 

 

 

 

๋ธŒ๋žœ์น˜ ์ƒ์„ฑํ•˜๊ธฐ git checkout

๋ธŒ๋žœ์น˜๋ผ๋ฆฌ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑํ•  ๋•Œ๋Š” git checkout(๋ธŒ๋žœ์น˜ ์ƒ์„ฑ+ ๋ธŒ๋žœ์น˜ ์ด๋™)์„ ์ด์šฉํ•œ๋‹ค. 

git checkout ๋’ค์— -b ์˜ต์…˜์„ ๋ถ™์—ฌ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

git checkout -b feature-11(nameofbranch)

๋ณดํ†ต branch ์ด๋ฆ„์„ ์ง€์„ ๋•Œ feature๋ฅผ ์•ž์— ๋ถ™์ธ๋‹ค. /,-๋ฅผ ๋’ค์— ๋ถ™์—ฌ ์ด์Šˆ๋„˜๋ฒ„๋‚˜, ๋‹จ์–ด๋ฅผ ๋ถ™์—ฌ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

 

๋ธŒ๋žœ์น˜ ์ด๋™ํ•˜๊ธฐ 

git checkout main

 

 

๋ธŒ๋žœ์น˜ ๊ฐ„ merge ์‹œํ‚ค๊ธฐ

feature-readme-instructions ๋ธŒ๋žœ์น˜์—์„œ readme ํŒŒ์ผ์„ ๋ฐ”๊ฟจ์„ ๋•Œ main ๋ธŒ๋žœ์น˜๋Š” ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

๋งŒ์•ฝ ๋กœ์ปฌ main ๋ธŒ๋žœ์น˜๋กœ ๋ฐ”๋€๋‚ด์šฉ์„ push ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด merge๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

๊ทธ ์ „์— diff๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ”๋€ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.  

git diff feature-readmfe-instructions

 

 

๋‚ด์šฉ์„ ํ™•์ธํ–ˆ๋‹ค๋ฉด merge ์‹œ์ผœ์ฃผ๋ฉด ๋œ๋‹ค. 

 

ํ•˜์ง€๋งŒ main ๋ธŒ๋žœ์น˜๋กœ push๋ฅผ ํ•œ ํ›„ feature ๋ธŒ๋žœ์น˜์—์„œ ๋ฆฌ๋ชจํŠธ upstream์— push๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค.

--set-upstream์€ -u ์˜ต์…˜์œผ๋กœ ๋Œ€์‹  ์“ธ ์ˆ˜ ์žˆ๋‹ค. 

$git -u origin feature-readmee-instructions

 

 

๋ธŒ๋žœ์น˜ ์‚ญ์ œ 

๋ธŒ๋žœ์น˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  merge๋ฅผ ์‹œํ‚ค๋ฉด ์—ญํ• ์„ ๋‹คํ•œ๋‹ค. ๋ธŒ๋žœ์น˜ ์ •๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

git branch -d branchname

 

 

์—ฌ๋Ÿฌ์‚ฌ๋žŒ์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋ฉด merge ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค. 

 

๋ฌธ์ œ์ƒํ™ฉ์„ ๋งŒ๋“ค์–ด๋ณด์ž. ์„œ๋กœ ๋™๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋™์‹œ์— ๊ฐ™์€ ํŒŒ์ผ์„ ์ˆ˜์ •์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. master ๋ธŒ๋žœ์น˜์—์„œ index.html ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  featureํŒŒ์ผ์—์„œ index.html ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด๋ณด์ž. 

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

ํ•ด๊ฒฐ๋ฒ• : ๋‘˜๋‹ค commit ๊นŒ์ง€ ์ง„ํ–‰์„ ํ•œ๋‹ค. => diff๋กœ ๋น„๊ตํ•˜๊ณ  merge ์‹œํ‚จ๋‹ค. 

 

main ๋ธŒ๋žœ์น˜์— merge๋ฅผ ์‹œํ‚ค๋ฉด conflict ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ณ  ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. (์–ด๋–ค ์ฝ”๋“œ๋ฅผ ๋‚จ๊ธธ ์ง€ ์„ ํƒ)

 

 

ํŒŒ์ผ ํ•˜๋‚˜๋งŒ add ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ -am ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์„œ add์™€ commit์„ ๋™์‹œ์— ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

13. git pull(upstream -> local

upstream branch์—์„œ local๋กœ pull์„ ๋ฐ›์•„ ๋™๊ธฐํ™”๋ฅผ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

14. undoing in git 

1. git reset 

 

git add ๋˜๋Œ๋ฆฌ๊ธฐ

git reset filename

git commit ๋˜๋Œ๋ฆฌ๊ธฐ 

* git์—์„œ HEAD๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์˜ commit์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. 

HEAD~1 ์„ ํ•˜๋ฉด ๊ฐ€์žฅ ์ตœ๊ทผ์—์„œ -1 commit ๊นŒ์ง€ reset์ด ๋œ๋‹ค.

git rest HEAD~1

 

 

git log๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  commit์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

commit ์ง€์ ์„ ์„ ํƒํ•  ๋•Œ๋Š” commit ์˜†์— hash๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค. 

 

 

reset --hard ์˜ต์…˜ใ…‡๋ฅด ์‚ฌ์šฉํ•˜๋ฉด unstaged๋Š” ์•ˆ๋˜๊ณ  remove๋งŒ ๋œ๋‹ค. 

 

 

 

 

Fork : ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๋ ˆํฌ๋ฅผ ๋‚˜์˜ ๋ ˆํฌ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.