๐Ÿ”Žetc.

[Git] Git ํ˜•์ƒ๊ด€๋ฆฌ

taesooya 2022. 8. 3. 15:18

22.08.03

 

 

Git


  • ํ˜•์ƒ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ
  • ๋ฒ„์ „ ์ปจํŠธ๋กค ์‹œ์Šคํ…œ VCS
  • ๋ถ„์‚ฐํ˜• ํ˜•์ƒ๊ด€๋ฆฌ
  • ๋ฆฌ๋ˆ…์Šค ์ฐฝ์‹œ์ž์ธ ๋ฆฌ๋ˆ„์Šค ํ† ๋ฐœ์ฆˆ๊ฐ€ ๊ฐœ๋ฐœ

 

GitHub


  • ์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฌด๋ฃŒ ์›น ์„œ๋น„์Šค
  • 2018๋…„ ๋งˆ์˜๊ฐ€ ์ธ์ˆ˜
  • ์ „์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ํฐ ์˜คํ”ˆ์†Œ์Šค ์ €์žฅ์†Œ
  • ์œ ์‚ฌ : Gitlab / Bitbucket
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํฌํŠธํด๋ฆฌ์˜ค

 

์šฉ์–ด


๋ฆฌํฌ์ง€ํ† ๋ฆฌ Repository

  • ์ €์žฅ์†Œ, ์ €์žฅ๊ณต๊ฐ„, HDD
  • ์ €์žฅ ์œ„์น˜์— ๋”ฐ๋ผ ๊ตฌ๋ถ„
    • ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ
    • ๋ฆฌ๋ชจํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ
  • project (Add / Commit)→ Local Repository (Push)→ Remote Repository
  • Remote Repository (Pull)→ Local Repository

 

 

ํ•„์ˆ˜ Git ๋ช…๋ น์–ด

  • working directory (git add) → staging Area (git commit) → Repos (git push) → Remote Repos
  • working directory ← (git reset) staging Area ← Repos ← (git pull) Remote Repos

 

GitFlow ๋ฐฉ๋ฒ•๋ก 


 

  • Master Branch (ํŒ€์žฅ๋งŒ ๊ด€๋ฆฌ)
    • ํ•ญ์ƒ ์ถœ์‹œ ๊ฐ€๋Šฅํ•œ ์™„์„ฑ๋ณธ

 

  • Develop Branch
    • ํŒ€์› ๊ฐ„์˜ ์ž‘์—…๋ฌผ์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ธŒ๋žœ์น˜
    • ์˜ค๋ฅ˜๊ฐ€ ์—†์–ด์•ผ ํ•˜๋Š” ๋ธŒ๋žœ์น˜ (์˜ค๋ฅ˜ ์žˆ์„์‹œ Push X), ํด๋ฆฐ ์ฝ”๋“œ๋งŒ
    • ์ฃผ๊ธฐ์ ์œผ๋กœ Master ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ (ํŒ€์žฅ์ด Merge)

 

  • ๊ฐœ์ธ ๊ฐœ๋ฐœ ๋ธŒ๋žœ์น˜
    • ํŒ€์› ๊ฐœ์ธ์ด ์ž‘์—…ํ•˜๋Š” ๋ธŒ๋žœ์น˜
    • ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š” ์ฝ”๋“œ๋ฅผ Develop ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ
    • ๋งค์ผ pull / push ๊ฐ€ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•จ
    • ์ ์ ˆํžˆ ์ชผ๊ฐœ์–ด Commit
    • Asset Import ์ „์— Commit / ์‹คํŒจ์‹œ Rollback

 

Git ์‹ค์Šต


  • whoami ⇒ PC ์ด๋ฆ„ ์ถœ๋ ฅ
  • pwd ⇒ print working directory
  • ls ⇒ List
  • ls -al ⇒ List ์ƒ์„ธ viewl
  • clear
  • mkdir ⇒ make directory
  • . : ํ˜„์žฌ dir
  • .. : ์ด์ „ dir
  • history : ์‚ฌ์šฉํ•œ ๋ช…๋ น์–ด ์ถœ๋ ฅ
    • !๋ฒˆํ˜ธ ⇒ ํ•ด๋‹น ๋ช…๋ น์–ด
  • rm -rf “๋””๋ ‰ํ† ๋ฆฌ์ด๋ฆ„”
    • remove -recursive force
  • git —version
  • git config --global user.email "ihj04982@gmail.com"
  • git config --global user.name "Heejeong Lim"
  • git config —unset user.~~
  • git init : Initialize empty git repository
    • .git ํด๋” : local Repository
    • touch a.txt
  • git add a.txt
  • git commit -m
    • -message
  • git commit ⇒ editor๋กœ ๋“ค์–ด๊ฐ ⇒ ESC : q! ์ž…๋ ฅ์‹œ ๋น ์ ธ๋‚˜์˜ด
  • git log ⇒ commit ๋‚ด์—ญ ์ถœ๋ ฅ
  • git reset —hard 9739a7f9cbc11222af4bfca765a916912a1b6a8b
  • git branch ๋ธŒ๋žœ์น˜๋ช… ⇒ ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ
  • git branch ⇒ ๋ธŒ๋žœ์น˜ ๋ชฉ๋ก
  • git checkout ๋ธŒ๋žœ์น˜๋ช… ⇒ switch to ๋ธŒ๋žœ์น˜๋ช… branch
  • echo ⇒ print / Debug.Log
  • echo “Unity” >> b.txt ⇒ b.txt์— “~” ๋ฐ€์–ด ๋„ฃ๊ธฐ
  • git merge develop ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— develop์„ ๋ณ‘ํ•ฉ์‹œํ‚ด
  • cat b.txt

  • <<<< Current Change
  • >>>>Incoming Change
  • ์ถฉ๋Œ์‹œ ์ถฉ๋Œ ์ˆ˜์ • ํ›„ add, commint

 ํŒ€์žฅ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด ์ดˆ๊ธฐ ์„ค์ •ํ•˜๊ธฐ
  1. git init : ๊นƒ ์ดˆ๊ธฐํ™”
  2. git remote add origin https:// ⇒ ์—ฐ๊ฒฐ https://.git , ์ฃผ์†Œ origin์œผ๋กœ ๋ณ„์นญ์œผ๋กœ ์„ค์ •
  3. git remote -v
  4. git pull origin main(๋ธŒ๋žœ์น˜) ⇒ main ๋ธŒ๋žœ์น˜์˜ .gitignore pullํ•˜๊ธฐ
  5. **Git LFS**
    1. git lfs install (๋‹ค์šด๋กœ๋“œ)
    2. git lfs install (์ž…๋ ฅ)
  6. **Git attributes**
    1. vi .gitattributes
    2. esc + I + ctrl v (https://gist.githubusercontent.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f/raw/dc3e8cab80fc62d1c60db70c761b1ffa636aa796/.gitattributes)
    3. esc + :wq! (์ €์žฅํ•˜๊ณ  w ๋‚˜๊ฐ€๊ธฐ q !)
  7. git add . : ํ˜„์žฌ ํด๋” ๋‚ด ๋ชจ๋‘ add
  8. git push origin master 
ํŒ€์›
  1. git clone —branch develop https://github.com/i~~~.git
  2. git add
  3. git commit
  4. git push origin master