๐Ÿ™ git

๊น€๋•๊ทผยท2023๋…„ 1์›” 5์ผ
2

git

๋ชฉ๋ก ๋ณด๊ธฐ
1/5
post-thumbnail

๋ช…๋ น์–ด

.. ํด๋” ๋’ค๋กœ๊ฐ€๊ธฐ
cd ๊ฒฝ๋กœ / ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜๊ธฐ
mkdir ํด๋”์ด๋ฆ„ / ํด๋”(๋””๋ ‰ํ† ๋ฆฌ) ์ƒ์„ฑ
rmdir ํด๋”์ด๋ฆ„ / ํด๋”(๋””๋ ‰ํ† ๋ฆฌ) ์‚ญ์ œ

GitHub ์—…๋กœ๋“œ(Push)

git ๋ฒ„์ „ ํ™•์ธํ•˜๊ณ , GitHub์— ์˜ฌ๋ฆด ์ž๋ฃŒ ๊ฒฝ๋กœ์— ๊นƒ ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์ž‘
์ปดํ“จํ„ฐ ์—ฐ๊ฒฐํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ •๋ณด์™€ ๋ฉ”์ผ ๋“ฑ๋ก ํ›„ ๋“ฑ๋กํ•œ ์ •๋ณด ํ™•์ธ

  1. git --version // ๋ฒ„์ „ ํ™•์ธ
  2. cd๋กœ ๊ฒฝ๋กœ ์ด๋™
  3. git config --global core.autocrlf input // (window๋Š” input ๋Œ€์‹  true ์ž…๋ ฅ)
  4. git config --global user.name โ€œdeokkeunโ€ // โ€œgithub ๊ฐ€์ž…ํ•œ ์ด๋ฆ„โ€
  5. git config --global user.email โ€œdeokk91@gmail.comโ€ // โ€œgithub ๊ฐ€์ž…ํ•œ ๋ฉ”์ผโ€
  6. git init // master/main ๊ฒฝ๋กœ ์ƒ์„ฑ(๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์ž‘(์ค„๊ธฐ))
  7. git config --global --list // ๊นƒ์— ๋“ฑ๋กํ•œ ์ •๋ณด ํ™•์ธ(๋‚˜๊ฐ€๋Š”๋ฒ• Q)

git status
//๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์ž‘๋œ ๊ฒฝ๋กœ(git init)์— ๊นƒ ํ˜„์žฌ ์ƒํƒœ(ํด๋”๋‚˜ ํŒŒ์ผ) ํ™•์ธ [๋นจ๊ฐ„์ƒ‰ == ๋ฒ„์ „๊ด€๋ฆฌ ๋“ฑ๋ก ์ „]
git add .
// ๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋“ฑ๋ก (Staging Area)
git status
//๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์ž‘๋œ ๊ฒฝ๋กœ(git init)์— ๊นƒ ํ˜„์žฌ ์ƒํƒœ(ํด๋”๋‚˜ ํŒŒ์ผ) ํ™•์ธ [์ดˆ๋ก์ƒ‰ == ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์ž‘]

git commit -m โ€œ์ปค๋ฐ‹ํ•  ๋‚ด์šฉโ€ // (Stage Area โ†’ Local Repository) == Commit
git log // commit๋‚ด์—ญ ํ™•์ธ (๋‚˜๊ฐ€๊ธฐQ)

GitHub์—์„œ Repositories ์ƒ์„ฑํ›„ ์ฃผ์†Œ๋ณต์‚ฌ

git remote add origin ์ฃผ์†Œ๋ณต์‚ฌ // origin์ด๋ž€ ๋ณ„์นญ์œผ๋กœ ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์—ฐ๊ฒฐ
git push origin main // (Local Repository(Commitํ•œ ๋‚ด์šฉ) โ†’ Remote Repository(GitHub)) == Push (main ๋ถ€๋ถ„ ์œˆ๋„์šฐ๋Š” master ์ผ์ˆ˜๋„ ์žˆ์Œ)

๋‹ค๋ฅธ ์ €์žฅ์†Œ๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐ์„ ๋Š์–ด์ค€๋‹ค.

git remote remove origin


์ˆ˜์ •์‚ฌํ•ญ ๋ฒ„์ „ ์ƒ์„ฑ

git status // modified ๋นจ๊ฐ„์ƒ‰ ์ˆ˜์ •ํ‘œ์‹œ ๋œธ
git add . // ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋ณ€๊ฒฝ(์ถ”์ )
git status // ์ดˆ๋ก์ƒ‰ ์œผ๋กœ ๋ณ€๊ฒฝ
git commit -m "์ฝ”๋“œ ์ถ”๊ฐ€" // commit
git log // ๋ฒ„์ „ ํ™•์ธ(HEAD -> master) ํ—ค๋“œ๋ผ๋Š” ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งˆ์Šคํ„ฐ๋ผ๋Š” ๋ธŒ๋žœ์น˜์—์„œ ์ด๋ฒ„์ „์˜ ์ตœ์‹ ์œผ๋กœ ์œ ์ง€์ค‘์ด๋‹ค.
git push origin main // ์—…๋กœ๋“œ(main ๋ถ€๋ถ„ ์œˆ๋„์šฐ๋Š” master ์ผ์ˆ˜๋„ ์žˆ์Œ)


