ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git Commit 변경 명령어 정리
    CS/Git 2023. 6. 29. 02:12
    반응형

     

    ① Git Commit --Amend

    git add sample.txt (새로 Commit할 변경된 파일을 지정, 다시 add 시켜줌)
    git commit --amend
    git commit --amend -m "Commit Message" (Commit Message를 변경시키고 싶을 때 사용하는 옵션)
    git push -f (Local과 원격 저장소의 Commit History가 다른 걸 맞춰주기 위해서는 강제로 push할 필요가 있음, 원격 저장소에서 force push를 금지해 둔 경우에는 사용할 수 없음)

     

        같은 Branch상에서 마지막에 Commit한 내용을 덮어쓰기할 때 사용하는 명령어이다. 명령어 입력과 동시에 터미널이 vi편집 모드로 들어가게 된다. 출력된 내용을 편집하여 :wp 입력하고 빠져나와 push해주면 git log로 Commit 이 변경된 것을 확인할 수 있다.

     

    ▶ 주로 필요한 상황

    • 누락된 파일을 새로 추가하거나 기존의 파일을 업데이트 해야할 때
    • 이전의 Commit Message를 변경하고 싶을 때

     

    ② Git Revert [Commit Hash값]

    git revert [Commit Hash값]
    git revert HEAD (가장 최근에 이뤄진 Commit을 되돌린다는 의미, HEAD는 현재 위치를 나타냄)

     

        이전에 특정 Commit을 지정하여 되돌리는 명령어이다. git log로 Commit History를 확인하여 나오는 Commit Hash값을 지정하여 이전에 Commit 상태로 되돌릴 수 있다.

     

    ▶ 주로 필요한 상황

    • 이전에 작성한 Commit을 안전하게 지우고 싶을 때

     

    ③ Git Reset --hard [Commit Hash값]

    git reset --hard [Commit Hash값] 
    git reset --hard HEAD~ (직전의 Commit 상태로 HEAD를 옮겨 돌아간다는 의미)
    git reset --hard HEAD~~ ('HEAD~2'로 쓸수도 있음, 현재 상태에서 2세대 이전의 Commit 상태로 HEAD를 옮겨 돌아간다는 의미)
    git reset --hard ORIG_HEAD (reset 실행 전 상태로 돌아가고 싶을 때 사용)

     

        더 이상 필요없어진 Commit들을 버리고 특정 버전으로 되돌아 갈 수 있는 명령어이다. 

     

    ④ Git Rebase -I [Commit Hash값]

    git rebase -i [Commit Hash값] 
    git rebase --interactive [Commit Hash값] 
    git rebase -i HEAD~  (직전의 Commit 상태로 HEAD를 옮겨 돌아간다는 의미)
    git add sample.txt
    git commit --amend
    git rebase --continue
    git rebase --abort (rebase 작업 중지 옵션)

     

        rebase 명령어에 -i 옵션을 지정하여 Commit을 다시 쓰거나 다른 Commit과 바꿔 넣거나 특정 위치의 Commit을 삭제하거나 여러 Commit을 하나로 통합하는 작업을 할 수 있다. 명령어 입력시 지정한 Commit 위치에서 부터 현재까지의 Commit이 표시되며 vi편집모드로 들어갈 수 있다. 이해를 돕기위해 예시 이미지를 첨부한다.

     

    https://backlog.com/git-tutorial/kr/stepup/stepup7_6.html

     

    바꾸고자 하는 Commit 내역 줄의 앞의 부분의 'pick'을 'edit'으로 수정하고 :wq 입력 후 빠져나와 다시 git add, git commit --amend를 실행하여 변경사항을 저장한다. Commit 작업 종료를 알리기 위해 마무리로  git rebase --continue를 실행해준다.

     

    ▶ 주로 필요한 상황

    • push 하기 전에 이전의 Commit 내용을 정리하고자 할 때
    • 그룹으로 묶을 수 있는 Commit들을 알기 쉽게 하나로 통합하려고 할 때
    • 이전 Commit에 누락된 파일들을 나중에 추가하고자 할 때

     


     

    ¶ 그외 명령어

     

      위의 변경된 Commit 사항들을 원격저장소에 반영시키기 위해서 push할 필요가 있다.

     

    git push --f origin // origin branch에 강제로 push한다는 의미

     

     

      위의 git rebase 설명에서 여러 Commit을 하나로 통합할 수도 있다고 설명했다. Branch 안의 Commit을 하나로 모아 통합 Branch에 병합하는 명령어를 알아보자.

     

    git rebase -i [Commit Hash 값]
    git rebase -i HEAD

     

    명령어 입력 시 출력되는 내용의 vi 편집모드로 들어가서 통합하려는 Commit중 최근 목록의 앞부분의 'pick'을 'squash'로 바꾸어 주면 이전의 Commit과 통합된다.

     

    반응형

    'CS > Git' 카테고리의 다른 글

    Git Branch 개념설명및 명령어 정리  (0) 2023.06.28
    Git 초기설정및 명령어 정리  (0) 2023.06.19
Designed by Tistory.