git을 사용하다 보면 add나 commit, push 등을 잘못하여 취소해야 하는 상황이 발생하곤 한다. 그리고 commit 메시지를 수정하거나 GitHub에 잘못 올린 파일을 삭제하는 등 크고 작은 변경사항이 생길 때도 있다. 이러한 상황에서 유용하게 사용할 수 있는 여러 가지 명령어를 정리해보았다.
add 취소하기
HEAD 뒤에 파일명을 적으면 해당 파일의 add만 취소하고, 파일명을 적지 않으면 add된 파일 전체를 unstaged 상태로 되돌린다.
$ git reset HEAD <filename>
commit 취소하기
git log에서 지금까지 수행된 각 commit의 HEAD 번호와 고유한 id를 확인할 수 있다.
$ git log
HEAD~ 뒤에 숫자를 넣으면 마지막 n개의 commit을 취소할 수 있다.
$ git reset <option> HEAD~1 # 마지막 1개의 commit을 취소
id를 사용하면 해당 commit이 발생한 시점으로 되돌릴 수 있다.
$ git reset <option> <commit-sha> # 특정 시점으로 되돌리기
reset 옵션
--soft : commit을 취소하고 해당 파일들을 staged 상태로 워킹 디렉토리에 보존
$ git reset --soft
--mixed : commit을 취소하고 해당 파일들을 unstaged 상태로 워킹 디렉토리에 보존 (기본 옵션)
$ git reset --mixed # (--mixed) 생략 가능
--hard : commit을 취소하고 해당 파일들을 워킹 디렉토리에서 삭제
$ git reset --hard
commit 메시지 수정하기
$ git commit --amend -m "new commit message"
파일 삭제하기
원격 저장소와 로컬 저장소에 있는 파일을 모두 삭제한다.
$ git rm <filename>
원격 저장소에 있는 파일만 삭제하고, 로컬 저장소의 파일은 삭제하지 않는다.
$ git rm --cached <filename>
파일/폴더 이름 변경 및 이동
oldname과 newname에 파일명 혹은 폴더명을 넣어 이름을 변경하거나, path를 넣어 이동시킬 수 있다.
$ git mv <oldname> <newname>
원격 저장소 url 변경하기
GitHub repository 이름을 변경한 경우 다음과 같이 변경된 url을 로컬 저장소에 적용해준다.
$ git remote set-url origin <url>
'Computer' 카테고리의 다른 글
[Git] Git, GitHub 기본 사용법 (0) | 2021.01.14 |
---|---|
마크다운(Markdown) 문법 정리 (0) | 2021.01.08 |
[Linux/Ubuntu] 터미널 명령어 정리 (0) | 2021.01.08 |