๊ฐ€์ง€(branch) -> ์ค„๊ธฐ(master/main) - > ๊ฐ€์ง€(branch)์— ๋ณ‘ํ•ฉ(Merge)

git branch // ๋ชฉ๋ก ํ™•์ธ (๋ชฉ๋ก ๋น ์ ธ๋‚˜๊ฐ€๊ธฐ Q)
git branch -a // remotes/origin/master ์›๊ฒฉ์ €์žฅ์†Œ์— ์žˆ๋Š” ๋‚ด์šฉ(branch ๋ชฉ๋ก)
git branch signin // ๋กœ๊ทธ์ธ ๋ธŒ๋žœ์น˜(signin) ์ƒ์„ฑ
git branch // ๋ชฉ๋ก ํ™•์ธ
git checkout signin // signin ๋ธŒ๋žœ์น˜๋กœ ์ ‘์†

local์— ๊ฐ€์ ธ์˜จ ๋ธŒ๋žœ์น˜ ์ง€์šฐ๋Š” ๋ฐฉ๋ฒ•(ex) ํ˜„์žฌ๋ธŒ๋žœ์น˜์—์„œ ํ˜„์žฌ๋ธŒ๋žœ์น˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์šธ์ˆ˜ ์—†์Œ)

git checkout master // master ๋ธŒ๋žœ์น˜๋กœ ๊ฒฝ๋กœ ์ด๋™
git branch -D ๋ธŒ๋žœ์น˜์ด๋ฆ„ // ๋ธŒ๋žœ์น˜ ์‚ญ์ œ
git branch // ๋ชฉ๋ก ํ™•์ธ
git branch ๋ธŒ๋žœ์น˜์ด๋ฆ„ // ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•
git branch // ๋ชฉ๋ก ํ™•์ธ
git branch -D ๋ธŒ๋žœ์น˜์ด๋ฆ„ // ๋ธŒ๋žœ์น˜ ์‚ญ์ œ

์ƒ์„ฑ๊ณผ ๋™์‹œ์— ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ ๋ฐฉ๋ฒ•

git checkout -b ๋ธŒ๋žœ์น˜์ด๋ฆ„ // ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™

๋ธŒ๋žœ์น˜์—์„œ ์›๊ฒฉ์ €์žฅ์†Œ๋กœ ๋ณด๋‚ด๊ธฐ

git push origin ๋ธŒ๋žœ์น˜์ด๋ฆ„ // ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ github์— push (github์‚ฌ์ดํŠธ ์ €์žฅ์†Œ์— master ์—์„œ ๋ธŒ๋žœ์น˜ ํ™•์ธ(๋กœ๊ทธ์ธ์ธ์ฆ,์ธ์ฆ์ฒ˜๋ฆฌ))

git status
git add .
git status

git commit -m "๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ ์‹œ์ž‘ํ•˜๊ธฐ"

git checkout master

git checkout signin

git push origin signin // ์›๊ฒฉ ์ €์žฅ์†Œ์— signin ๋ธŒ๋žœ์น˜๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ๋ฒ„์ „ ๋‚ด์—ญ ์ „์†ก(github)

git branch -r // origin/HEAD(์›๊ฒฉ์ €์žฅ์†Œ ํ˜„์žฌ๋ธŒ๋žœ์น˜) -> origin/master (๋งˆ์Šคํ„ฐ๊ธฐ๋ณธ๋ธŒ๋žœ์น˜)
git checkout -t origin/๋ธŒ๋žœ์น˜์ด๋ฆ„ //์ €์žฅ์†Œ์— ์žˆ๋Š” ๋ธŒ๋žœ์น˜์ค‘ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋งŒ ์ž‘์—… ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ


Merge(๋ณ‘ํ•ฉ)

github ์ €์žฅ์†Œ์—์„œ Pull requests ์„ ํƒ
New pull request ์„ ํƒ

Compare changesํŒจ์ด์ง€
base:master -> compare: master
(ํ•ฉ์ณ์งˆ ๋ธŒ๋žœ์น˜) (์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ๋‹ด๊ณ ์žˆ๋Š” ๋ธŒ๋žœ์น˜ sign in ์œผ๋กœ ๋ณ€๊ฒฝ)
Able to merge. ํ…์ŠคํŠธ ์•Œ๋žŒ ํ™•์ธ
Create pull request ๋ฒ„ํŠผ ํด๋ฆญ

Write ๋‚ด์šฉ ์•ˆ์จ๋„ ๊ฐ€๋Šฅ -> Create pull request ์„ ํƒ

Open ํ™•์ธ ํ›„
์•„๋ž˜๋กœ ๋‚ด๋ ค๋ณด๋ฉด Merge pull request ๋ฒ„ํŠผ ํด๋ฆญ
Confirm merge ํด๋ฆญ ํ•˜๋ฉด ์™„๋ฃŒ

