#Git

Git분산형 버전관리시스템(DVCS) 이다.

#Git 기본 명령어(로컬)

  • 로컬에서 처음 Git을 활용하는 경우 아래의 설정을 해줘야 한다.

    $ git config --global user.name '<Github username>'
    $ git config --global user.email '<Github email>'
    

    커밋하는 사람(author)이 누구인지 설정! Github email이랑 다르면, Github에서 다른 사람이 커밋한 것으로 인식됨!

    컴퓨터에서 한번만 설정해주면 된다.

  1. Git 저장소 설정

    $ git init
    Initialized empty Git repository in C:/Users/student/Desktop/새 폴더/.git/
    
    student@DESKTOP MINGW64 ~/Desktop/새 폴더 (master)
    
    • git init 명령어를 입력하면, 해당 디렉토리에 .git/ 폴더가 생성된다.
    • 모든 git과 관련된 내용은 해당 폴더에 담겨있다.
    • 저장소로 설정되었다면, git bash에서 (master) 가 나타난다.
  2. Staging area(커밋 대상 목록)에 담기

    $ git add .
    $ git add a.txt
    $ git add startcamp/
    
    • git add 명령어를 통해 특정 파일 혹은 폴더를 commit 할 목록(staging area, INDEX)에 담아 놓는다.

    • 반드시 git status 명령어를 통해 내가 원하는 파일이 반영되었는지 확인한다.

      $ git status
      ...
      Changes to be committed:
        (use "git rm --cached <file>..." to unstage)
      
              new file:   a.txt
      
  3. 이력 남기기(commit)

    $ git commit -m '커밋메시지'
    [master (root-commit) 6e5ea06] a.txt 생성
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 a.txt
    
    • commit 은 현재 소스코드의 상태를 스냅샷 찍는 것과 동일하다.
    • Staging Area에 담겨 있는 내용을 이력으로 남긴다.
    • 커밋메시지는 반드시 해당 이력의 내용을 정확하게 표현해야 한다. (보통 오픈소스프로젝트, 회사 내에서 관련된 컨벤션이 존재함.)
  4. 커밋이력 확인하기

    $ git log
    commit 6e5ea0626eb3~~~~~~~~~b6c97d412588 (HEAD -> master)
    Author: ssong10 <leesy1403@naver.com>
    Date:   Tue Jul 9 10:49:00 2019 +0900
    
        a.txt 생성
    
    • git log -n 옵션을 주면, 최근 n개의 커밋을 보여준다.
    • 커밋 이력을 남긴 이후에 커밋 메시지 변경, 삭제 등을 할 수 있는데 이 경우는 매우 조심해야 한다!
  5. git 상태 확인

    항상 모든 명령어를 입력하기 전에 아래의 명령어를 입력하는 습관을 들이자!

    $ git status
    

#Git 원격 저장소 활용하기

원격 저장소(remote repository)는 github, gitlab, bitbucket 등 다양한 서비스를 활용할 수 있다.

  1. 원격 저장소(remote repository) 설정

    $ git remote add origin __https://github.com__
    
    • 로컬 저장소에 최초에 한번만 등록하면 된다.
    • 원격 저장소(remote)origin 이라는 이름으로 정해진 url등록(add) 하는 것이다.
  2. 원격 저장소로 push

    $ git push origin master
    
    • origin 으로 설정된 원격 저장소에 push 한다.
  3. 원격 저장소에서 pull

    $ git pull origin master
    
    • 원격 저장소에 새로운 변경 사항이 있는 경우 pull 을 통해 받아온다.
  4. clone

    $ git clone __url__
    
    • clone 은 원격 저장소에서 최초에 받아올 때 활용한다.

#gitignore

git init을 하면 해당 파일을 작성하는 습관을 들이자!

.gitignore 파일에 작성된 파일 혹은 폴더 등은 git으로 관리되지 않는다.예시는 다음과 같다.

pycache/ # pycache 폴더 안에 있는 내용 모두 *.zip # 확장자가 zip인 파일 모두 profile.jpg # prfile.jpg 파일

처음에는 직접 만들기 보다 gitignore 에서 내 개발환경에 맞춰 만들어 주는 파일을 적용하자.

예를 들면, pycharm을 쓰고 있을 때, .idea/ 를 올리지 않는다거나, python에서는 __pycache__/ 를 올릴 필요는 없다.