728x90

 

 

git revert

이미 커밋한 내용 되돌리기
(git revert 후 push까지 해줘야 커밋이 저장소로 올라간다)

git revert [commit hash번호]

 

 

※ git reset vs :git revert

reset은 해당 커밋 취소
Revert는 해당 커밋 위에 다시 커밋으로 덮어씌우는 것. 즉 커밋 이력이 남음

 

 

git revert HEAD

HEAD commit으로 되돌리는 커밋
git revert [commit id]에서 commit id대신 HEAD로 대체하여 자동으로 commit id를 적는 개념

 

 

git revert HEAD^

HEAD commit 바로 전 커밋으로 되돌리는 커밋

git revert HEAD   // HEAD로 돌리는 커밋
git revert HEAD^  // HEAD 바로 전 commit id로 돌리는 커밋

git log나 소스트리 보면 HEAD가 어딘지 파악가능
아래에서 HEAD는 6e32d35 커밋을 말하고 HEAD^는 그 아래인 fcce4d4를 의미함

 

 

git revert --no-commit

revert한 결과를 stage 상태만 유지하고, commit 하지 않는 명령어

git revert --no-commit [commit hash번호]

 

 

여러 커밋내용 revert 하기

git revert [commit hash번호]..[commit hash번호]

ex)

git revert [1번커밋해쉬]..[2번커밋해쉬]
git log // git log 찍으면

Revert "2번커밋해쉬"
Revert "1번커밋해쉬"

 

 

참고자료
https://kyounghwan01.github.io/blog/etc/git/git-reset-revert/#reset
https://www.lainyzine.com/ko/article/git-revert-reverting-commit-in-git-repository/

 

 

728x90
반응형

'Git & GitHub' 카테고리의 다른 글

[Git] git rm 정리  (0) 2023.03.12
[Git] git revert -m : 머지 커밋(Merge commit)을 되돌리는 방법  (0) 2023.03.08
[Git] git add -p  (0) 2023.03.01
[Git] git log 정리  (0) 2023.02.17
[Git] git diff 정리  (0) 2023.02.11
728x90

 

git diff 코드 정리

git diff
git diff HEAD
git diff --staged
git diff [filename]
git diff [branchname1]..[branchname2]

 

 

 

git diff란?

commit이나 branch 사이에 다른 점

파일(Working Directory)와 Repository 사이에 다른 점을 보여주는 명령어

출처 : [Git] git diff 한 번에 정리하기 — Dev World (kotlinworld.com)

 

 

git diff와 git diff HEAD 차이

1) git diff

Working Directory와 Staging Area 사이의 차이를 확인하기 위해 사용

  • caution : git add로 Staging Area로 넘어갔으면 git diff에서 보여주지 않음

 

2) git diff HEAD

Working Directory와 Staging Area 의 변경사항 모두를 Repository의 HEAD 커밋과 비교함

Staging Area에 올라간 내용은 물론 현재 작업 중인 내용(Working Directory) 모두 Repository의 HEAD와 비교됨

  • Staging Area로 올라가 안보인 변경사항은 git diff HEAD로 보인다

출처 : [Git] git diff 한 번에 정리하기 — Dev World (kotlinworld.com)

 

 

git diff 메세지 내용

상황 : test.txt에 원래 데이터 123에서 456을 추가함

  • 1번 ---a : 변경 전 파일 지칭명
  • 2번 +++b : 변경 후 파일 지칭명
  • 3번 test.text : 변경 전 파일명
  • 4번 test.text : 변경 후 파일명
  • 5번 - : 변경 전 파일 지칭
  • 6번 1,3 : 코드 1번 line 기준으로 3번 line까지 변경됐다는 의미
  • 7번 + : 변경 후 파일 지칭
  • 8번 1,6 : 코드 1번 line 기준으로 6번 line까지 변경됐다는 의미
  • 9번 123 : 변경 전 파일의 코드 1-3번라인의 내용
  • 10번 +4 +5 + 6 : 변경 전 파일(-) 1-3번 라인 뒤에 변경 후, 파일(+) 4-6번라인이 추가됐다는 의미

 

 

 

 

 

 

 

git diff --staged

git diff --staged는 Staging Area와 Repository HEAD 커밋 사이의 변경사항 확인을 위해 사용

커밋 전 사용되는 명령어로 가장 많이 씀

Staging Area에 올라간 변경사항만 Repository의 HEAD 커밋과 비교되며, 현재 작업 중인 Working Directory에서 git add되지 않은 변경된 사항은 반영x

※ git diff --staged와 git diff --cached 같다

출처 : [Git] git diff 한 번에 정리하기 — Dev World (kotlinworld.com)

 

 

git diff [option] [filename]

git add 파일명처럼 특정 파일에 대한 변경사항만 확인할 때 사용

git diff [option] [filename]

 

 

git diff [branch1]..[branch2]

브랜치 간 변경사항 확인

git diff [branch1]..[branch2] 

 

 

 

※ 그냥 git add 하면 git diff가 안나오는데 왜그럴까?

git diff는 Working Directory와 Staging Area 사이의 차이를 보여주는데,

git add를 통해 Staging Area에 변경 사항이 올라가버렸기 때문

 

 

 

 

참고자료

https://kotlinworld.com/278#git%--diff�%--%--%--git%--diff%--HEAD%--�%A-�%--�%-D%B-�%-A%A-�%--%-C%--�%B-%--�%B-�%--�%--��%--�%--�%--%--�%-D%B-

 

 

728x90
반응형

+ Recent posts