-
[Git] 기본 명령어 정리Git 2016. 12. 23. 13:08
· Git 기본 명령어 정리
Git의 기본 명령어를 정리 해보겠습니다.
1 Git이란?
깃은 리눅스 개발자인 리눅스코발즈가 개발한 코드 형상관리 프로그램입니다.
아래 사이트에서 다운받을 수 있습니다.
2 명령어
$ git init
현재 디렉토리를 Git Repository로 설정하는 명령어입니다.
디렉토리 내부에 .git 디렉토리가 생성되며 자동으로 master 브랜치가 생성됩니다.
$ git status
현재 Repository의 상태를 보여주는 명령어입니다.
$ git status# On branch master## Initial commit## Untracked files:# (use "git add <file>..." to include in what will be committed)## index.txt <-- [1]nothing added to commit but untracked files present (use "git add" to track)[1] index.txt가 빨간색으로 표시되어 있는데, 이 파일은 Working Diretory에 위치하고
Staging Area에는 추가되지 않은 상태를 가르킵니다. 'Add' 명령어를 이용하여 Staging Area로 올려주어야 합니다.
$ git add
Working Diretory의 파일을 Staging Area로 옮기는 명령어입니다.
명령어
$ git add index.html> index.html 파일을 Staging Area로 Add 시킵니다.$ git add .> 현재 디렉토리에 있는 add되지 않은 모든 파일을 Add 시킵니다.$ git add -i> Interactive 한 방법을 이용합니다. (선택해서 Add 시키는 등 여러가지 방법을 취할 수 있습니다.)$ git status# On branch master## Initial commit## Changes to be committed:# (use "git rm --cached <file>..." to unstage)## new file: index.txt#- $ git status 명령어로 확인해보면 new file: ~~ 로 Repository에 Commit될 준비가 되어있는 파일을 확인할 수 있습니다
$ git rm --cached index.txt 를 입력하면 Staging Area에서 다시 Working Directory로 내릴 수 있습니다.
$ git commit
Staging Area에 있는 파일을 Repository로 저장시키는 명령어입니다.
명령어
$ git commit> vim 에디터가 출력되고 메시지를 입력 한 뒤 commit을 하게 해줍니다.$ git commit -m "메시지"> vim 에디터를 띄우지 않고 간략한 메시지를 작성 할 수 있는 커밋방법입니다.$ git commit -a -m "메시지"> Repository에 있는 파일을 수정 했을 때 이 명령어를 사용하여 commit 합니다.$ git commit[master (root-commit) 289c551] Add index.txt1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 index.txt- 1개의 파일이 변경되었고 라인 변경은 없다. 삭제된 부분은 없다.
$ git commit -m "First Commit!!"[master 5311d36] First Commit!!1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 about.html- 메시지를 이용한 커밋
$ git log
저장소에 잇는 Commit 이력을 조회할 수 있는 명령어입니다.
명령어
$ git log> 커밋의 모든 상세 이력이 출력되는 로그입니다.$ git log --oneline> 커밋의 이력중 커밋ID, Title, Massage만 출력되는 로그입니다.$ git log --oneline --decorate --graph --all> 모든 커밋&브랜치의 로그를 출력합니다.$ git log --index.txt> 특정 파일의 변경 커밋을 조회합니다.$ git diff
다른 커밋과 Working Directory의 코드 차이점을 비교해주는 명령어입니다.
명령어
$ git diff> 현재 브랜치의 마지막 커밋과의 차이점을 비교합니다.$ git diff [Commit ID]> 특정 커밋과의 차이점을 비교합니다. *Commit id) 235266 과 같이 commit당 발급되는 16진수로 이루어진 수$ git diff [Commit ID] -- [File root]> 특정 커밋과 특정 파일의 차이점을 비교합니다.$ git branch
브랜치를 생성, 수정, 삭제 등을 하는 명령어입니다.
명령어
$ git branch> 현재 만들어진 브랜치들을 조회합니다.$ git branch [Name]> [Name] 브랜치를 생성합니다.$ git branch -d [Name]> [Name] 브랜치를 삭제합니다.$ git branch -m [Before Name] [After Name]> 브랜치의 이름을 변경합니다.$ git checkout
Working Directory의 소스를 특정 커밋으로 변경하는 명령어입니다.
명령어
$ git checkout [branch Name]> 특정 브랜치로 Working Directory를 변경합니다.$ git checkout [Commit ID]> 특정 커밋으로 Working Directory를 변경합니다.$ git checkout -- [File root]> 특정 파일을 해당 브랜치 또는 커밋의 상태로 변경합니다.$ git checkout [Commit ID] -- [File root]> 특정 파일을 특정 커밋의 상태로 되돌립니다.주의) Checkout을 할 때 파일을 Commit 하지 않은 상태로 두고 진행하면 Checkout을 해도 파일은 같이 따라가게 됩니다.$ git marge
다른 두 개의 소스를 병합시키는 명령어입니다.
명령어
$ git marge [branch Name]> [branch Name]의 소스를 현재 브랜치와 병합시킵니다.같은 파일이 마스터와 브랜치에서 둘다 수정되었을 경우 CONFLICT 에러가 발생합니다. (자동으로 병합 할 수 없다는 경고)Auto-merging index.htmlCONFLICT (content): Merge conflict in index.htmlAutomatic merge failed; fix conflicts and then commit the result.$ git status# On branch master# You have unmerged paths.# (fix conflicts and run "git commit")## Unmerged paths:# (use "git add <file>..." to mark resolution)## both modified: index.html#no changes added to commit (use "git add" and/or "git commit -a")충돌이 발생하였을 때 문제의 파일을 확인 해보면 아래와 같이 수정이 되있습니다.
<<<<<<<<HEAD(현재 브랜치에 포함된 내용)== == == ==(다른 브랜치에 포함된 내용)>>>>>>>[branch Name]적절히 수정하여 저장해주면 됩니다.
'Git' 카테고리의 다른 글
[Github] Contribution 그래프가 그려지지 않을 때! (4) 2017.11.23 [Git] Can't update: no tracked branch (1) 2017.01.11 [Git] 안드로이드 스튜디오와 Github 연동하기 [2] (0) 2017.01.10 [Git] 안드로이드 스튜디오와 Github 연동하기 [1] (0) 2017.01.09 [Git] 커밋메시지 잘 작성하기 (0) 2016.12.23