lil.dev
Published on

๐ŸŽ‰ Git(1)-๋“œ๋ฆผ์ฝ”๋”ฉ ์œ ํˆฌ๋ธŒ ๊ฐ•์˜ ์ •๋ฆฌ

๊ธ€์“ด์ด

    ๐Ÿ“Œ ๋ชฉ์ฐจ

    Welcome

    โœจ DreamCoding์˜ git ์œ ํˆฌ๋ธŒ ๊ฐ•์˜ ๋งํฌ

    ๐Ÿ’๐Ÿป

    1. git ์†Œ๊ฐœ
    2. git ์„ค์ •
    3. git ๋ช…๋ น์–ด ๋‹จ์ถ•ํ‚ค
    4. git ์ดˆ๊ธฐํ™”/์‚ญ์ œ

    1. git ์†Œ๊ฐœ

    ๐Ÿ’ก ๊นƒ: ๋ฒ„์ „์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ

    ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ ์›ํ•˜๋Š” ์ˆœ๊ฐ„์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋„๊ตฌ

    git ์„ค์น˜

    ๊นƒ์€ ๋ช…๋ น์–ด๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•œ ๋ช…๋ น์–ด ํ”„๋กœ๊ทธ๋žจ -> ํ„ฐ๋ฏธ๋„์—์„œ ์ปค๋งจ๋“œ๋กœ ๋ฐฐ์›Œ์•ผ ๊นƒ์„ ์ •ํ™•ํžˆ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž ์ˆ˜ ์žˆ๋‹ค. ๊นƒ์„ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ๋Š” ํ„ฐ๋ฏธ๋„์„ ์ด์šฉํ•ด์„œ ๋ช…๋ น์–ด๋กœ ํ•˜๋‚˜์”ฉ ๊ณต๋ถ€ํ•ด๋‚˜๊ฐ€๋Š” ๊ฑธ ์ถ”์ฒœํ•œ๋‹ค.

    ๋ฌผ๋ก  ui๋„ ๋งŽ์ด ์žˆ์–ด์„œ git ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ui ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊นƒ์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ์ž˜ ์ด์šฉํ•œ๋‹ค๋ฉด ui ์‚ฌ์šฉ๋„ ์ถ”์ฒœํ•œ๋‹ค.

    • ๊นƒํ—ˆ๋ธŒ ๋ฐ์Šคํฌํƒ‘ - ๊ธฐ๋Šฅ์ด ์ œํ•œ๋˜์–ด ๋น„์ถ”
    • ์•„ํ‹€๋ผ์‹œ์•ˆ Sourcetree(์†Œ์ŠคํŠธ๋ฆฌ) - ui๊ฐ€ ์กฐ๊ธˆ ํด๋ž˜์‹ํ•˜์ง€๋งŒ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ํฌํ•จํ•ด์„œ ์ถ”์ฒœ
    • GitKraken(๊นƒํฌ๋ผ์ผ„) - ํ™”๋ คํ•œ ui ์ข‹์•„ํ•˜๋ฉด ์ถ”์ฒœ
    ๊นƒ ์„ค์น˜ ์ „ ํ„ฐ๋ฏธ๋„์ด ํ•„์š” - ๋งฅ๋ถ์ด๋ผ๋ฉด iTerm2 ํ”„๋กœ๊ทธ๋žจ ์ด์šฉํ•ด๋ณด์ž

    ๋งฅ์ด๋‚˜ ์œˆ๋„์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” ํ„ฐ๋ฏธ๋„์„ ์จ๋„๋˜์ง€๋งŒ ์กฐ๊ธˆ ๋” ํŽธ๋ฆฌํ•œ ํˆด์„ ์ด์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋งฅ์—์„œ๋Š” iTerm2, ์œˆ๋„์šฐ๋ผ๋ฉด cmder์„ ์ถ”์ฒœ(์œˆ๋„์šฐ์—์„œ cmder๋ฅผ ์„ค์น˜ํ•˜๋ฉด git์ด ํฌํ•จ๋˜์–ด ์„ค์น˜๋จ)

    ๊นƒ ์„ค์น˜ ํ›„ ์„ค์น˜ ์—ฌ๋ถ€ ํ™•์ธ

    ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜ ๋ช…๋ น์–ด ์ž…๋ ฅํ•˜๋ฉด ์„ค์น˜๋œ ๊นƒ์˜ ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    git --version
    
    ๋งŒ์•ฝ ๊นƒ์ด ์„ค์น˜๊ฐ€ ์•ˆ๋˜์–ด ์žˆ๋‹ค๋ฉด

    ๊นƒ ๊ณต์‹ ์‚ฌ์ดํŠธ์˜ ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€์—์„œ ์ž์‹ ์˜ ์šด์˜์ฒด์ œ์— ๋งž๊ฒŒ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    Sourcetree๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด

    Sourcetree(์†Œ์ŠคํŠธ๋ฆฌ) ๊ณต์‹ ์‚ฌ์ดํŠธ์— ๊ฐ€์„œ ์ž์‹ ์˜ ์šด์˜์ฒด์ œ์— ๋งž๊ฒŒ ๋‹ค์šด๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค.


    2. git ์„ค์น˜ ํ›„ ์„ค์ •

    ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋ชจ๋“  ์„ค์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ 

    git config --list
    

    ๋‹ค์‹œ q๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ„ฐ๋ฏธ๋„๋กœ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ํŒŒ์ผ๋กœ ์—ด์–ด ๋ณด๊ณ  ์‹ถ์œผ๋ฉด ๊ธ€๋กœ๋ฒŒ๋กœ ์„ค์ •๋œ edit(ํŽธ์ง‘)๋ชจ๋“œ๋ฅผ ์—ด๊ฒŒ๋˜๋ฉด

    git config --global -e
    

    ํ„ฐ๋ฏธ๋„์—์„œ ๋ชจ๋“  ์„ค์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    ํ„ฐ๋ฏธ๋„์ด ์•„๋‹ˆ๋ผ ํ…์ŠคํŠธ ์—๋””ํ„ฐ์—์„œ ์—ด์–ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๊ฐ์ž ์›ํ•˜๋Š” ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ฐ•์˜์—์„œ๋Š” visual studio code๋ฅผ ์—ฐ๊ฒฐํ•ด๋ณด๋„๋ก ํ•œ๋‹ค.

    visual studio code ์—ฐ๊ฒฐ

    ๊ฐ ํ…์ŠคํŠธ ์—๋””ํ„ฐ๋งˆ๋‹ค ์—ฐ๊ฒฐ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅธ๋ฐ, ๋ณดํ†ต ์ปค๋งจ๋“œ ํŒ”๋ ˆํŠธ ํˆด์—์„œ 'code'๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” shell command์— ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋‚˜์˜จ๋‹ค. visual studio code๋Š” ์—ฐ๊ฒฐ ์„ค์ • ํ›„ ํ„ฐ๋ฏธ๋„์—

    code .
    

    ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์—ฐ๋™์ด ๋œ๋‹ค. ๋˜ํ•œ

    git config --global -core.editor "code --wait"
    

    ๋กœ ๊ธ€๋กœ๋ฒŒ์ ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  -core.editor "code --wait"๋Š” ๋ฐฉ๊ธˆ ์“ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ช…๋ น์–ด๊ณ  ๊ทธ๋ƒฅ "code"๋ฅผ ์“ฐ๋ฉด ๊ทธ ๋‹ค์Œ ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ ๋ฐ”๋กœ ์น  ์ˆ˜ ์žˆ๋‹ค. code --wait๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ํ…์ŠคํŠธ ์—๋””ํ„ฐ์—์„œ ์—ด๋ฆฐ ํŒŒ์ผ์ด ์ €์žฅ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋ฅผ ์“ธ ์ˆ˜ ์—†๊ฒŒ ์ฝ”๋“œ๊ฐ€ '๊ธฐ๋‹ค๋ฆฐ๋‹ค'.

    ์‚ฌ์šฉ์ž ์ •๋ณด ์„ค์ •

    ๋™์ผํ•˜๊ฒŒ ๊นƒ ๊ธ€๋กœ๋ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•œ ๋‹ค์Œ์— ์œ ์ €์˜ ์ •๋ณด๋ฅผ ์„ค์ •ํ•ด๋ณด์ž.

    git config --global user.name"lisoh"
    git config --global user.email"lisoh@mail.com" //๋ณธ์ธ์˜ ์ •๋ณด๋กœ ์ž‘์„ฑํ•ด์•ผํ•จ
    

    ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๊ณ 

    git config user.name
    

    ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋‚ด๊ฐ€ ์ €์žฅํ•œ ๋‚˜์˜ ์ด๋ฆ„์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ์šด์˜์ฒด์ œ๊ฐ„ ์ค„๋ฐ”๊ฟˆ ์ฝ”๋“œ ์ž๋™๋ณ€๊ฒฝ ์„ค์ •
    git config --global core.autocrlf true //์œˆ๋„์šฐ ์‚ฌ์šฉ์ž๋ผ๋ฉด
    git config --global core.autocrlf input //๋งฅ ์‚ฌ์šฉ์ž๋ผ๋ฉด
    

    ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์—๋””ํ„ฐ์—์„œ ์ƒˆ๋กœ์šด ์ค„๋ฐ”๊ฟˆ์„ ํ•  ๋•Œ ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ž์—ด์ด ๋‹ฌ๋ผ์ง„๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์œˆ๋„์šฐ๋Š” /r/n , ๋งฅ์€ /n์„ ์ž‘์„ฑํ•ด์ฃผ๋Š”๋ฐ, ์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์“ฐ๋ฉด ์šด์˜์ฒด์ œ๋ฅผ ์˜ค๊ฐˆ ๋•Œ ์•Œ์•„์„œ /r์„ ๋ถ™์ด๊ฑฐ๋‚˜ ์‚ญ์ œํ•ด์ค€๋‹ค.


    3.git ๋ช…๋ น์–ด

    'git + ๋ช…๋ น์–ด' ํ˜•ํƒœ๋กœ ๋ช…๋ น์–ด๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค. ๊นƒ ๊ณต์‹ ์‚ฌ์ดํŠธ์˜ documentation - reference ํŽ˜์ด์ง€๋ฅผ ๊ฐ€๋ฉด git์˜ ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด
    mkdir [ํด๋”์ด๋ฆ„] //ํด๋” ๋งŒ๋“ค๊ธฐ
    cd [ํด๋”์ด๋ฆ„] //ํด๋”๋กœ ์ด๋™ํ•˜๊ธฐ
    ls -al //ํด๋”(๋””๋ ‰ํ† ๋ฆฌ)๋‚ด์šฉ ๋‚˜์—ดํ•˜๊ธฐ
    
    ์ž์ฃผ์“ฐ์ด๋Š” ๋ช…๋ น์–ด
    git init //git ์ดˆ๊ธฐํ™” -> ์ž๋™์œผ๋กœ master ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
    rm -rf git //git์„ ์‚ญ์ œ
    git status //git์˜ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ
    git config --global alias //ํ„ฐ๋ฏธ๋„์•ˆ์—์„œ ๋ช…๋ น์–ด๋ฅผ ๋‹จ์ถ•ํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ช…๋ น์–ด
    git config --global alias.st status // status๋ฅผ st๋กœ ๋‹จ์ถ•ํ•ด์„œ ์„ค์ •ํ•ด๋‹ฌ๋ผ
    git config --h //git ๋ช…๋ น์–ด์™€ ๋ช…๋ น์–ด์˜ ์†์„ฑ๊ฐ’์„ ๋ณด๊ณ ์‹ถ์œผ๋ฉด ๋ช…๋ น์–ด ๋’ค์— --h๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
    

    ํด๋” ์•ž์— '.'์ด ๋ถ™์œผ๋ฉด ์ˆจ๊ฒจ์ง„ ํด๋”๋ผ๋Š” ๋œป. ๊ทธ๋ƒฅ ls๋ฅผ ์น˜๋ฉด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค. master branch : ๊ธฐ๋ณธ์ ์œผ๋กœ commit์—์„œ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ธŒ๋žœ์น˜


    4.git ์ดˆ๊ธฐํ™”/์‚ญ์ œ

    ํ„ฐ๋ฏธ๋„์—์„œ git ์ดˆ๊ธฐํ™” ๋ฐ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•
    git init //git ์ดˆ๊ธฐํ™” -> ์ž๋™์œผ๋กœ master ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
    rm -rf git //git์„ ์‚ญ์ œ
    
    ui๋กœ git์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• (Sourcetree)

    ์ด๋ฏธ ๊ธฐ์กด์— ๋งŒ๋“  git์ด ์žˆ๋‹ค๋ฉด Sourcetree๋ฅผ ์—ด๊ณ  ๊ทธ์•ˆ์— gitํด๋”๋ฅผ ๋“œ๋ž˜๊ทธํ•จ์œผ๋กœ์จ git์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒˆ๋กœ์šด git์€ new ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. create local repository๋ฅผ ๋ˆ„๋ฅด๋ฉด ์›ํ•˜๋Š” ๊ฒฝ๋กœ์— ๊นƒ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.