Git 저장소 만들기
Git 저장소 만드는 방법은 두 가지가 있습니다.
1. git init
: 빈 git 저장소를 만들거나 기존 저장소를 다시 초기화하는 명령어입니다.
$ mkdir my_project
$ cd my_project
$ git init
위 명령은 my_project를 git 저장소로 만드는 예제입니다.
2. git clone <url>
: <url>에 해당하는 저장소를 복제해 새 디렉터리로 가져오는 명령어입니다.
$ git clone https://github.com/libgit2/libgit2
위 명령은 libgit2
라는 디렉터리를 만들고 그 안에 https://github.com/libgit2/libgit2 에 있는 데이터를 모두 가져오는 예제입니다.
아래와 같은 명령을 사용하여 저장소를 Clone 하면 libgit2
이 아니라 다른 디렉터리 이름으로 Clone 할 수 있습니다.
$ git clone https://github.com/libgit2/libgit2 mylibgit
mylibgit
디렉터리에 데이터 가져오는 예입니다.
수정하고 저장소에 저장하기
Git 파일의 라이프 사이클은 아래와 같습니다.
워킹 디렉터리의 모든 파일은 크게 Tracked
와 Untracked
로 나뉩니다.
Tracked 파일은 이미 git 저장소에 포함돼 있던 파일이고, Untracked 파일은 git 저장소에 없던 파일입니다.
Tracked 파일은 아래 상태 중 하나입니다.
- Unmodified : Tracked 파일에 아무것도 수정하지 않은 경우
- Modified : Tracked 파일을 수정한 경우
- Staged : Untracked 파일이나 Modified 상태의 파일을 Staging Area에 추가하는 경우 (git add )
파일에 관한 명령어를 알아보겠습니다.
git status
: 파일의 상태를 확인하는 명령어입니다.
$ git status
git add
: 파일을 Staging area에 추가하는 명령어입니다. add를 하면 파일은 staged 상태가 됩니다.
$ git add README
위 명령은 README 파일을 추가하는 예입니다.
git commit
: 변경 사항을 저장소에 기록하는 명령어입니다. Staged 상태인 파일만 commit 할 수 있습니다.
$ git commit
git commit을 수행하면 편집기가 실행되고 편집기에 수정 내용을 추가 저장 후 종료하면 commit이 완료됩니다.
아래와 같이 -m
옵션을 사용하여 편집기 없이 인라인으로 내용을 첨부할 수도 있습니다.
$ git commit -m "add README"
git log
: 커밋 히스토리를 조회하는 명령어입니다.
$ git log
commit 370ed4436cb3457a5d5509142ad2955c17896a34 (HEAD -> master)
Author: yoongrammer <yoongrammer@example.com>
Date: Mon Nov 16 13:23:37 2020 +0900
add README
git rm
: 워킹 디렉터리에서 파일을 삭제하는 명령어입니다.
$ git rm README
git rm 후 파일은 staged 상태가 됩니다. 이후 commit을 하면 파일이 삭제됩니다.
git diff
: 파일의 변경 내용을 보는 명령어입니다. Staged와 Unstaged 상태의 파일을 비교합니다.
$ git diff