[GIT] Git 쌩기초 요약

December 24, 2019에 게시됨.

github

1. Github

Github 링크

  • Github이란

    1. Github은 세계에서 가장 광범위하게 사용되는 원격 저장소입니다.

      1. 원격 저장소란 Github, Gitlab 같은 호스팅 서비스나 내부 서버에 코드(프로젝트)의 현재 상태를 저장하는 디렉토리를 의미합니다.
      2. 상태란 코드 / 파일의 추가, 삭제, 변경을 포함한 상태를 commit의 형태로 저장한 것을 말합니다.
      3. 원격 저장소가 없더라도 local에서 커밋 내역을 저장할 수는 있지만, 협업 도구로 활용하려면 원격 저장소가 필수!

2. Git bash

Git bash 다운로드 링크

  1. windows를 사용할 때도 command prompt를 쓰기보다 git bash를 사용하면 더 편리합니다.
  2. 설치하고 PATH에 등록하면 우클릭으로 원하는 폴더에서 터미널을 쉽게 열 수 있어요.
  3. 원하는 디렉토리에서 터미널을 열었다면 다음 명령어를 순서대로 입력해봅시다.

    $ mkdir git_test               # 1 폴더를 만들어서
    $ cd git_text                  # 2 들어가고
    $ git init                     # 3 이 디렉토리를 git 저장소로 만듭니다(.git폴더가 생성됩니다)
    $ touch test.txt               # 4 test.txt파일을 만들고
    
    $ git add test.txt             # 5 test.txt 파일을 추적합니다.
    $ git commit -m 'first commit' # 6 first commit 메시지로 커밋을 남깁니다.
    $ git push                     # 7 업스트림으로 설정된 브랜치에 푸쉬합니다.
    • git은 init 혹은 clone 명령어로 만들어진 git 저장소 안에서 파일의 추가, 변경, 삭제, 이동을 기록합니다.
    • 이 때, 모든 파일이 추적되는 것은 아니며 git add 명령어로 stage된 파일들만 관리하게 됩니다.

      • git add . 으로 하위 디렉토리를 포함한 모든 파일을 추적할 수 있습니다.
      • 이 때 .gitignore 파일을 생성하여 추적 제외 규칙을 생성해 줄 수 있습니다.

        gitignore.io 링크
        사용하는 환경에 맞게 gitignore파일을 자동으로 생성해주는 웹서비스입니다.

    • commit은 해당 시점의 변경사항을 기록한다는 의미입니다.

      • HEAD와 message를 가지고 있으며 message는 별도의 툴을 이용하는게 아니라면 직접 작성해야 합니다.
      • commit message는 집단 내 컨벤션이 중요한 분야입니다. 꼭 지켜보도록 합시다.
  4. git을 개인 저장소로 사용한다면 5,6,7 번(add, commit, push)를 반복하게 됩니다.

    • 여기에 git pullgit clone을 더하면 두 개 이상의 장치에서의 사용도 가능합니다.

      • pull은 현재 저장소의 최신 상태를 가져온다는 의미입니다. 로컬의 상태가 최신일 경우 everything up to date라고 출력됩니다.
      • clone은 이미 존재하는 리포지토리를 로컬로 복사하는 명령어입니다. 다운로드라고 생각하면 좋습니다.
  5. 현재 작업공간에서 과거의 이력으로 돌아가고자 한다면,

    $ git checkout HEAD~n # 'n'단계 이전의 커밋으로 돌아갑니다.
    $ git checkout master # master 브랜치로 복귀합니다.
    $ git checkout 733f21 # 커밋의 해쉬값을 적어서 해당 커밋으로 복귀합니다. 앞의 6자리만 써도 됩니다.
    
    $ git reset ~ # 현재의 커밋을 버리고 과거의 이력으로 돌아갑니다.

Git을 협업 도구로 사용하는법은 다음 포스트에서 다루겠습니다.

공유하기!