서론
Git을 사용하다 보면 잘못된 커밋이나 충돌 등으로 인해 당황스러운 상황이 발생할 수 있다. 이런 상황을 안전하게 복구하기 위해 자주 사용되는 Git 명령어와 사용법을 정리해보았다.
1. git reset : 특정 커밋으로 되돌리기
`git reset`은 잘못된 커밋을 되돌리거나 스테이징된 변경 사항을 취소할 때 유용하다.
- `git reset --soft <커밋 해시>`: 커밋만 되돌리고 변경 사항은 유지한다.
- `git reset --mixed <커밋 해시>`: 커밋과 스테이징을 되돌리고, 변경 사항은 작업 디렉토리에 남긴다.
- `git reset --hard <커밋 해시>`: 커밋, 스테이징, 작업 디렉토리의 변경 사항을 모두 되돌린다. (주의! 복구가 어렵다.)
2. `git revert` : 안전하게 커밋 취소하기
- `git revert`는 취소하려는 커밋의 변경 사항을 반대로 적용해 새로운 커밋으로 기록을 남긴다.
- `git revert <커밋 해시>`: 특정 커밋을 취소한다.
- `git revert --no-commit <커밋 해시>`: 변경 사항을 스테이징 영역에만 적용한다.
3. `git checkout` : 특정 파일이나 커밋 복구하기
`git checkout`은 브랜치 전환이나 파일의 변경 사항을 취소할 때 사용된다.
- `git checkout <브랜치명>`: 해당 브랜치로 이동한다.
- `git checkout <커밋 해시>`: 특정 커밋 상태를 확인한다.
- `git checkout -- <파일명>`: 파일의 변경 사항을 취소한다.
4. `git stash` : 작업 중인 변경 사항 임시 저장
`git stash`는 변경 사항을 임시로 저장하고 작업 디렉토리를 초기 상태처럼 만든다.
- `git stash`: 변경 사항 저장.
- `git stash pop`: 저장된 변경 사항 다시 적용.
- `git stash list`: 저장된 스택 목록 확인.
5. `git reflog` : 이전 명령 이력 확인하기
`git reflog`는 이전 상태로 돌아갈 수 있는 중요한 정보를 제공한다.
- `git reflog`: 최근 실행한 Git 명령 이력을 확인한다.
- `git reset --hard <reflog 해시>`: 기록된 특정 지점으로 복구한다.
6. `git clean` : 추적되지 않는 파일 삭제
`git clean`은 Git이 관리하지 않는 파일을 제거할 때 사용된다.
- `git clean -n`: 삭제할 파일을 미리 확인한다.
- `git clean -f`: 추적되지 않는 파일을 삭제한다.
- `git clean -fd`: 디렉토리까지 삭제한다.
7. `git cherry-pick` : 특정 커밋 가져오기
`git cherry-pick`은 특정 커밋을 선택적으로 다른 브랜치에 적용할 때 유용하다.
- `git cherry-pick <커밋 해시>`: 원하는 커밋을 현재 브랜치에 적용한다.
8. `git merge --abort` : 병합 충돌 취소하기
병합 중 충돌이 발생했다면 `git merge --abort`를 사용해 병합 작업을 취소할 수 있다.
- `git merge --abort`: 병합 도중의 변경 사항을 되돌린다.
9. `git pull --rebase` : 깔끔하게 병합하기
`git pull --rebase`는 원격 브랜치와 동기화할 때 커밋 기록을 정리하며 병합 충돌을 최소화한다.
- `git pull --rebase`: 재배치를 통해 변경 사항을 통합한다.
10. `git log` : 커밋 기록 추적하기
`git log`는 문제가 발생한 커밋을 추적할 때 유용하다.
- `git log`: 커밋 기록 확인.
- `git log --oneline`: 간략한 형식으로 커밋 기록 확인.
주섬주섬
Git 명령어는 강력하지만 실수로 인해 데이터가 손실될 위험도 존재한다. 작업 전에 반드시 중요한 데이터를 백업하고 명령어의 동작을 충분히 이해한 후 실행하는 것이 좋다. 문제 해결 과정에서 위 명령어를 적절히 활용하면 예상치 못한 상황에서도 안정적으로 프로젝트를 관리할 수 있다.
- '커밋 해시'는 각 커밋을 고유하게 식별할 수 있는 값으로, git log 명령어를 사용하면 확인할 수 있다.
- 'reflog 해시'는 git reflog를 통해 확인할 수 있는 명령 기록의 고유 식별자이다. 이를 통해 이전 작업 상태로 돌아갈 수 있다.
참고
반응형
'게임 > 게임 인문학' 카테고리의 다른 글
게임계 복고풍 (0) | 2024.11.23 |
---|---|
게임 재미 기획의 오류 (1) | 2024.11.21 |
게임적 허용 (0) | 2024.11.20 |
게임의 타격감은 어떻게 표현하는 가 (0) | 2024.11.19 |
게임에서 시작하는 클리셰 탐구 (3) | 2024.11.18 |
댓글