[Git] revert / reset / branch

Onam Kwon·2022년 6월 15일
0

Git

목록 보기
2/4
post-thumbnail

Git

  • git revert: 해당 커밋을 취소하고 기존 변경사항을 유지하는 커밋을 새로 생성한다.
  • git reset: 해당 커밋으로 돌아가며 해당 커밋보다 최신의 커밋은 로그상에서 삭제한다.
  • git branch: 작업공간. 같은 디렉토리에서 동시에 여러개의 작업 공간을 가질 수 있으며 나중에 합칠수도 있다.

git commit

# Making a file named `one`
touch one

# Listing files
ls

# Show working tree status
git status

# Add all file contents to the index
git add . 

# Record changes to the repository
git commit -m 'v1'

# Show commit logs
# --graph: Draw a text-based graphical representation of the commit history on the left hand side of the output.
git log --graph
  • 위의 명령어를 이용해 one파일을 추가해 준 후 첫번째 커밋을 해준다.
  • 완료한 후 로그를 보면 위 사진처럼 나온다.

touch two
git add .
git commit -m 'v2'
git log --graph
  • 같은 방식으로 two라는 이름을 가진 파일을 생성 후 2번째 커밋을 해준다.
  • 같은 방식으로 three'라는 이름을 가진 파일을 생성 후 v3이라는 이름으로 커밋해준다.
    • 과정 미첨부.

git revert

  • 3번째 커밋까지 진행한 후 최종 디렉토리와 로그의 상태는 위와 같다.

git revert {commit_id}

  • commit_id취소하며 + 기존에 변경사항을 유지하는 커밋을 새로 만든다.
    • 예를 들어 2번째 커밋으로 revert 한다면 2번째 커밋내용을 취소하고 기존 변경사항을 추가하는 새로운 커밋을 만든다.
  • ▼예시▼

# 로그 확인을 통해 커밋 아이디 복사
git log --graph

ls

# 복사한 커밋 아이디 붙혀넣기
git revert {commit_id}
  • 처음엔 v1 v2 v3 세개의 커밋이 존재했으며 ls명령어를 통해 one two three 세개의 파일이 존재함을 확인할 수 있었다.
  • git revert {v2_commit_id}명령어를 사용해준다.

  • 위와 같은 화면이 나오는데 wq명령어로 저장확인을 해주면 v2커밋을 취소하고 기존 변경사항을 반영한 상태인 one three파일만 존재함을 확인할 수 있다.

  • 마지막으로 로그 확인을 통해 새로운 커밋이 생겼음을 확인할 수 있다.

git reset

  • git reset {commit_id}는 해당 커밋보다 최신의 커밋들을 다 지우고 해당 커밋으로 이동한다.
  • v3커밋을 예로들면 git log명령어를 통해 v3커밋의 아이디를 복사한 후 git reset {v3_commit_id} --hard 명령어를 사용해 주면 된다.
  • 위의 로그에서 v3커밋보다 최신 커밋인 Revert "v2"커밋은 지워지게 된다.

git log --graph

git reset {v3_commit_id} --hard

git log --graph
  • git log --graph 명령어를 통해 4번째 커밋이 사라졌음을 확인할 수 있다.
  • 최종적으로 남은 파일은 v3커밋으로 돌아갔으므로 one two three 세개의 파일이 존재한다.

git branch

  • git branch: 브랜치 목록 나열.
  • git branch {branch_name}: 현재 브랜치를 기준으로 새로운 브랜치 생성.
  • git checkout {branch_name}: 해당 브랜치로 작업공간 변경.

  • 위의 사진에서 ls명령어를 통해 one two three파일 세개가 존재한다.
  • branch를 통해 다른 작업공간을 가질 수 있다.
# Listing all branches.
git branch

  • 명령어를 입력하면 위의 화면이 나온다, main 브랜치만 존재함을 알 수 있다.
    • q를 입력하면 빠져나올 수 있다.
  • git branch 명령어는 현재 branch의 목록들을 나열해준다.
# Creating a new branch named second
git branch second

  • git beranch second 명령어를 입력하면 second라는 이름을 가진 branch를 하나 생성한다.

  • 생성 후 git checkout second 명령어로 second라는 이름을 가진 브랜치로 이동이 가능하다.
  • 이동 후 ls명령어를 통해 현재 디렉토리의 파일들을 나열하면 main 브랜치와 같다는걸 확인할 수 있다.
    • main브랜치와 second브랜치의 파일들은 현재 같은 상태다.
    • second브랜치의 파일을 수정, 삭제, 추가해도 main브랜치에 영향이 가지 않는다.
    • 반대로 main브랜치의 파일을 수정, 삭제, 추가해도 second브랜치에 영향이 가지 않는다.
  • q를 입력하면 나올 수 있다.
profile
권오남 / Onam Kwon

0개의 댓글