/rlt

깃을 만들어보자

Primary LanguageRust

rlt

Let's implement the git command to learn the internals of git..

TODO

git 은 Plumbing Commands 와 Porcelain Commands 로 나뉜다. (git help -av or man git 참고)

git options

  • -C
  • --git-dir
  • --work-tree

git Plumbing Commands (Low-level Commands)

  • git hash-object
    • with -w option
    • with <type> <hash> argument
  • git cat-file
    • without options
  • git ls-files
    • without options
  • git check-ignore
    • without options
  • git ls-tree
    • with recursive option
    • with path argument, without recursive option
  • git update-index
  • git write-tree
  • git read-tree

...

git Porcelain Commands (High-level Commands)

  • git init
    • without options
  • git add
  • git commit
  • git status
    • without options
  • git log
    • without support for packed-refs
  • git diff
  • git push
  • git pull
  • git clone

...


NOT SUPPORTED

  • :magic pattern in pathspec
  • rlt only supports the .gitignore file for ignore patterns; other methods like .git/info/exclude are not supported.

References