02. 로컬 저장소 작업

저장소 만들기

로컬 현재 디렉토리를 git 저장소로 만들기

git init

원격 저장소를 로컬로 복제(clone)하기

원격 저장소를 원격 저장소의 이름으로 복제한다.

git clone https://github.com/libgit2/libgit2

원격 저장소를 mylibgit 새로운 이름으로 복제한다.

git clone https://github.com/libgit2/libgit2 mylibgit

참고 사항

  • 원격 저장소의 이름은 기본값이 origin이다.
  • 권한이 없는 원격 저장소를 clone할 수 있고 오픈소스를 fork한 원격 저장소를 clone할 수도 있다.

여러 가지 예시

새 파일 저장소에 저장하기 (Untracked -> Staged -> Committed)

*.cLICENSE 새로운 파일을 만들어서 저장소에 저장하는 것은 2단계로 나눌 수 있다.

1단계 (Untracked -> Staged)

$ git add *.c
$ git add LICENSE

2단계 (Staged -> Committed)

$ git commit -m 'initial project version'

파일을 수정하고 저장소에 저장하기 (Unmodified -> Modified -> Staged -> Committed)

처음 저장소를 Clone하면 모든 파일은 Tracked이면서 Unmodified 상태이다.

1단계: 파일 수정 (Unmodified -> Modified)

에디터로 hello.c 파일을 편집한다.

2단계: 파일 추가 (Modified -> Staged)

$ git add hello.c

3단계: 파일 커밋 (Staged -> Committed)

$ git commit -m 'greeting message changed'

git add 명령어는 Untracked 파일을 Staged 파일로 만들 때도 쓰고 Modified 파일을 Staged 파일로 만들 때도 사용한다.

git add의 의미는 프로젝트에 파일을 추가한다기보다 다음에 커밋할 파일의 목록에 추가하는 것으로 이해한다.

작업 디렉토리의 파일의 상태 확인

$ git status

파일 무시하기

.gitignore 파일을 만들어 버전 관리하지 않고 무시할 파일 목록을 만든다.

파일 비교

Modified 파일을 Committed 파일과 비교하여 보여준다.

$ git diff

Staged 파일을 Committed 파일과 비교하여 보여준다.

$ git diff --staged

변경사항 커밋하기

커밋 메시지를 에디터로 입력 후 커밋한다.

$ git commit

커밋 메시지를 옵션으로 지정하고 커밋한다.

$ git commit -m "Story 182: Fix benchmarks for speed"

Staging Area 생략 후 바로 커밋할 수도 있다.

$ git commit -am "added new benchmarks"

파일을 삭제하기

$ git rm 파일 이름

파일 이름 바꾸기

되돌리기

마지막 커밋 내용을 되돌리기

이미 커밋을 했지만 파일을 깜빡하고 추가하지 않은 파일이 있거나 커밋 메시지를 수정하고 싶을 때 git commit --amend 명령어를 이용한다.

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

Staged -> Unstaged

git reset HEAD [파일 이름] 명령어로 특정 파일을 Staged 상태에서 Unstaged 상태로 변경한다.

$ git reset HEAD CONTRIBUTION.md

Modified -> Unmodified

git checkout -- [파일 이름] 명령으로 애초에 저장소에 저장된 버전을 다시 꺼내온다.

$ git checkout -- CONTRIBUTION.md

원래 파일로 덮어쓰기 때문에 수정한 내용은 전부 사라지는 것에 주의한다.

파일 변경이력 조회

최종 수정일시: 2019-01-10 21:01

blog comments powered by Disqus