DevOps/Github

[Github] Git으로 버전 관리하기

IT수정 2024. 10. 10. 17:16

Git 저장소 만들기

 

처음 생성했을 때는 파일과 디렉터리가 표시되지 않지만, 초기화를 거치고 나면 디렉터리가 생성된다.

 

버전

깃에서 문서를 수정하고 저장할 때 마다 생성된다. 버전마다 변경 시점과 변경 내용을 확인할 수 있다. 또한 이전 버전으로 되돌아갈 수도 있다.

 

깃의 작업 영역

작업 트리

파일 수정, 저장 등의 작업을 하는 디렉토리, a.k.a 작업 디렉토리(Working Directory)

우리 눈에 보이는 디렉토리가 바로 작업 트리이다.

 

스테이지

버전을 만들 파일이 대기하는 곳, a.k.a 스테이징 영역

눈에 보이지 않음

 

저장소

스테이지에 있는 대기 파일을 버전으로 만들어 저장하는 곳, a.k.a 리포지토리

눈에 보이지 않음

 

스테이지와 커밋 이해하기

1. 작업 트리에서 파일을 수정하고 저장

 

2. 버전을 만들고 싶다면 스테이지에 넣음

 

3. 스테이지에 있던 파일을 저장소에 버전으로 저장

 

버전 만들기

VS Code에서 터미널 창 사용하기

1. [작업 폴더 추가] hello-git 폴더를 VS Code 위로 드래그

 

2. [터미널 창 열기] VS Code에서 터미널 실행

 

작업 트리에서 변경 사항 만들기

1. git status 명령어로 상태 확인

git status -- 저장소 상태 확인 명령어

 

2. VS Code에서 hello.txt 파일을 생성한 후 다시 git status 명령어로 상태 확인

 

스테이지에 변경 사항 올리기

1. git add hello.txt 명령어 입력

git add 파일명 -- 스테이징 명령어

 

2. git status 명령어로 저장소 상태 확인

 

스테이징 한 파일 커밋하기

1. git commit -m "message1" 명령어 입력

git commit -m "messasge" -- 커밋 명령어

 

버전을 만드는 것을 '커밋'이라고 표현한다.

버전에 어떤 변경이 있었는지 메시지를 함께 기록한다.

 

2. git status 명령어로 상태 확인

 

3. git log 명령어로 저장소에 있는 버전(커밋)을 확인

git log -- 버전(커밋) 확인 명령어

 

 

스테이징과 커밋 한꺼번에 처리하기

1. hello.txt 파일을 수정

 

2. git commit -am "message2" 명령어 입력

git commit -am "message" -- 스테이징 & 커밋 명령어

 

* -am : add 옵션 추가. -a -m처럼 따로 적어도 된다.

스테이징과 커밋을 한꺼번에 처리하려면 무조건 한번은 커밋했던 파일이어야 한다.

 

3. git log 명령어 입력

 

커밋 내용 확인하기

git log 명령어를 입력하면 지금까지 만든 버전이 나타나고 각 버전마다 설명이 함께 표시된다.

 

변경 사항 확인하기

git diff 명령어를 입력하면 특정 파일의 현재 상태와 최신버전의 차이를 표시한다.

git diff -- 특정 파일의 현재 상태와 최신 버전의 차이를 표시하는 명령어

 

1. hello.txt 파일 수정

 

2. git status 명령어를 입력해 저장소 상태 확인

 

3. git diff 명령어를 입력해 수정한 파일과 저장소에 있는 파일 비교

* -2 : 2가 삭제됨을 의미

* +two : two가 추가됨을 의미

 

수정한 내용으로 다시 버전을 만들려면 스테이지에 올린 후 커밋하고,

수정한 내용을 버리려면 git checkout 명령어를 사용해 수정 내용 취소한다.

 

버전을 만드는 단계마다 파일 상태 확인하기

버전을 만드는 각 단계마다 파일의 상태가 달라진다.

파일의 상태를 이해하면 현재 어느 단계인지, 그 상태에서 어떤 일을 할 수 있는지 알 수 있다.

