아래의 사이트에서 공부하면서 나온 명령어들을 정리했다.
명령어에 대하여 보다 자세한 내용이 알고 싶다면 아래 사이트를 참조하길 바란다.
http://git-scm.com/book/ko/v1/
git init
Git 디렉토리를 만든다 (주로 관리하고 싶은 프로젝트의 디렉토리에 사용)
예시 : git init
git clone [url] [저장이름]
다른 Git 저장소에 있는 모든 내용을 복사해온다.
예시 : git clone git://github.com/schacon/grit.git
git status
파일의 상태 확인하기
현재 위치한 파일에서 어느것이 어떤 상황인지 Tracked인지, Untracked인지, Modified인지 등을 알려준다.
또한 작업 중인 브랜치를 알려준다.
예시 : $ git status
On branch master
nothing to commit, working directory clean
git add [파일명]
파일을 새로 추적한다.
예시 : git add README
git add . 으로도 많이 쓰는것 같다 (. 이하 파일은 모두 추적)
git diff
파일이 어떻게 변경되었는지 확인할때 쓴다.
Staged or NoneStaged가 궁금할때는 git status를 쓰지만
Patch처럼 어떤 라인을 추가했고, 삭제했는지 궁금할 때는 git diff를 사용한다.
status/diff 차이
git status |
git diff |
git commit [-a] [-m] [커밋 메세지 명]
수정한 파일을 커밋한다 (Staged 상태만 커밋됨)
커밋하기 전에 status로 파일들의 상태를 확인하자
-a를 하면 Tracked 상태의 파일을 자동으로 커밋완료 (Staging Area에 넣음) 한다.
따라서 git add를 따로 실행하는 번거로움을 덜 수 있다.
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: benchmarks.rb
no changes added to commit (use "git add" and/or "git commit -a")
$ git commit -a -m 'added new benchmarks'
[master 83e38c7] added new benchmarks
1 files changed, 5 insertions(+)
git rm [삭제할 파일명]
파일을 삭제하는 명령어
그냥 rm과 뭐가 다른가? 그냥 삭제하면 Unstaged (계속 추적함)
git rm으로 삭제하면 staged (더이상 추적하지 않음)
$ git rm grit.gemspec
rm 'grit.gemspec'
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: grit.gemspec
git mv [원본 파일명] [변경할 이름]
이름을 바꿔준다. 파일 이름이 변경되어도 Git은 알아서 추적해준다.
$ git mv README.txt README
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.txt -> README
git log
히스토리를 조회하는 명령
저장소의 커밋 히스토리를 시간순으로 보여준다.
이때 가장 최근의 커밋이 가장 위에 위치한다.
보통 log에 자기가 보기 편하게 옵션을 붙인 뒤 alias를 써서 요약한다 (나같은 경우는 git lol로 편하게 본다)
$ git log
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 16:40:33 2008 -0700
removed unnecessary test code
commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 10:31:28 2008 -0700
first commit
이후로 계속 추가하도록 하겠다.
[데이터 마이닝] 데이터마이닝의 개념 및 어떤 것들이 있는지 알아보자 (0) | 2015.12.06 |
---|---|
[TDD] SoundEX 개발하기 2번째 (0) | 2015.12.06 |
[Cucumber] 시나리오 Java 코드로 변환하기 (계좌 예금 및 계좌이체하기) (0) | 2015.12.06 |
[Cucumber] Scenario Outline 기법을 활용하여 시나리오 중복 제거하기 (0) | 2015.12.06 |
[Cucumber] '|'문자를 사용한 테이블형 데이터 전달 (0) | 2015.12.06 |
댓글 영역