210122 Git + Vim editor usage TIL

Git

Shell, Vim command or git

오늘 배운내용

  • Shell command

    • 기본 Linux shell command 활용

      • cd : 쉘의 현재 위치 이동

      • mv : 디렉토리, 파일 이동

      • cp : 파일 복사

      • rm : 디렉토리, 파일 삭제

      • mkdir : 디렉토리 생성

      • pwd : 쉘의 현재 위치 확인

      • ls (-a, -l option) : 쉘의 현 위치에 있는 디렉토리, 파일을 출력 (옵션을 이용해서 세부사항 출력, 리스트로 출력가능)

      • touch : 새로운 파일을 생성

      • cat : 파일의 내용을 terminal 상에서 확인

      • head : 파일의 앞 부분의 내용을 terminal 상에서 확인

      • tail : 파일의 뒷 부분의 내용을 terminal 상에서 확인
        (option으로 -[N] N 번째 라인까지 확인할지 설정할 수 있다.)

      • chmod : 파일권한 설정

      1
      $ chmod [옵션] (8진수) (파일명)
      1
      2
      3
      4
      5
      6
      7
      drwxr-xr-x
      d or -: directory or file
      (user)(group)(other)
      r: read
      w: write
      x: execute
      -: no permission
    • Application 계층과 Kernel 계층 그리고 하드웨어 계층으로 분류하여 이해할 수 있다.

      • 커널은 하드웨어와 Application 사이에 위치하여 하드웨어와 응용프로그램을 이어주는 운영체제의 핵심 소프트웨어이다.
    • Shell의 정의에 대해 이해할 수 있다. - 커널과 사용자가 소통할 수 있도록 그 사이를 이어주는 소프트웨어이다. - 다양한 쉘이 존재 (sh, csh, bash, zsh)

  • Vim command

    • Vim editor를 이용한 commit message 작성 및 수정
    • git commit -m “”을 통한 commit message를 작성하는 것은 되도록 하지 말고 git commit 을 통해 vi editor를 사용해서 commit message를 작성하는 것이 좋다.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      Vim 기본 사용키
      h,j,k,l - move cursor
      i - insert mode
      v - visual mode
      d - delete
      y - yank
      p - paste
      u - undo
      r - replace
      $ - move end of line
      ^ - move start of line
      :q - quit
      :q! - quit w/o write(no warning)
      :wq - write and quit
      :{number} - move to {number}th line
  • Git:
    Git은 VSC(Version Control System)으로, SCM(Source Code Management)라고도 한다.

    • Git과 Github가 다름을 이해한다.

      • Git은 VCS(Version Control System)로 tool 자체이며, Github는 이 Git이라는 tool을 활용하여 웹 기반으로 만든 웹 서비스이다.
    • Git을 활용하여 소스코드를 관리한다.

    • 전체적인 git flow를 이해한다.

      workspace에서 add를 하게 되면, stage(=index)에 Blob의 형태로 파일 정보가 업로드 된다. stage에 올라간 파일을 로컬 repository 에 업데이트 하기 위해서 commit을 하고, 최종적으로 remote repository에 저장하기 위해 push라는 과정을 거친다.

    • git의 환경설정을 할 수 있다.

      • 기본적으로 local 환경에서 git을 사용하기 전에 user.name, user.email, core.editor 를 설정해준다.
      1
      2
      3
      4
      5
      $ git config --global user.name "{github username}"
      $ git config --global user.email "{github email address}"
      $ git config --global core.editor "vim"
      $ git config --global core.pager "cat"
      $ git config --list
      • core.editor로 등록한 vim을 활용하여 commit message를 작성할 수 있다.

        • Commit Convention
          • commit제목은 50자 이내로 요약하여 작성한다.
          • 제목과 내용사이에는 한 칸 띄어준다.
          • prefix를 활용하여 commit의 용도를 한 눈에 알아볼 수 있도록 한다.
            1
            2
            3
            4
            5
            6
            7
            8
            9
            feat: features
            docs: documentations
            conf: configurations
            test: test
            fix: bug-fix
            refactor: refactoring
            ci: Continuous Integration
            build: Build
            perf: Performance
            ex) Commit Convention - example
            1
            2
            3
            4
            feat: Create server.py to start flask project
            docs: Create README.md
            conf: poetry init
            test: User model CRUD test complete
      • 기존에 remote repository를 local 환경에 clone해서 작업을 할 수 있다.

        1
        2
        3
        $ git clone

        $ git clone [git repository url] ./[생성할 폴더 이름(옵션)]