Merged๊ฐ€ ๋œธ


ํ”„๋กœ์ ํŠธ ๋ณต์ œ(Clone)

github์˜ ์ €์žฅ์†Œ์— ์ฃผ์†Œ ๋ณต์‚ฌ

<๊ฒฝ๋กœ ์ด๋™ ๋ฐฉ๋ฒ•>
ls / dir (๋งฅ ls / ์œˆ๋„์šฐ dir ํ˜„์žฌ์œ„์น˜ ํŒŒ์ผ ์ƒํƒœ ํ™•์ธ)
ch .\Desktop\ //๋ฐ”ํƒ•ํ™”๋ฉด ๊ฒฝ๋กœ ์ด๋™ ๋ฐฉ์‹
cd.. //ํด๋” ๋น ์ ธ๋‚˜๊ฐ€๊ธฐ
cd ๊ฒฝ๋กœ //์ด๋™

git clone ์ฃผ์†Œ ๋ณต์‚ฌ

code . // ํ•ด๋‹นํ•˜๋Š” ํด๋”์˜ ๋‚ด์šฉ์„ ์—ด์–ด๋ณธ๋‹ค(์ƒˆ๋กœ์šด ์ฐฝ)
code . -r // ํ˜„์žฌ์ฐฝ์—์„œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด์ค€๋‹ค
cd git


์ถฉ๋Œ(Conflict), ๋กœ์ปฌ ๋ณ‘ํ•ฉ(Merge)

git status //ํ˜„์žฌ์ƒํƒœ(์ˆ˜์ •๋œ ๋‚ด์šฉ์ด ์žˆ๋Š”์ง€ ํ™•์ธ(๋นจ๊ฐ„์ƒ‰ ํŒŒ์ผ))
git add . //๋ฒ„์ „๊ด€๋ฆฌ๋ฅผ ๋“ฑ๋ก ํ•˜๊ธฐ
git status //ํ˜„์žฌ์ƒํƒœ(๋ฒ„์ „์ด ๋“ฑ๋ก๋˜๋ฉด (์ดˆ๋ก์ƒ‰ ํŒŒ์ผ))
git commit -m "์ปค๋ฐ‹ ๋‚ด์šฉ" // ์ปค๋ฐ‹์œผ๋กœ Local repository ์ƒ์„ฑ
git push origin master // ์›๊ฒฉ์ €์žฅ์†Œ(github)๋กœ push

์ถฉ๋Œ(Conflict)์ด ๋ฐœ์ƒํ•˜๋ฉด ![rejected]
error: failed to push some refs to "๊นƒํ—ˆ๋ธŒ ๊ฒฝ๋กœ" ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ๋‹ค
ํ˜„์žฌ ๋ฒ„์ „์˜ ๋‚ด์šฉ์ด ์›๊ฒฉ์ €์žฅ์†Œ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋œฌ๋‹ค
(๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  pushํ•œ ๋ถ€๋ถ„์„ ๋˜ ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๊ทธ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  pushํ•  ๊ฒฝ์šฐ!)

git pull origin master //์›๊ฒฉ์ €์žฅ์†Œ์— ์žˆ๋Š” master๋ธŒ๋žœ์น˜ ๋‚ด์šฉ์„ Local ์ €์žฅ์†Œ๋กœ ๋‹น๊ฒจ์˜จ๋‹ค

<<<<<<<< HEAD(ํ˜„์žฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ)
๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑํ•œ ๋‚ด์šฉ
\==============
์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๊ฐ€์ ธ์˜จ ๋‚ด์šฉ
\>>>>>>>> ์ปค๋ฐ‹ ๋‚ด์—ญ ์•„์ด๋”” (์ˆ˜์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ)

๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ์ ์šฉ ํ•˜๋ ค๋ฉด ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ์ œ์™ธํ•œ ๋ถ€๋ถ„์„ ์ˆ˜๋™์œผ๋กœ ์ง€์›Œ์ค€๋‹ค.
์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๊ฐ€์ ธ์˜จ ๋‚ด์šฉ์„ ์ ์šฉ ํ•˜๋ ค๋ฉด ์ž‘์„ฑํ•œ ๋‚ด์šฉ์„ ์ œ์™ธํ•œ ๋ถ€๋ถ„์„ ์ˆ˜๋™์œผ๋กœ ์ง€์›Œ์ค€๋‹ค.

์ˆ˜์ • ํ–ˆ์œผ๋ฉด ๊นƒ์— pushํ•ด์ค€๋‹ค
git status
git add .
git status
git commit -m "์ปค๋ฐ‹๋‚ด์šฉ"
git push origin master


git reset --hard HEAD~1
//๋กœ์ปฌํ™˜๊ฒฝ์—์„œ ๋งŒ๋“  ํ˜„์žฌ ๋ฒ„์ „์„ reset์ด๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•œ ๋‹จ๊ณ„ ๋’ค๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ

profile
์•ˆ๋…•ํ•˜์„ธ์š”!

0๊ฐœ์˜ ๋Œ“๊ธ€