Git에 대해 - 1

git 특강

  • git란?

    • VCS(Version Control System) == SCM(Source Code Management: 형상관리)

    • 빠른 속도, 단순한 구조

    • 수정내용은 commit 단위로 관리

      • 모든 파일이 Blob이라는 단위로 구성

      • 파일에 대한 정보들을 모은 것이 commit

      • source + history = commit => blob + label = commit

      • commit들을 나열하는게 Tree

    • 인터넷이 연결되지 않아도 개발 가능

  • 내 정보 작성(git config list)

    • git 관리를 위한 디렉토리를 만든 후, global config list 작성

    • 유저 작성

      1
      $ git config --global user.name [유저 이름]
    • 유저 이메일 작성

      1
      $ git config --global user.email [유저 이메일]
    • 작성된 리스트 보기

      1
      $ git config --list
  • git 명령어

    • 해당 디렉토리에서 git 저장소를 만듦

    • github 사이트에서도 해당 디렉토리와 이름이 같은 프로젝트 생성

    • 해당 디렉토리와 이름을 같게 하는 이유는 헷갈리지 않기 위함

      1
      2
      3
      $ git init
      # 반드시 관리하기 위해 만들어두었던 디렉토리에서 명령어 실행
      # 그렇지 않고 다른 디렉토리에 했다면 ls -al 통해 확인 후, rm -rf .git로 지우기 가능
    • 주소 별명 지정

      1
      $ git remote add [주소 별명] [내 github 디렉토리 주소]
    • 주소 별명의 url 확인

      1
      $ git remote get-url [주소 별명]
    • 주소 별명 제거

      1
      $ git remote remove [주소 별명]
    • 현재 파일의 commit 진행 상황 확인

      1
      $ git status
    • git init를 진행한 디렉토리 안에서 원하는 소스 파일 생성

      • vim으로 작업한 후, 저장

      • 소스 파일이 잘 실행되는지 확인

      • git status를 통해 파일의 현재 커밋 상황 확인

    • add 명령어를 통해 workspace에 저장해둔 소스 파일을 stage 위로 올림

      1
      $ git add [소스 파일]
    • commit 작성

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      $ git commit

      # vim 진입

      # 첫 줄은 해당 소스 파일 작업에 대해 요약 ex) feat: add hello.py

      # 요약할 때에는 첫 줄만 봐도 파악될 수 있게 정리

      # 밑에 줄 부터는 무엇을 수정했는지 서술

      # 영어로 서술하도록 한다.
    • 끝나면 저장하고 나온 후, git status를 통해 진행 상황 확인

    • 이 지점에서 다시 수정해서 local repository에 계속 축적 대기시킬 수 있음

    • git remote repositorry에 추가

      1
      2
      3
      4
      5
      $ git push -u [주소 별명] master

      # 처음만 -u를 통해 명령어 입력

      # -u를 입력하여 master 브랜치를 맞춰줌
    • 리스트나 딕셔너리의 컬렉션 자료형을 쓸 때에는 인덱스를 세로로 명시하는 것이 좋다.

    • 또한 마지막 인덱스에는 콤마를 붙여서 끝내는 것이 좋다.(아무 문제 없다.)

    • 그래야 commit을 했을 때 수정한 부분이 명확하게 보인다.

Share