전체 되돌리기 브랜치 원격 Stash 히스토리 병합

Git 상황별 명령어 참조

Git은 강력하지만 명령어 구문을 기억하기 어려울 수 있습니다. 특히 자주 사용하지 않는 작업의 경우 더욱 그렇습니다. 이 도구는 실제 Git 상황을 정확한 명령어에 매핑하며, 일반 텍스트 설명과 되돌릴 수 없는 작업에 대한 경고를 제공합니다.

위험한 Git 작업 vs 안전한 Git 작업

일부 Git 작업은 안전하고 되돌릴 수 있습니다 (커밋, 브랜치, stash). 다른 작업은 영구적으로 히스토리를 변경하거나 부주의하게 사용하면 데이터 손실을 일으킬 수 있습니다:

  • 안전: git stash, git branch, git checkout, git merge, git commit
  • 주의 필요: git reset --hard, git push --force, git rebase (히스토리 재작성), git clean -fd
  • 공유 브랜치에서 절대 금지: main/master에 강제 푸시, 공개 커밋 rebase

Git 모범 사례

  • 변경 작업 전에 항상 브랜치를 생성하세요 - main에서 직접 작업하지 마세요
  • 명확하고 설명적인 메시지로 자주 커밋하세요
  • 커밋 전에 git statusgit diff를 사용하세요
  • 공유 브랜치에서는 git reset --hard보다 git revert를 선호하세요
  • 진행 중인 작업을 임시로 저장하려면 git stash를 사용하세요

Git에 대한 자주 묻는 질문

변경 사항을 유지하면서 마지막 Git 커밋을 되돌리려면 어떻게 하나요?

git reset --soft HEAD~1을 사용하면 마지막 커밋을 되돌리면서 모든 변경 사항을 스테이지에 유지합니다. git reset HEAD~1 (mixed 모드, 기본값)을 사용하면 커밋을 되돌리고 변경 사항을 언스테이지하지만 작업 디렉토리에는 유지합니다. 모든 변경 사항을 영구적으로 삭제하려면 git reset --hard HEAD~1을 사용하세요 - 이 작업은 되돌릴 수 없습니다.

로컬 및 원격 브랜치를 삭제하려면 어떻게 하나요?

로컬 브랜치는 git branch -d branch-name (안전, 병합 필요) 또는 git branch -D branch-name (강제 삭제)으로 삭제합니다. 원격 브랜치는 git push origin --delete branch-name으로 삭제합니다. 오래된 원격 추적 참조를 정리하려면 git fetch --prune 또는 git remote prune origin을 실행하세요.

git merge와 git rebase의 차이점은 무엇인가요?

git merge는 두 브랜치를 합치는 새로운 병합 커밋을 생성하면서 전체 히스토리를 보존합니다. git rebase는 다른 브랜치 위에 커밋을 재적용하여 깔끔한 선형 히스토리를 만듭니다. 공개 및 공유 브랜치에는 merge를 사용하세요 - 안전하고 비파괴적입니다. rebase는 병합 전 로컬 기능 브랜치에만 사용하세요. 이미 공유 원격 브랜치에 푸시된 커밋은 절대 rebase하지 마세요 - 히스토리를 다시 작성하여 다른 기여자가 분기된 히스토리를 조정해야 합니다.

마지막 커밋에서 변경된 내용을 보려면 어떻게 하나요?

git show를 사용하면 커밋 메시지, 작성자, 날짜 및 전체 패치를 포함한 가장 최근 커밋의 diff를 볼 수 있습니다. 전체 diff 없이 요약만 보려면 git show --stat을 사용하세요. 두 특정 커밋을 비교하려면 git diff commit1 commit2를 사용하세요. 특정 파일의 히스토리를 보려면 git log --follow -p -- filename을 사용하세요.

관련 개발자 도구