Develop/Git

Git - ๊ธฐ๋ณธ ๋ช…๋ น์–ด

Gr00t 2020. 12. 31. 01:03
๐Ÿ“Œ
github์— ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ๋ ˆํฌ์ง€ํ† ๋ฆฌ์™€ ์—ฐ๊ฒฐํ•  ํด๋”๊ฐ€ ์ „์ œ๋˜์–ด์žˆ๋‹ค. ๋˜ํ•œ, ์ผ๋ฐ˜์ ์ธ github ์—…๋กœ๋“œ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ผ ์ž‘์„ฑ๋˜์—ˆ๋‹ค.

  1. git init

    ํ˜„์žฌ ํด๋”๋ฅผ git์œผ๋กœ ๊ด€๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค == ์ดˆ๊ธฐํ™”

    ์‹คํ–‰ํ•˜๋ฉด ์ˆจ๊ฒจ์ง„ ํด๋”๋กœ .git ํด๋”๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

    ~/Desktop/git $ git init
    Initialized empty Git repository in C:/Users/qkrwl/Desktop/git/.git/
    
    ~/Desktop/git (main)
    $ ls -al
    total 8
    drwxr-xr-x 1 qkrwl 197609 0 12์›” 30 21:23 ./
    drwxr-xr-x 1 qkrwl 197609 0 12์›” 30 21:22 ../
    drwxr-xr-x 1 qkrwl 197609 0 12์›” 30 21:23 .git/

  1. git config

    github์™€ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์„ค์ •์„ ํ•œ๋‹ค.

    ~/Desktop/git (main) $ git config --global user.email '์ด๋ฉ”์ผ'
    ~/Desktop/git (main) $ git config --global user.name '์ด๋ฆ„'

    ์„ค์ •ํ•œ ๊ฐ’์„ ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค.

    ~/Desktop/git (main) $ git config --global --list
    user.email='์ด๋ฉ”์ผ'
    user.name='์ด๋ฆ„'
    ...

  1. git add [file|folder] | git restore --staged [file|folder]

    ์—ฐ๊ฒฐ๋œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์˜ฌ๋ฆด ํŒŒ์ผ์„ ์ถ”๊ฐ€ | ์‚ญ์ œํ•œ๋‹ค.

    ํŒŒ์ผ๋ช…์ด๋‚˜ ํด๋”๋ช…์„ ์‚ฌ์šฉํ•ด ์„ ํƒ์ ์œผ๋กœ ๋“ฑ๋ก|ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

    • git add . ๊ณผ ๊ฐ™์ด ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ์ „์ฒด๋ฅผ ํ•œ๋ฒˆ์— ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ตฌ๋ฒ„์ „์—์„œ๋Š” restore๋Œ€์‹  git reset HEAD [file|folder] ๋กœ ์“ด๋‹ค.
    • ์ถ”๊ฐ€
      ~/Desktop/git (main) $ echo 'hello Git world' > sample.txt
      ~/Desktop/git (main) $ ls
      sample.txt
      ~/Desktop/git (main) $ git add sample.txt
    • ์ œ๊ฑฐ
      ~/Desktop/git (main) $ git restore --staged sample.txt
      ~/Desktop/git (main) $ git reset HEAD sample.txt

  1. git status

    git์ด ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ํŒŒ์ผ๊ณผ ํด๋”์— ๋Œ€ํ•ด์„œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

    • ์ถ”๊ฐ€๋œ ๊ฒฝ์šฐ
      ~/Desktop/git (main) $ git status
      On branch main
      
      No commits yet
      
      Changes to be committed:
        (use "git rm --cached <file>..." to unstage)
              new file:   sample.txt
    • ์•„์ง ์ถ”๊ฐ€๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
      ~/Desktop/git (main) $ git status
      On branch main
      Untracked files:
        (use "git add <file>..." to include in what will be committed)
              temp.txt
      
      nothing added to commit but untracked files present (use "git add" to track)
    • ์ˆ˜์ •๋œ ๊ฒฝ์šฐ
      ~/Desktop/git (main) $ git status
      On branch main
      Changes not staged for commit:
        (use "git add <file>..." to update what will be committed)
        (use "git restore <file>..." to discard changes in working directory)
              modified:   sample.txt
      
      no changes added to commit (use "git add" and/or "git commit -a")

  1. git commit -m [message]

    git add/restore๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€/์‚ญ์ œ๋œ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜์˜ ๊ธฐ๋ก์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

     ~/Desktop/git (main) $ git commit -m '[ADD] sample.txt'
    [main (root-commit) d1d23e4] [ADD] sample.txt
     1 file changed, 1 insertion(+)
     create mode 100644 sample.txt

  1. git log (branch)

    git commit์„ ํ†ตํ•ด ๋‚จ๊ฒจ์ง„ ๊ธฐ๋ก๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค.

    ~/Desktop/git (main) $ git log
    commit d1d23e4e78e88d82a71a43dad2b3d8b33b2d9a04 (HEAD -> main)
    Author: JissuPark <qkrwltn9412@gmail.com>
    Date:   Wed Dec 30 22:59:50 2020 +0900
    
        [ADD] sample.txt

    ๋„ˆ๋ฌด ๊ธธ๋‹ค๋ฉด ํ•œ ์ค„๋กœ ๋ณผ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค. --oneline

    ~/Desktop/git (main) $ git log --oneline
    d1d23e4 (HEAD -> main) [ADD] sample.txt

    ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋ž˜ํ”„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค. --graph

    ํ•ด๋‹น ์˜ต์…˜์€ commit ์ˆ˜๊ฐ€ ๋งŽ๊ณ  branch๊ฐ€ ์žˆ๋‹ค๋ฉด ๋”์šฑ ๋น›์„ ๋ฐœํ•œ๋‹ค.

    ~/Desktop/git (main) $ git log --oneline --graph
    * d1d23e4 (HEAD -> main) [ADD] sample.txt

  1. git remote add [repository] [github_url]

    ์›๊ฒฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์™€ ์—ฐ๊ฒฐ์„ ๋‹ด๋‹นํ•œ๋‹ค.

    ~/Desktop/git (main) $ git remote add upstream https://github.com/JissuPark/Git.git

    -v ์˜ต์…˜์„ ํ†ตํ•ด ๋“ฑ๋ก๋œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•œ๋‹ค.

    ~/Desktop/git (main) $ git remote -v
    upstream        https://github.com/JissuPark/Git.git (fetch)
    upstream        https://github.com/JissuPark/Git.git (push)

  1. git push [repository] [branch]

    [branch]์— commit๋œ ๊ธฐ๋ก๊ณผ ํ•จ๊ป˜ ํŒŒ์ผ๋“ค์„ ์›๊ฒฉ [repository]๋กœ ์ „์†กํ•œ๋‹ค. == ํŒŒ์ผ ์˜ฌ๋ฆฌ๊ธฐ

    • repository : git remote ๋ฅผ ํ†ตํ•ด์„œ ์„ค์ •ํ•œ ๋ณ„์นญ
    • branch : ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ธŒ๋žœ์น˜๋ช…
    ~/Desktop/git (main) $ git push upstream main
    Enumerating objects: 3, done.
    Counting objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 243 bytes | 121.00 KiB/s, done.
    Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    To https://github.com/JissuPark/Git.git
     * [new branch]      main -> main

  1. git pull [repository] [branch]

    [repository]์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์„ [branch]๋กœ ์ „์†กํ•œ๋‹ค. == ํŒŒ์ผ ๋‚ด๋ ค๋ฐ›๊ธฐ

    ~/Desktop/git (main) $ git pull upstream main
    remote: Enumerating objects: 5, done.
    remote: Counting objects: 100% (5/5), done.
    remote: Compressing objects: 100% (2/2), done.
    remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), 711 bytes | 44.00 KiB/s, done.
    From https://github.com/JissuPark/Git
     * branch            main       -> FETCH_HEAD
       2ec5d53..8052b60  main       -> upstream/main
    hint: Waiting for your editor to close the file...
    [main 2020-12-30T15:52:33.121Z] update#setState idle
    Merge made by the 'recursive' strategy.
     Git_Basic.md | 16 ++++++++--------
     1 file changed, 8 insertions(+), 8 deletions(-)