본문 바로가기
매일코딩/리눅스-우분투

깃 사용법 - 기초

by 인생여희 2020. 4. 3.
반응형

깃은 소스코드의 버전을 관리하는 도구다.

버전: 의미있는 변화 또는 작업이다. 어떤 작업이 완결된 상태.

아래는 깃의 간단한 사용법이다. 따라해보자.

 

 

1.아무 폴더를 만든다. pwd 로 만든 폴더 위치에 들어온다.

 

2.바탕화면에 빈폴더를 만들고(gittest) 터미널을 열고, 폴더 위치에서 git init 이라고 명령어를 입력하면 빈폴더에 .git 이라는 파일이 생긴다. 이작업은 저장소에 필요한 기본적인 파일 구조를 만든다. 이파일은 이 폴더에 있는 파일들을 깃이 관리하는것을 도와주는 역할을 한다.

만든 폴더(로컬저장소)에는 세부분으로 나뉘어져있다.

1.작업디렉토리: 실제 파일 존재 -> 2.인덱스(스테이지) : 준비영역 -> 3.HEAD : 최종 확정 (commit)

 

 

3. vim mytext.txt 명령어로 파일을 만든다. 그 파일안에 아무 내용을 적고 나온다. 그리고 git status 명령어를 입력한다. 방금 만든 파일이 붉은색으로 표시된다. 방금만들었지만 이 파일은 깃이 관리를 하지 않는 파일이다.

 

 

4.git add 명령어로 방금만든 파일을 깃이 관리하도록 한다. git status를 입력하면 이제 방금 만든 파일이 초록색으로 변한것을 볼 수 있다.(Tracked 파일:깃이 변경사항을 추적할 수 있는 파일)

git status : 파일들의 현재 상태보기

add : add를 한 파일만 commit 된다. 작업한 내용중에서 파일을 추려서 '선택적'으로 파일을 커밋할 수 있다.

쉽게말하면 '커밋대기상태' (stage area)이다. 

 

5.위의 명령어로 이름과 이메일을 지정해주고 위에서 만들었던 파일을 commit 해준다.

깃폴더의 모든 파일은 두가지로 나뉜다. Tracked(관리대상), Untracked(관리대상아님)

참고: Tracked 파일은 이미 스탭샷에 포함되었던파일. 그리고 스테이지에 올라간 상태에 있는파일이다 (stage area).

나머지 파일은 모두 Untracked 파일. Untracked파일은 커밋되지 않는다. 무조건 add 해서 추가후(stage area에 올린후) 커밋을 할 수 있다. add 후 수정하면 unstage 상태가 되니, 수정후에는 add로 최신상태, 즉 stage에 올라간 상태를 만들어야된다.

 

6.commit 명령어를 내리면 커밋한 내용 즉, 변경된 사항을 적을 수 있다. 변경된 내용을 적고 저장하자. :wq

 

7.저장하고 나오면 터미널이 1개의 파일이 커밋되었다고 알려준다.

커밋이 된 이후의 상태는 repository 상태이다.

add - stage area ,  commit  - repository

 

8.git log 라는 명령어로 현재 파일의 상태를 보자. 잘 커밋되었고, 작성자와 메일, 날짜를 볼 수 있다. 

 

9.이번에는 파일을 수정해보자. 아무내용으로 수정하고 빠져나와서 위의 명령어를 쳐보자. 그럼 상태가 수정상태로 바뀌는것을 볼 수 있다.

 

10.git commit 으로 수정된 내용을 적어준다. (아래 사진) . 그리고 로그를 보자.

 

 

 

11. git log -p 는 커밋순서대로 비교해서 보여준다. commit 오른쪽 글자는 해당 커밋의 고유 id 이다.

 

 

12. commit 의 id 로 서로 무엇이 달라졌는지 비교할 수 있다.

 

 

13. 간단하게 1번 아이디 2번아이디로 표시를 했다. 

 

14.git reset 커밋 아이디 --hard 는 해당 커밋한 상태로 되돌린다.

보통 로컬에서 되돌릴때 revert를 하고 원격에서는 revert는 조심한다.

참고:깃명령어중에 commit , add, log, diff, init을 주로 사용한다.

 

15. 파일을 add 하고, 다시 그 파일을 수정했다면 add를 다시 해야 한다... 그래서 파일 수정후에는 git add 명령어를 통해서 스테이지에 올려야 되는데(최신버전) 파일이 여러개일경우 귀찮다. 그래서 git commit -a 라는 명령어를 사용하면 git은 알아서 Tracked 상태의 파일을 자동으로스테이지(stage area)에 넣는다.

 

 

16.위 그림처럼 git commit -am "커밋메시지" 명령어를 통해서 커밋 메시지도 적을 수 있다.

반응형

댓글