pro git으로 배우는 git! 2.기초by Seㅈoong

git의 기초적인 사용법을 익히자

Git 기초

저장소 설정, 파일의 추적, 커밋등 git에서 자주 사용되는 명령어들을 익혀본다.

git 저장소

기존 프로젝트를 git 저장소로 만드는 방법과 서버에 있는 저장소를 clone하는 2가지 방법이 있다.

  • 기존 디렉터리를 git 저장소로 만들기
    git으로 관리하고 싶은 프로젝트의 디렉토리로 이동해 다음 명령어 실시 $ git init 이 명령어는 저장소의 뼈대(Skeleton)가 들어 있는 .git이라는 하위 디렉터리를 만든다.
    실제로 프로젝트의 파일을 관리하기 위해서는 파일을 추가하고 커밋하는 과정이 필요하다.
    $ git add *.c
    $ git commit -m 'initial project version'

  • 기존 저장소를 Clone하기
    git clone을 실행하면 서버에 있는 프로젝트의 데이터를 모두 복사한다.
    $ git clone git://github.com/schacom/grit.gif

수정 / 저장

워킹 디렉터리의 파일은 크게 Tracked(관리대상), Untracked(비관리대상)으로 나눈다.
Tracked 파일은 이미 스냅샷에 포함돼 있던 파일로 Unmodified, Modified, Staged의 3가지 상태로 나뉜다.
그외 파일은 모두 Untracked파일로 분류한다.

  • 파일 상태 확인
    git status 명령어 이용 git은 Untracted 파일을 아직 스냅샷(커밋)에 넣어지지 않은 파일이라고 본다.
    파일이 Tracked 상태가 되기 전까지는 git은 절대 그 파일을 커밋하지 않느다.

  • 파일 추전
    git add 명령으로 파일을 새로 추적할 수 있다.(디렉터리를 아뮤먼트로 받으면 하위 모든 파일을 추적) changes to be committed에 있는 파일은 Staged 상태라는 것을 의미한다.
    커밋하면 git add를 실행한 시점의 파일이 저장소 히스토리에 저장된다.

  • Modified 상태의 파일을 Stage하기
    Tracked 상태인 파일을 수정하는 법을 알아보자 Changed but not updated는 수정한 파일이 Tracked 상태이지만 아직 Staged 상태는 아니라는 뜻이다.
    Staged 상태로 만들기 위해서는 git add 명령어를 실행한다.
    git add명령어는 파일 추적시작 명령어 로도 사용하고 수정한 파일을 Staged 상태로 만들 때도 사용한다. 파일이 Staged 상태이므로 다음 커밋에 포함된다.
    이때 다시 파일을 수정해 보자. 파일이 Staged 이면서 동시에 Unstaged 상태로 나온다.
    지금 이 시점에서 커밋을 하게 되면 git commit 명령 시점이 아닌 마지막으로 git add한 시점의 버전이 저장된다.
    파일의 수정이 발생하면 git add를 통해 최신화 파일을 Staged영역으로 옮긴후 commit을 하도록 한다.

  • 파일 무시하기
    git이 자동으로 추가하거나 Untracked 파일 이라고 보여주길 원치 않는 파일들이 있다.
    로그, 설정파일들이 그 예이다. 파일을 무시하기 위해서는 .gitignore파일을 만들고 그안에 패턴을 적는다.
    1. 빈 줄이나 #로 시작하는 줄은 무시한다.
    2. 표준 Glob 패턴을 사용한다.
    3. 디렉터리는 끝에 / 사용하는 것으로 표시한다.
    4. !로 시작하는 패턴의 파일은 무시하지 않는다.
      프로젝트 시작전 무시할 파일을 선별하고 진행하는게 수월한다.
      (https://www.gitignore.io)[https://www.gitignore.io] .gitignore파일을 간단한 키워드 검색으로 생성해주는 웹사이트
  • Staged와 Unstaged 상태의 변경 내용 보기
    변경 유무가 아닌 변경 내용을 보기 위해서는 git diff 명령어를 이용해야한다.
    이 명령은 워킹 디렉터리와 Staging area를 비교한다. !git diff 명령은 마지막으로 커밋한 후 수정한 것을 보여주지 않는다.
    Unstaged 상태인 것들만 보여준다.

저장소 수정 저장 커밋 히스토리 되돌리기 리모트 태그 팁과 트릭

브랜치

브랜치란? 브랜치와 머지 브랜치 관리 브랜치 워크플로우 리모트 브랜치 리베이스

Published 09 February 2015