tracked 버전을 만든 후 Git에서 변경 내역을 추적중인 상태
untracked 한번도 버전을 만들지 않은 상태
unmodified 수정되지 않은 상태 (working tree is clean)
modified 작업 트리에서 수정한 후 아직 스테이지에 저장하지 않은 상태
staged 스테이지에 있고 아직 커밋하지 않은 상태

 

tracked 파일과 untracked 파일

1. hello.txt 파일 수정

 

2. hello2.txt 파일 생성

 

3. git status 명령어로 저장소 상태 확인

 

4.git add .

마침표를 사용하면 작업 트리의 파일을 한꺼번에 스테이징

 

5. git status 명령어로 저장소 상태 확인

 

6. git commit -m "message3" 명령어 입력

 

7. git log --stat

버전(커밋) 확인과 변경 사항을 함께 확인

 

unmodified, modified, staged 상태

1. hello-git 디렉터리에 있는 hello2.txt  파일 수정

 

2. git status로 상태 확인

 

3. 스테이징 후 git status로 상태 확인

 

4. 커밋 후 git status로 상태 확인

 

작업 트리에서 수정한 파일 되돌리기

1. hello.txt 파일 수정

 

2. git status로 상태 확인

 

3. git restore 명령어로 실행 취소

git restore -- 작업 트리에서 수정한 파일을 되돌리는 명령어

 

4. hello.txt 파일 확인

다시 확인해 보면 복구되어 있는 것을 확인할 수 있다.

 

스테이징 되돌리기

1. hello2.txt 파일 수정

 

2. 스테이지에 올린 후 git status 상태 확인

 

3. git resture --staged 명령어로 실행 취소

git restore --staged 파일명 -- 스테이징을 되돌리는 명령어

 

4. git status로 상태 확인

 

최신 커밋 되돌리기

1. hello2.txt 수정

 

2. git commit 명령어로 스테이징 & 커밋

git commit -am "message4"

 

3. git log 명령으로 커밋 확인

 

4. git reset HEAD^ 명령어로 최신 커밋 취소

git reset HEAD^ -- 최신 커밋을 취소하는 명령어. 스테이지에서도 내려진다.

 

5. git log 확인

 

특정 커밋으로 되돌리기

1. 여러 커밋 만들기

rev.txt 만들고 'a' 입력 저장 > 스테이징 후 커밋(R1) // git add rev.txt > git commit -m "R1"

'b' 추가 후 저장 > 스테이징 & 커밋(R2) // git commit -am "R2"

'c' 추가 후 저장 > 스테이징 & 커밋(R3)

'd' 추가 후 저장 > 스테이징 & 커밋(R4)

기존 내용 끝에 'e' 추가 후 저장

 

2. git log 명령으로 커밋 확인

 

3. R2 커밋으로 되돌리기 위해서  R2 커밋 해시 복사

 

4. git reset --hard 명령어로 커밋 되돌리기

git reset --hard 해당 커밋 주소 -- 특정 커밋으로 되돌리는 명령어

 

5. git log로 커밋 확인 & rev.txt 파일 확인

 

커밋 변경 이력 취소하기

1. rev.txt  수정 & 커밋

기존 내용 끝에 'e'추가 & 저장

R5 메시지와 함께 커밋

 

2. git log 명령으로 커밋 확인

 

3. R5 커밋 복사

 

4. git revert 명령으로 취소하기

git revert 해당 커밋 주소 -- 커밋 변경 이력 취소 명령어

 

5. 자동으로 커밋 메시지 창 표시됨

필요시에 수정 가능, :wq! 입력하면 메시지 창 꺼짐

 

6. git log 확인

R5 커밋을 revert 한 커밋이 생성됨

R5 커밋도 그대로지만, R5의 수정 내용은 취소됨

 

'DevOps > Github' 카테고리의 다른 글

[Github] VS Code에서 GUI 방식으로 사용하기  (0) 2024.10.14
[Github] Github에서 다른 사람과 소통하기  (1) 2024.10.14
[Github] Github로 협업하기  (0) 2024.10.11
[Github] Branch  (0) 2024.10.11
[Github] Github 시작하기  (5) 2024.10.10