기본 명령어
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 공작소]
'[DEV] Programming Tools > Version Management ∕ Git' 카테고리의 다른 글
[Git] Feature 브랜치 작업 과정 (0) | 2021.07.16 |
---|---|
[Git] 깃플로우 개념 (0) | 2021.07.14 |
[Git] 프로젝트 초기 작업 (0) | 2021.07.14 |
[Git & Svn] 기초 개념 이해 (0) | 2021.07.14 |
최근댓글