07. git review: internal & remote - nephilim/js-git-kata GitHub Wiki

git internal again

  • types

    1. blob
      • .git/objects
        • ca/16fb71eec0e9988ab7eab8739d6433430ae87d์™€ ๊ฐ™์ด ์ €์žฅ๋จ
      • git-hash-object
        • git hash-object test.txt
      • blob์€ ์ค‘๋ณต ์ €์žฅ๋  ์ˆ˜ ์—†์Œ์„ ํ™•์ธ ๊ฐ€๋Šฅ
    2. tree
      • git-ls-tree
      • git-cat-file๋กœ๋„ ๋™์ผํ•œ ๋‚ด์šฉ ํ™•์ธ ๊ฐ€๋Šฅ
    3. commit
      • tree ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ด
        • HEAD^{tree} tree ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•จ
      • message, author, committer (, parent) ์ •๋ณด๋ฅผ ๋ณด๊ด€
      • git cat-file -p HEAD
    4. tag
      • ๋ƒ‰๋ฌด
  • git-cat-file

    • ๋ชจ๋“  git object๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
    • -p: pretty format
    • -t: type
  • practice(git-test-l7.tgz)

    1. ๋‘ ๊ตฐ๋ฐ ๋ณต์‚ฌ

      • git-test-l7-0001, git-test-l7-0002
    2. cd git-test-l7-0001

       > git hash-object test.txt 
       bc969c38dcde919c62ad1e42acff221f39adcd1f
       > cd .git/objects
       > cd bc
       > ls -al
      

remote ์ž‘์—… ์‹ค์Šต(๊ฐ์ž)

  • git-test-l7-0002์—์„œ ์ž‘์—…ํ•œ ํ›„ git-test-l7-0001์— ๋ฐ˜์˜ํ•˜๊ธฐ
  • git branch -r
    1. ์••์ถ• ํ•ด์ œ
      • tar -zxvf git-test-l7 git-test-l7-0001
    2. remote ๋“ฑ๋ก
      • cd git-test-l7-0002
      • git remote add R0001 ../git-test-l7-0001
    3. fetch
      • git fetch R0001
      • git branch -r
    4. ๋ณ€๊ฒฝ ์ž‘์—… ์ง„ํ–‰

find

  • git rev-parse
    • git checkout $(git rev-parse HEAD)
  • grep
    • git grep -n ${pattern} HEAD HEAD^ HEAD^^ -- ${file-pattern}
      • -n: display line number
    • git grep -n ${pattern} $(git rev-list --all)
  • git show :/${regex}
    • Show the last commit which message matches a regex
  • git branch --contains ${changset}
    • find out which branch contains a change
    • use -a to include remote