(git & GitHub) Roll back the project

Mirrer·2022년 5월 5일
0

git & GitHub

목록 보기
2/15
post-thumbnail

프로젝트의 변경사항들을 버전에 담기

add, commit을 이용하여 변경사항 관리

git은 프로젝트의 변경사항들을 파일 즉 하나의 공간에 넣어 전송한다.

이 때 하나 혹은 모든파일을 담아 전송할 수 있다.

변경사항을 확인해보면 다음과 같다.

현재 3개의 파일이 Untracked files로 나타난다.

Untracked files추적하지 않는(Untracked) 즉 파일로 git의 관리에 들어간 적 없는 파일을 의미한다.

다음 파일들을 전송하기 위해 버전에 담는다. 이 때 하나 혹은 모든 파일을 담을 수 있다.

add

  • 하나의 파일만 담기
git add 파일명
  • 모든 파일을 담기
git add .

파일들을 전부 버전에 담으면 전송할(commit) 준비가 완료된다.


commit

commit은 버전에 담은 파일을 전송한다.

이 때 커밋 메세지 또한 함께 전송하여 각각의 commit을 구분할 수 있다.

git commit -m "FIRST COMMIT"

위에서 버전에 담은 파일들을 commit하면 다음과 같다.

만약 새로 추가된(untracked) 파일이 없을 때addcommit을 한번에 수행할 수 있다.

git commit -am "(메시지)"

commit 이 후 git log를 사용하면 최신순으로 commit history를 확인할 수 있다.

git log


과거로 돌아가는 두 가지 방법

Reset, Revert를 이용하여 과거의 프로젝트로 이동

git에서는 Reset, Revert를 이용하여 과거의 시점으로 이동한다.

  • reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지운다.

  • revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행한다.


reset

git log, 소스트리(GUI)를 사용해 현재 commit상태를 확인해보면 다음과 같다.

총 5가지의 commit이 발생하였고 각각의 commit은 고유한 커밋 해시를 가지고 있다.

이 때 reset을 사용하여 1단계 전인 Add team Cheetas단계로 이동해보겠다.

reset은 다음과 같은 방법으로 사용한다.

git reset --hard (돌아갈 커밋 해시)

위의 코드를 입력하고 소스트리(GUI)를 확인해보면 바로 전 commit단계인 Add team Cheetas단계로 이동한 것을 확인할 수 있다.

또한 reset뒤에 커밋 해시가 없으면 마지막 커밋을 가리키기 때문에 reset을 하기 전 시점으로 복원할수도 있다.

git reset --hard

revert

reset내가 돌아갈 지점의 커밋 해쉬를 입력했지만 revert취소할 커밋 해쉬를 입력한다.

git revert (되돌릴 커밋 해시)

현재 commit상태를 확인해보면 다음과 같다.

여기서 revert를 사용해 2단계 전 Add George to Tigers의 커밋 해쉬를 입력한다.

git revert 9370f7292ca61d53cc40b95cb240ad1898c5bd47

실행결과를 확인해보면 revertreset과 다른 2가지 차이점이 발생한다.

  • Add George to Tigers의 커밋의 단계를 반대로 수행하는 새로운 commit이 생성된것을 확인할 수 있다.

  • reset은 되돌아가는 시점 이후의 commit을 모두 삭제하지만 revert는 삭제하지 않는다.

다음 명령어를 사용하면 revert를 한뒤 commit을 사용자가 수동적으로 할 수 있다.

git revert --no-commit (되돌릴  커밋 해시)

또한 revert전 단계 시점 으로 되돌아가고 싶다면 앞서 배운 reset을 활용할 수 있다.

git reset --hard

참고 자료

Book - Git
깃 끝판왕 강좌 제대로 파는 Git & GitHub - 얄팍한 코딩사전 Youtube

profile
memories Of A front-end web developer

0개의 댓글