명령어 목록
git 기본 명령어
명령어 |
설명 |
git status |
깃 저장소의 상태 확인 명령어로, 작업 디렉터리와 스테이지 영역의 변경 사항을 보여준다. |
git add |
새로 생성하거나 수정된 파일을 스테이지 영역으로 올리는 명령어. |
git commit |
스테이지 영역에 있는 파일에 대한 버전 등록을 하는 명령어. 즉, 저장소에 스테이지 영역에 올라온 변경사항을 저장(스냅샷)하고 새로운 커밋을 만든다. |
git log |
커밋 이력을 확인하는 명령으로, 최신 커밋부터 순서대로 커밋 정보를 나열한다. |
git show |
이전 커밋과 다음 커밋 간 파일 내용 차이 확인 |
git rm |
작업 디렉터리에서 파일을 삭제하고, 해당 삭제 작업을 스테이지 영역에 올린다. |
git reset |
git에서 HEAD, 스테이지 영역, 작업 디렉터리의 상태를 특정 상태로 되돌리거나 초기화 |
git restore |
작업 디렉터리의 수정된 파일이나 스테이지 영역을 이전 상태로 되돌린다 |
rm, reset, restore
명령어 |
git rm |
git reset |
git restore |
작업 디렉터리 복구 |
O(옵션) |
O(옵션) |
O |
스테이지 초기화 |
O |
O |
O |
HEAD 이동 |
X |
O |
X |
파일 삭제 |
O |
X |
X |
git status
명령어 설명
깃 저장소의 상태 확인 명령어로, 작업 디렉터리와 스테이지 영역의 변경 사항을 보여준다.
기본 사용법
옵션
옵션 |
full name |
설명 |
--long | long |
현재의 상태를 자세히 표시한다. git status의 기본 옵션이다. |
|
--short | -s |
short |
현재의 상태를 간단히 표시한다. |
--help | -h |
help |
도움말을 보여준다. |
예시
1
2
3
4
5
| # 추적되는 파일이 없는 처음 상태
git status
>> On branch main
>> No commits yet
>> nothing to commit (create/copy files and use "git add" to track)
|
git add
명령어 설명
새로 생성하거나 수정된 파일을 스테이지 영역으로 올리는 명령어. untracked
혹은 modified
상태인 파일을 스테이지 영역으로 올려 커밋 준비를 한다.
기본 사용법
옵션
옵션 |
full name |
설명 |
[files] |
- |
지정한 파일들을 스테이지 영역에 추가한다. |
. |
./ |
현재 디렉터리와 하위 디렉터리의 모든 파일을 스테이지 영역에 추가한다. |
--all or -A |
all |
전체 작업 영역의 모든 파일을 스테이지 영역에 추가한다. |
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # 파일 생성
echo '#!/bin/bash' > test.sh
git status
>> On branch main
>> No commits yet
>> Untracked files:
>> (use "git add <file>..." to include in what will be committed)
>> test.sh
>> nothing added to commit but untracked files present (use "git add" to track)
# git add
git add test.sh
git status
>> On branch main
>> No commits yet
>> Changes to be committed:
>> (use "git rm --cached <file>..." to unstage)
>> new file: test.sh
|
git commit
명령어 설명
스테이지 영역에 있는 파일에 대한 버전 등록을 진행한다. 즉, 저장소에 스테이지 영역에 올라온 변경사항을 저장(스냅샷)하고 새로운 커밋을 만든다.
기본 사용법
1
| git commit [options] [message]
|
옵션
옵션 |
full name |
설명 |
없음 |
|
커밋을 진행한다. 편집기가 열리고, 여기에 커밋 메시지를 입력해야 한다. |
-m |
message |
커밋 메시지를 지정하여 커밋을 실행한다. |
-a -m or -am |
add, message |
스테이지 등록과 커밋을 함께 실행한다. 단, 추적되지 않는 파일에 대해서는 실행이 불가능하다. 추적되지 않는 파일은 git add 후 commit을 진행해야 한다. |
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| # 파일 생성
echo '#!/bin/bash' > test.sh
# git add
git add test.sh
# git commit
git commit -m "first commit"
>> 1 file changed, 1 insertion(+)
>> create mode 100644 test.sh
# git status
git status
>> On branch main
>> nothing to commit, working tree clean
# git log
git log
>> commit 37b90cce0f841afd5e6368f02c4a7e77810bf127 (HEAD -> main)
>> Author: jongya <abc@naver.com>
>> Date: Fri Nov 29 16:04:52 2024 +0900
>> first commit
|
git log
명령어 설명
커밋 이력을 확인하는 명령으로, 최신 커밋부터 순서대로
커밋 정보를 나열한다.
기본 사용법
옵션
옵션 |
full name |
설명 |
없음 |
- |
현재 브랜치의 커밋 정보를 나열하여 커밋 이력을 표시한다. |
--oneline |
- |
커밋 정보를 한 줄로 표시한다. |
--patch or -p |
- |
커밋 정보에 파일의 변경 내용을 표시한다. 모든 커밋에 대해 커밋의 기본 정보와 이전 커밋과의 차이를 표시한다. |
--graph |
- |
문자를 연결한 그래프 형태로 커밋 이력을 그린다. |
--reverse |
- |
오래된 커밋부터 표시한다.
--graph 옵션과는 함께 사용할 수 없다. |
--all |
- |
모든 브랜치의 커밋 이력을 표시한다. |
-n |
- |
최근 n개의 커밋 이력을 표시한다. |
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| # git log
git log
>> commit 37b90cce0f841afd5e6368f02c4a7e77810bf127 (HEAD -> main)
>> Author: jongya <abc@naver.com>
>> Date: Fri Nov 29 16:04:52 2024 +0900
>> first commit
# oneline
git log --oneline
>> 37b90cc (HEAD -> main) first commit
# patch
git log --patch
>> commit 37b90cce0f841afd5e6368f02c4a7e77810bf127 (HEAD -> main)
>> Author: jongya <abc@naver.com>
>> Date: Fri Nov 29 16:04:52 2024 +0900
>> first commit
>> diff --git a/test.sh b/test.sh
>> new file mode 100644
>> index 0000000..a9bf588
>> --- /dev/null
>> +++ b/test.sh
>> @@ -0,0 +1 @@
>> +#!/bin/bash
# graph
git log --graph
>> commit 37b90cce0f841afd5e6368f02c4a7e77810bf127 (HEAD -> main)
>> Author: jongya <abc@naver.com>
>> Date: Fri Nov 29 16:04:52 2024 +0900
>> first commit # 현재는 커밋이 하나밖에 없어서 표시 안됨. 추후 확인.
# all
git log --graph
>> commit 37b90cce0f841afd5e6368f02c4a7e77810bf127 (HEAD -> main)
>> Author: jongya <abc@naver.com>
>> Date: Fri Nov 29 16:04:52 2024 +0900
>> first commit # 현재는 커밋이 하나밖에 없어서 표시 안됨. 추후 확인.
# n
git log -0
>> 출력 없음
git log -1
>> commit 37b90cce0f841afd5e6368f02c4a7e77810bf127 (HEAD -> main)
>> Author: jongya <abc@naver.com>
>> Date: Fri Nov 29 16:04:52 2024 +0900
>> first commit
|
git show
명령어 설명
이전 커밋과 당므 커밋 간 파일 내용의 차이를 확인하는 명령어. git log
와 git diff
의 기능을 결합한 출력물을 제공한다.
기본 사용법
1
2
| git show HEAD # 헤드가 가리키는 커밋과 이전 커밋과의 차이를 표시
git show <commit ID> # 지정 커밋과 이전 커밋과의 차이를 표시
|
옵션
옵션 |
full name |
설명 |
|
- |
특정 커밋의 정보와 함께 이전 커밋과의 차이를 표시한다. |
HEAD |
- |
헤드(현재 커밋)가 가리키는 커밋과 이전 커밋과의 차이를 표시한다. |
--stat |
- |
커밋에서 변경된 파일 목록과 통계만 표시한다. |
--name-only |
- |
변경된 파일 이름만 출력한다. |
--name-status |
- |
변경된 파일의 이름과 상태(추가, 수정, 삭제)를 표시한다. |
git rm
명령어 설명
remove files from the working tree and from the index.
작업 디렉터리에서 파일을 삭제하고, 해당 삭제 작업을 스테이지 영역에 올린다.
기본 사용법
옵션
옵션 |
full name |
설명 |
--cached [files] |
- |
파일을 버전 관리 및 스테이지 영역에서만 제거하고 실제 파일은 작업 디렉터리에 그대로 남긴다. |
-r |
|
디렉터리와 하위 파일들을 재귀적으로 삭제한다. |
-f |
force |
수정된 파일이나 스테이징된 파일도 강제로 삭제한다. |
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| # 파일 생성
echo '#!/bin/bash' > test.sh
# add
git add ./test.sh
# git rm --cached
git rm --cached test.sh
>> rm 'test.sh'
# git status
git status
>> On branch main
>> No commits yet
>> Untracked files:
>> (use "git add <file>..." to include in what will be committed)
>> test.sh
>> nothing added to commit but untracked files present (use "git add" to track)
|
git reset
명령어 설명
git에서 HEAD, 스테이지 영역, 작업 디렉터리의 상태를 특정 상태로 되돌리거나 초기화 한다. 커밋을 제거하거나, 스테이지 상태를 초기화하거나 특정 커밋으로 HEAD를 이동시킬 때 사용한다.
기본 사용법
옵션
옵션 |
full name |
설명 |
[files] |
- |
특정 파일만 스테이지 영역에서 제거 |
--soft |
- |
HEAD : 지정한 커밋으로 이동 스테이지 영역 : 그대로 유지 작업 디렉터리 : 그대로 유지 |
--mixed |
- |
HEAD : 지정한 커밋으로 이동 스테이지 영역 : 초기화 작업 디렉터리 : 그대로 유지 기본값 |
--hard |
- |
HEAD : 지정한 커밋으로 이동 스테이지 영역 : 초기화 작업 디렉터리 : 초기화 |
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| # 파일 생성
echo '#!/bin/bash' > test.sh
# add
git add ./test.sh
# 위에서 이어서
# 스테이지 영역 비우기
git reset
# 상태
git status
>> On branch main
>> No commits yet
>> Untracked files:
>> (use "git add <file>..." to include in what will be committed)
>> test.sh
>> nothing added to commit but untracked files present (use "git add" to track)
|
git restore
명령어 설명
작업 디렉터리의 수정된 파일을 이전 상태로 되돌린다. 혹은 스테이지 영역을 되돌리는(스테이징된 파일을 선택적으로 제거하는) 명령어. 파일의 변경 사항을 취소하거나, 스테이지 영역에서 파일을 제거할 때 사용한다.
기본 사용법
옵션
옵션 |
full name |
설명 |
--staged |
- |
스테이지 영역에서 제거. |
--source |
- |
특정 커밋 기준으로 복원. |
[files] |
- |
작업 디렉터리 복구. 수정된 파일을 이전 상태로 돌린다. |
Reference
UNIX시스템 - 김희천,김진욱 저