기본 명령어

git --version

- 현재 git의 버전을 확인 할 수 있습니다.

 

git init

- git 로컬 저장소(repository)를 생성합니다. [원격 저장소가 있을 경우, 주로 사용되지 않음]

** 자동생성되는 .git 폴더
.git폴더가 사실 로컬저장소의 역활을 하는 중요한 폴더로서 서버와의 링크 정보와 변경된 히스토리 정보를 모두 가지고 있는 폴더 입니다. 이 폴더를 사람이 수정하거나 추가/삭제를 할 필요가 없습니다. Git에서 알아서 운영합니다.

 

git status

- 커밋되지 않은 변경사항을 조회합니다.

 

git add <파일명>

- 로컬 디렉토리에서 작업한 파일을 스테이징 영역에 올려 놓습니다. 다시말하면 git에서 관리하는 파일이라는 선언을 한다고 보면 됩니다.

** git에서의 파일관리(추적)의 상태
- 추적은 바로 이전의 커밋을 깃점으로 아래의 4가지 상태로 관리된다.
- 신규 생성한 파일의 경우, Git에 의해 추적되지 않기 때문에, git add <파일명>을 해줄 때, Staging Area로 이동되고, 수정/삭제와 같은 히스토리가 Git에 의해 관리되기 시작한다.
상태 설명
Untracked 관리대상이 아님
Tracked 추적함
Unmodified 변경이 없는 파일
Modified 변경된 파일
Staged 스태이지에 올라간 파일

 

git commit -m "커밋메시지"

- git add를 통해서 스테이징에 올라간 파일들을 커밋 합니다.
- SVN에서의 commit는 변경된 파일을 서버에 올리는 것을 말하지만 git에서의 commit는 변경된 파일(스테이징된 파일)을 로컬 저장소에만 반영을 하는 것을 말합니다.
- 다시말하면 원격서버에는 올라가 있지 않다는 것입니다. 원격서버에 올릴려면 여기에 다시 git push 명령어를 실행해 줘야 합니다.

 

git diff

- 작업트리와 스테이징영역에 대한 차이점을 보여줍니다.
- "--cached" 옵션을 추가하면 스테이징 영역과 저장소의 차이점을 보여줍니다.
- git diff HEAD를 입력하면 작업트리, 스테이징 영역, 저장소 의 차이점을 모두 보여 줍니다.

 

git mv <파일명> <새파일명>

- 기존에 존재하던 파일을 새파일로 변경을 하며 변경이력은 그대로 유지합니다.

 

git checkout -- 파일명 ??

- 아직 커밋 전인 파일에 대해 변경내용을 취소하고 이전 커밋으로 되돌립니다.
- SVN의 revert와 같은 역활을 합니다.

$ cd project_folder
$ git init   // 이제 해당 프로젝트는 git을 통해 버전관리를 할 수 있습니다.
			 // .git 폴더가 숨김처리와 함께 생성됩니다.
             // 기본 branch는 master로 생성됩니다.
             
$ git status // 현재 git의 branch명, 관리되고 있는 파일 상태를 조회할 수 있습니다.
             // 처음에는 모든 파일들이 Untracked File 상태로 표시되어 있습니다.
             // (git add 명령어를 통해 git에게 관리할 파일이라고 지정해주어야 합니다.)
             
$ git add .  // 해당 폴더 내 모든 파일을 git이 관리 및 추적해야할 파일로 지정합니다.
$ (또는) git add <파일명> // 신규 파일의 경우, git add <파일명>을 따로 호출해주어야 합니다.

$ git commit -m "<변경 내용>"
			 // commit 하기 전에는 git에 파일이 저장되지 않습니다.
			 // commit 할 경우 git이 추적하는 파일만 최종본으로 업데이트 됩니다.
$ git commit -am "First Commit" // add와 함께 쓸 수 있습니다.

# commit 에러시 계정 설정
$ git config --global user.email "내 이메일"
$ git config --global user.name "내 이름"

$ git log    // 현재까지 commit 내역을 조회할 수 있습니다.

$ git push   // 로컬 레포지토리의 버전관리 내용을 모두 원격 레포지토리로 merge합니다.

branch 관련 명령어

git branch

- 로컬 저장소의 브랜치 리스트를 볼 수 있습니다.
- "-r" 옵션을 사용하면 원격 저장소의 브랜치를 볼 수 있습니다.

 

git branch 브랜치1

- 브랜치1라는 새로운 브랜치를 만듭니다.(체크아웃은 하지 않습니다.)

 

git branch 브랜치2 브랜치1

- 브랜치1에서브랜치2를 새로 만듭니다.

 

git branch -d 브랜치1

- 브랜치1를 삭제합니다.

 

tag 관련 명령어

git tag

- 로컬 저장소의 태그 리스트를 볼 수 있습니다.
- "-r" 옵션을 사용하면 원격 저장소의 태그 리스트를 볼 수 있습니다.

 

git tag 태그명 브랜치1

- 브랜치1의 현재상태에서 태그명으로 태그를 붙힙니다.
- 보통 태그는 버전명으로 많이 사용합니다.

 

원격저장소 관련 명령어

git clone [--branch 브랜치명] <원격저장소 주소>

- 원격저장소 주소에 있는 내용을 복제하여 현재 폴더에 저장합니다.[로컬 git 레포지토리 생성]

 

git pull

- 원격저장소의 변경사항을 가져와서 로컬저장소에 있는 내용과 Merge 합니다.

 

git push

- 로컬저장소에 있는 내용을 원격저장소에 업로드 합니다.

 

git remote add <이름> <저장소주소>

- 새로운 원격 저장소를 추가합니다.

- 보통 저장소 주소는 github.. bitbucket.. gitlab등으로 사용되는 듯

 

git remote

- 추가한 원격저장소 리스트를 보여 줍니다.

 

git remote rm <이름>

- 해당 이름의 원격저장소를 제거합니다.

기타 명령어

git checkout 브랜치명/태그명

- 작업트리를 변경합니다.

 

git checkout -b 브랜치2 브랜치1

- 브랜치1에서 브랜치2라는 새로운 브랜치를 만들고 작업트리를 변경합니다.

 

 

git rebase 브랜치1

- 브랜치1의 변경사항을 현재 브랜치에 적용합니다.

 

git merge 브랜치1

- 브랜치1의 브랜치를 현재 브랜치와 합칩니다.



출처

- https://uxgjs.tistory.com/79?category=832417 [UX 공작소]

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기