사용자 도구

사이트 도구


wiki:it:github:troubleshooting

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
wiki:it:github:troubleshooting [2025/07/30 06:43] – 만듦 - 바깥 편집 127.0.0.1wiki:it:github:troubleshooting [2025/07/31 05:08] (현재) – [2) 온라인 리소스] syjang0803
줄 3: 줄 3:
 **Git/GitHub 사용 중 문제가 생겼나요?** 😰 걱정하지 마세요! 모든 개발자가 겪는 일반적인 문제들입니다. 이 가이드는 초보자도 쉽게 따라할 수 있도록 단계별로 문제 해결 방법을 설명합니다. 차근차근 따라해보세요! **Git/GitHub 사용 중 문제가 생겼나요?** 😰 걱정하지 마세요! 모든 개발자가 겪는 일반적인 문제들입니다. 이 가이드는 초보자도 쉽게 따라할 수 있도록 단계별로 문제 해결 방법을 설명합니다. 차근차근 따라해보세요!
  
-===== 🆘 문제 해결 기본 원칙 ===== 
  
-==== 당황하지 마세요! ==== +---- 
-- 🔒 **Git은 안전합니다**: 거의 모든 상황에서 데이터를 복구할 수 있습니다 +===== 1. 🆘 문제 해결 기본 원칙 ===== 
-- 📚 **기록이 남습니다**: Git은 모든 변경사항을 기록하므로 되돌릴 수 있습니다 +==== 1) 당황하지 마세요! ==== 
-- 🤝 **도움을 받을 수 있습니다**: 전 세계 개발자들이 같은 문제를 겪고 해결했습니다+  - 🔒 **Git은 안전합니다**: 거의 모든 상황에서 데이터를 복구할 수 있습니다 
 +  - 📚 **기록이 남습니다**: Git은 모든 변경사항을 기록하므로 되돌릴 수 있습니다 
 +  - 🤝 **도움을 받을 수 있습니다**: 전 세계 개발자들이 같은 문제를 겪고 해결했습니다
  
-==== 문제 해결 순서 ==== +---- 
-1. **상황 파악하기**: 정확히 무엇이 문제인지 확인 +==== 2) 문제 해결 순서 ==== 
-2. **오류 메시지 읽기**: 오류 메시지에 해결 방법이 있는 경우가 많음 +  **상황 파악하기**: 정확히 무엇이 문제인지 확인 
-3. **상태 확인하기**: `git status`로 현재 상태 확인 +  **오류 메시지 읽기**: 오류 메시지에 해결 방법이 있는 경우가 많음 
-4. **단계별 해결**: 한 번에 하나씩 차근차근 해결+  **상태 확인하기**: ''git status''로 현재 상태 확인 
 +  **단계별 해결**: 한 번에 하나씩 차근차근 해결
  
-===== 🚨 가장 자주 발생하는 문제들 ===== +===== 2. 🚨 가장 자주 발생하는 문제들 ===== 
- +---- 
-==== 1커밋 메시지를 잘못 작성했을 때 ====+==== 1커밋 메시지를 잘못 작성했을 때 ====
  
 **문제 상황:** **문제 상황:**
-<code bash>+ 
 +<file bash>
 git commit -m "ㅇㅇ"  # 이런 식으로 대충 작성했을 때 git commit -m "ㅇㅇ"  # 이런 식으로 대충 작성했을 때
-</code>+</file>
  
 **해결 방법:** **해결 방법:**
  
 **방법 1: 아직 push하지 않은 경우 (가장 쉬움)** **방법 1: 아직 push하지 않은 경우 (가장 쉬움)**
-<code bash>+ 
 +<file bash>
 # 마지막 커밋 메시지 수정 # 마지막 커밋 메시지 수정
 git commit --amend -m "로그인 기능 구현 완료" git commit --amend -m "로그인 기능 구현 완료"
줄 34: 줄 38:
 # 결과 확인 # 결과 확인
 git log --oneline -1 git log --oneline -1
-</code>+</file>
  
 **방법 2: 이미 push한 경우** **방법 2: 이미 push한 경우**
-<code bash>+ 
 +<file bash>
 # 주의: 이 방법은 혼자 작업할 때만 사용하세요! # 주의: 이 방법은 혼자 작업할 때만 사용하세요!
 git commit --amend -m "로그인 기능 구현 완료" git commit --amend -m "로그인 기능 구현 완료"
 git push --force-with-lease origin main git push --force-with-lease origin main
-</code>+</file>
  
 **💡 예방법:** **💡 예방법:**
-- 커밋 메시지를 의미있게 작성하는 습관 기르기 +  - 커밋 메시지를 의미있게 작성하는 습관 기르기 
-- 커밋 전에 `git status`로 한 번 더 확인하기+  - 커밋 전에 ''git status''로 한 번 더 확인하기
  
-==== 2잘못된 파일을 커밋했을 때 ====+---- 
 +==== 2잘못된 파일을 커밋했을 때 ====
  
 **문제 상황:** **문제 상황:**
-<code bash>+ 
 +<file bash>
 git add . git add .
 git commit -m "기능 추가" git commit -m "기능 추가"
 # 이후에 비밀번호 파일이나 불필요한 파일이 포함되었다는 것을 발견 # 이후에 비밀번호 파일이나 불필요한 파일이 포함되었다는 것을 발견
-</code>+</file>
  
 **해결 방법:** **해결 방법:**
  
 **방법 1: 아직 push하지 않은 경우** **방법 1: 아직 push하지 않은 경우**
-<code bash>+ 
 +<file bash>
 # 마지막 커밋 취소 (변경사항은 유지) # 마지막 커밋 취소 (변경사항은 유지)
 git reset --soft HEAD~1 git reset --soft HEAD~1
줄 70: 줄 78:
 git add . git add .
 git commit -m "기능 추가 (비밀번호 파일 제외)" git commit -m "기능 추가 (비밀번호 파일 제외)"
-</code>+</file>
  
 **방법 2: 이미 push한 경우** **방법 2: 이미 push한 경우**
-<code bash>+ 
 +<file bash>
 # 문제 파일을 Git에서 제거 (파일은 유지) # 문제 파일을 Git에서 제거 (파일은 유지)
 git rm --cached password.txt git rm --cached password.txt
줄 84: 줄 93:
 git commit -m "비밀번호 파일 제거 및 .gitignore 추가" git commit -m "비밀번호 파일 제거 및 .gitignore 추가"
 git push origin main git push origin main
-</code>+</file>
  
 **💡 예방법:** **💡 예방법:**
-`.gitignore파일을 미리 설정하기 +  %% .gitignore %% 파일을 미리 설정하기 
-`git add .대신 `git add 파일명`으로 하나씩 추가하기+  ''git add .'' 대신 ''git add 파일명''으로 하나씩 추가하기
  
-==== 3Push가 거부될 때 ====+---- 
 +==== 3Push가 거부될 때 ====
  
 **문제 상황:** **문제 상황:**
-<code>+ 
 +<file>
 ! [rejected] main -> main (non-fast-forward) ! [rejected] main -> main (non-fast-forward)
 error: failed to push some refs to 'https://github.com/username/repository.git' error: failed to push some refs to 'https://github.com/username/repository.git'
줄 99: 줄 110:
 hint: its remote counterpart. Integrate the remote changes (e.g. hint: its remote counterpart. Integrate the remote changes (e.g.
 hint: 'git pull ...') before pushing again. hint: 'git pull ...') before pushing again.
-</code>+</file>
  
 **원인:** GitHub에 내가 모르는 새로운 커밋이 있음 (다른 컴퓨터에서 작업했거나 팀원이 작업한 경우) **원인:** GitHub에 내가 모르는 새로운 커밋이 있음 (다른 컴퓨터에서 작업했거나 팀원이 작업한 경우)
줄 106: 줄 117:
  
 **1단계: 상황 확인** **1단계: 상황 확인**
-<code bash>+ 
 +<file bash>
 # 현재 상태 확인 # 현재 상태 확인
 git status git status
줄 116: 줄 128:
 git log --oneline origin/main..HEAD  # 내가 추가한 커밋들 git log --oneline origin/main..HEAD  # 내가 추가한 커밋들
 git log --oneline HEAD..origin/main  # 원격에 있는 새로운 커밋들 git log --oneline HEAD..origin/main  # 원격에 있는 새로운 커밋들
-</code>+</file>
  
 **2단계: 최신 코드 받아오기** **2단계: 최신 코드 받아오기**
-<code bash>+ 
 +<file bash>
 # 원격 저장소의 최신 코드 받아오기 # 원격 저장소의 최신 코드 받아오기
 git pull origin main git pull origin main
줄 125: 줄 138:
 # 충돌이 없으면 자동으로 병합됨 # 충돌이 없으면 자동으로 병합됨
 # 충돌이 있으면 해결 후 커밋 # 충돌이 있으면 해결 후 커밋
-</code>+</file>
  
 **3단계: 다시 업로드** **3단계: 다시 업로드**
-<code bash>+ 
 +<file bash>
 git push origin main git push origin main
-</code>+</file>
  
 **💡 예방법:** **💡 예방법:**
-- 작업 시작 전 항상 `git pull origin main실행하기 +  - 작업 시작 전 항상 ''git pull origin main'' 실행하기 
-- 자주 push하여 충돌 가능성 줄이기+  - 자주 push하여 충돌 가능성 줄이기
  
-==== 4브랜치 이동 시 "변경사항이 있다" 오류 ====+---- 
 +==== 4브랜치 이동 시 "변경사항이 있다" 오류 ====
  
 **문제 상황:** **문제 상황:**
-<code>+ 
 +<file>
 error: Your local changes to the following files would be overwritten by checkout: error: Your local changes to the following files would be overwritten by checkout:
  index.html  index.html
 Please commit your changes or stash them before you switch branches. Please commit your changes or stash them before you switch branches.
-</code>+</file>
  
 **원인:** 현재 브랜치에서 수정한 파일이 있는데 커밋하지 않고 다른 브랜치로 이동하려고 할 때 **원인:** 현재 브랜치에서 수정한 파일이 있는데 커밋하지 않고 다른 브랜치로 이동하려고 할 때
줄 150: 줄 166:
  
 **방법 1: 변경사항을 커밋하기 (추천)** **방법 1: 변경사항을 커밋하기 (추천)**
-<code bash>+ 
 +<file bash>
 # 현재 작업 내용 확인 # 현재 작업 내용 확인
 git status git status
줄 161: 줄 178:
 # 이제 브랜치 이동 가능 # 이제 브랜치 이동 가능
 git switch other-branch git switch other-branch
-</code>+</file>
  
 **방법 2: 임시 저장 (stash) 사용하기** **방법 2: 임시 저장 (stash) 사용하기**
-<code bash>+ 
 +<file bash>
 # 변경사항 임시 저장 # 변경사항 임시 저장
 git stash git stash
줄 174: 줄 192:
 git switch original-branch git switch original-branch
 git stash pop git stash pop
-</code>+</file>
  
 **방법 3: 변경사항 버리기 (주의!)** **방법 3: 변경사항 버리기 (주의!)**
-<code bash>+ 
 +<file bash>
 # 주의: 이 방법은 변경사항을 완전히 삭제합니다! # 주의: 이 방법은 변경사항을 완전히 삭제합니다!
 git checkout -- . git checkout -- .
줄 183: 줄 202:
 # 이제 브랜치 이동 가능 # 이제 브랜치 이동 가능
 git switch other-branch git switch other-branch
-</code>+</file>
  
-==== 5머지 충돌 (Merge Conflict) ====+---- 
 +==== 5머지 충돌 (Merge Conflict) ====
  
 **문제 상황:** **문제 상황:**
-<code>+ 
 +<file>
 Auto-merging index.html Auto-merging index.html
 CONFLICT (content): Merge conflict in index.html CONFLICT (content): Merge conflict in index.html
 Automatic merge failed; fix conflicts and then commit the result. Automatic merge failed; fix conflicts and then commit the result.
-</code>+</file>
  
 **원인:** 같은 파일의 같은 부분을 서로 다르게 수정했을 때 **원인:** 같은 파일의 같은 부분을 서로 다르게 수정했을 때
줄 199: 줄 220:
  
 **1단계: 충돌 파일 확인** **1단계: 충돌 파일 확인**
-<code bash>+ 
 +<file bash>
 # 충돌 상태 확인 # 충돌 상태 확인
 git status git status
줄 205: 줄 227:
 # 충돌 파일 내용 보기 # 충돌 파일 내용 보기
 cat index.html cat index.html
-</code>+</file>
  
 **2단계: 충돌 마커 이해하기** **2단계: 충돌 마커 이해하기**
-<code html>+ 
 +<file html>
 <!DOCTYPE html> <!DOCTYPE html>
 <html> <html>
줄 219: 줄 242:
 </head> </head>
 </html> </html>
-</code>+</file>
  
 **💡 충돌 마커 의미:** **💡 충돌 마커 의미:**
-`<<<<<<< HEAD`: 현재 브랜치의 내용 +  %%<<<<<<< HEAD%%: 현재 브랜치의 내용 
-`=======`: 구분선 +  %%=======%%: 구분선 
-`>>>>>>> feature-login`: 병합하려는 브랜치의 내용+  %%>>>>>>> feature-login%%: 병합하려는 브랜치의 내용
  
 **3단계: 충돌 해결** **3단계: 충돌 해결**
-<code bash>+ 
 +<file bash>
 # 에디터로 파일 수정 # 에디터로 파일 수정
 nano index.html nano index.html
줄 233: 줄 257:
 # 충돌 마커 제거하고 원하는 내용으로 수정 # 충돌 마커 제거하고 원하는 내용으로 수정
 # 예: <title>메인 페이지 - 로그인</title> # 예: <title>메인 페이지 - 로그인</title>
-</code>+</file>
  
 **4단계: 병합 완료** **4단계: 병합 완료**
-<code bash>+ 
 +<file bash>
 # 수정된 파일 추가 # 수정된 파일 추가
 git add index.html git add index.html
줄 245: 줄 270:
 # 결과 확인 # 결과 확인
 git log --oneline --graph git log --oneline --graph
-</code>+</file>
  
-===== 🔐 인증 관련 문제 ===== +===== 3. 🔐 인증 관련 문제 ===== 
- +---- 
-==== 6. GitHub 인증 실패 ====+==== 1) GitHub 인증 실패 ====
  
 **문제 상황:** **문제 상황:**
-<code>+ 
 +<file>
 remote: Support for password authentication was removed on August 13, 2021. remote: Support for password authentication was removed on August 13, 2021.
 remote: Please use a personal access token instead. remote: Please use a personal access token instead.
 fatal: Authentication failed for 'https://github.com/username/repository.git/' fatal: Authentication failed for 'https://github.com/username/repository.git/'
-</code>+</file>
  
-**원인:** GitHub가 2021년부터 비밀번호 인증을 중단함+**원인:** GitHub가 2021년부터 비밀번호 인증 중단함
  
 **해결 방법:** **해결 방법:**
줄 265: 줄 291:
  
 **1단계: 토큰 생성** **1단계: 토큰 생성**
-1. GitHub 로그인 → Settings → Developer settings → Personal access tokens +  - GitHub 로그인 → Settings → Developer settings → Personal access tokens 
-2. "Generate new token (classic)클릭 +  - ''Generate new token (classic)'' 클릭 
-3. 토큰 이름 입력 (예: "내 컴퓨터"+  토큰 이름 입력 (예: ''내 컴퓨터''
-4. 권한 선택 (repo 체크) +  권한 선택 (repo 체크) 
-5. "Generate token클릭 +  - ''Generate token'' 클릭 
-6. 생성된 토큰 복사 (한 번만 보여줌!)+  생성된 토큰 복사 (한 번만 보여줌!)
  
 **2단계: 토큰 사용** **2단계: 토큰 사용**
-<code bash>+ 
 +<file bash>
 # Git 명령어 실행 시 비밀번호 대신 토큰 입력 # Git 명령어 실행 시 비밀번호 대신 토큰 입력
 git push origin main git push origin main
 # Username: your-github-username # Username: your-github-username
 # Password: [여기에 토큰 입력] # Password: [여기에 토큰 입력]
-</code>+</file>
  
 **방법 2: SSH 키 사용 (더 안전)** **방법 2: SSH 키 사용 (더 안전)**
  
 **1단계: SSH 키 생성** **1단계: SSH 키 생성**
-<code bash>+ 
 +<file bash>
 # SSH 키 생성 # SSH 키 생성
-ssh-keygen -t ed25519 -C "[email protected]"+ssh-keygen -t ed25519 -C ''[email protected]''
  
 # 기본 설정으로 Enter 3번 입력 # 기본 설정으로 Enter 3번 입력
 # 키 파일 위치: ~/.ssh/id_ed25519 # 키 파일 위치: ~/.ssh/id_ed25519
-</code>+</file> 
 + 
 +**2단계: SSH 키 GitHub에 등록**
  
-**2단계: SSH 키를 GitHub에 등록** +<file bash>
-<code bash>+
 # 공개 키 내용 복사 # 공개 키 내용 복사
 cat ~/.ssh/id_ed25519.pub cat ~/.ssh/id_ed25519.pub
-</code>+</file>
  
-1. GitHub → Settings → SSH and GPG keys +  - GitHub → Settings → SSH and GPG keys 
-2. "New SSH key클릭 +  - ''New SSH key'' 클릭 
-3. 제목 입력하고 키 내용 붙여넣기 +  제목 입력하고 키 내용 붙여넣기 
-4. "Add SSH key클릭+  - ''Add SSH key'' 클릭
  
 **3단계: 원격 저장소 URL 변경** **3단계: 원격 저장소 URL 변경**
-<code bash>+ 
 +<file bash>
 # HTTPS에서 SSH로 변경 # HTTPS에서 SSH로 변경
 git remote set-url origin [email protected]:username/repository.git git remote set-url origin [email protected]:username/repository.git
줄 309: 줄 339:
 # 확인 # 확인
 git remote -v git remote -v
-</code> +</file
- +===== 4. 🗂️ 파일 관리 문제 ===== 
-===== 🗂️ 파일 관리 문제 ===== +---- 
- +==== 1) 파일을 실수로 삭제했을 때 ====
-==== 7. 파일을 실수로 삭제했을 때 ====+
  
 **문제 상황:** **문제 상황:**
-<code bash>+ 
 +<file bash>
 rm important-file.txt  # 실수로 중요한 파일 삭제 rm important-file.txt  # 실수로 중요한 파일 삭제
-</code>+</file>
  
 **해결 방법:** **해결 방법:**
  
 **방법 1: 아직 커밋하지 않은 경우** **방법 1: 아직 커밋하지 않은 경우**
-<code bash>+ 
 +<file bash>
 # 마지막 커밋 상태로 파일 복원 # 마지막 커밋 상태로 파일 복원
 git checkout -- important-file.txt git checkout -- important-file.txt
줄 329: 줄 360:
 # 또는 특정 커밋에서 복원 # 또는 특정 커밋에서 복원
 git checkout HEAD -- important-file.txt git checkout HEAD -- important-file.txt
-</code>+</file>
  
 **방법 2: 이미 삭제를 커밋한 경우** **방법 2: 이미 삭제를 커밋한 경우**
-<code bash>+ 
 +<file bash>
 # 파일이 삭제된 커밋 찾기 # 파일이 삭제된 커밋 찾기
 git log --oneline -- important-file.txt git log --oneline -- important-file.txt
줄 342: 줄 374:
 git add important-file.txt git add important-file.txt
 git commit -m "중요한 파일 복원" git commit -m "중요한 파일 복원"
-</code>+</file>
  
-==== 8. 큰 파일 업로드 오류 ====+---- 
 +==== 2) 큰 파일 업로드 오류 ====
  
 **문제 상황:** **문제 상황:**
-<code>+ 
 +<file>
 remote: error: File large-file.zip is 120.00 MB; this exceeds GitHub's file size limit of 100.00 MB remote: error: File large-file.zip is 120.00 MB; this exceeds GitHub's file size limit of 100.00 MB
 remote: error: See https://docs.github.com/articles/about-git-large-files for more information. remote: error: See https://docs.github.com/articles/about-git-large-files for more information.
-</code>+</file>
  
 **원인:** GitHub는 100MB 이상의 파일 업로드를 제한함 **원인:** GitHub는 100MB 이상의 파일 업로드를 제한함
줄 357: 줄 391:
  
 **방법 1: 파일 제거** **방법 1: 파일 제거**
-<code bash>+ 
 +<file bash>
 # 큰 파일을 .gitignore에 추가 # 큰 파일을 .gitignore에 추가
 echo "large-file.zip" >> .gitignore echo "large-file.zip" >> .gitignore
줄 368: 줄 403:
 git commit -m "큰 파일 제거 및 .gitignore 추가" git commit -m "큰 파일 제거 및 .gitignore 추가"
 git push origin main git push origin main
-</code>+</file>
  
 **방법 2: Git LFS 사용** **방법 2: Git LFS 사용**
-<code bash>+ 
 +<file bash>
 # Git LFS 설치 (한 번만) # Git LFS 설치 (한 번만)
 git lfs install git lfs install
줄 386: 줄 422:
 git commit -m "큰 파일 추가 (LFS 사용)" git commit -m "큰 파일 추가 (LFS 사용)"
 git push origin main git push origin main
-</code>+</file>
  
-===== 🔄 히스토리 관리 문제 ===== +===== 5. 🔄 히스토리 관리 문제 ===== 
- +---- 
-==== 9. 커밋을 너무 많이 만들었을 때 ====+==== 1) 커밋을 너무 많이 만들었을 때 ====
  
 **문제 상황:** **문제 상황:**
-<code bash>+ 
 +<file bash>
 git log --oneline git log --oneline
 # a1b2c3d 오타 수정 # a1b2c3d 오타 수정
줄 399: 줄 436:
 # i7j8k9l 또또 오타 수정 # i7j8k9l 또또 오타 수정
 # m1n2o3p 기능 추가 # m1n2o3p 기능 추가
-</code>+</file>
  
 **해결 방법: 여러 커밋을 하나로 합치기 (Squash)** **해결 방법: 여러 커밋을 하나로 합치기 (Squash)**
  
 **방법 1: Interactive Rebase 사용** **방법 1: Interactive Rebase 사용**
-<code bash>+ 
 +<file bash>
 # 최근 4개 커밋을 하나로 합치기 # 최근 4개 커밋을 하나로 합치기
 git rebase -i HEAD~4 git rebase -i HEAD~4
줄 416: 줄 454:
 # 저장하고 닫으면 커밋 메시지 편집 화면이 나타남 # 저장하고 닫으면 커밋 메시지 편집 화면이 나타남
 # 원하는 메시지로 수정 후 저장 # 원하는 메시지로 수정 후 저장
-</code>+</file>
  
 **방법 2: Soft Reset 사용** **방법 2: Soft Reset 사용**
-<code bash>+ 
 +<file bash>
 # 최근 4개 커밋을 취소하되 변경사항은 유지 # 최근 4개 커밋을 취소하되 변경사항은 유지
 git reset --soft HEAD~4 git reset --soft HEAD~4
줄 425: 줄 464:
 # 모든 변경사항을 하나의 커밋으로 만들기 # 모든 변경사항을 하나의 커밋으로 만들기
 git commit -m "기능 추가 및 오타 수정" git commit -m "기능 추가 및 오타 수정"
-</code>+</file>
  
 **⚠️ 주의사항:** **⚠️ 주의사항:**
-- 이미 push한 커밋은 수정하지 마세요 (팀 작업 시) +  - 이미 push한 커밋은 수정하지 마세요 (팀 작업 시) 
-- 혼자 작업할 때만 사용하세요+  - 혼자 작업할 때만 사용하세요
  
-==== 10. 잘못된 브랜치에서 작업했을 때 ====+---- 
 +==== 2) 잘못된 브랜치에서 작업했을 때 ====
  
 **문제 상황:** **문제 상황:**
-<code bash>+ 
 +<file bash>
 # main 브랜치에서 작업했는데 feature 브랜치에서 했어야 했을 때 # main 브랜치에서 작업했는데 feature 브랜치에서 했어야 했을 때
 git branch git branch
줄 440: 줄 481:
 git log --oneline -3 git log --oneline -3
 # a1b2c3d 새 기능 추가  ← 이 커밋이 잘못된 브랜치에 있음 # a1b2c3d 새 기능 추가  ← 이 커밋이 잘못된 브랜치에 있음
-</code>+</file>
  
 **해결 방법:** **해결 방법:**
  
 **1단계: 새 브랜치 생성** **1단계: 새 브랜치 생성**
-<code bash>+ 
 +<file bash>
 # 현재 위치에서 새 브랜치 생성 # 현재 위치에서 새 브랜치 생성
 git branch feature-new-function git branch feature-new-function
줄 451: 줄 493:
 # 또는 생성과 동시에 이동 # 또는 생성과 동시에 이동
 git checkout -b feature-new-function git checkout -b feature-new-function
-</code>+</file>
  
 **2단계: main 브랜치 되돌리기** **2단계: main 브랜치 되돌리기**
-<code bash>+ 
 +<file bash>
 # main 브랜치로 이동 # main 브랜치로 이동
 git checkout main git checkout main
줄 463: 줄 506:
 # 확인 # 확인
 git log --oneline -3 git log --oneline -3
-</code>+</file>
  
 **3단계: 새 브랜치에서 작업 계속** **3단계: 새 브랜치에서 작업 계속**
-<code bash>+ 
 +<file bash>
 # 새 브랜치로 이동 # 새 브랜치로 이동
 git checkout feature-new-function git checkout feature-new-function
  
 # 작업 계속... # 작업 계속...
-</code>+</file>
  
-===== 🛠️ 고급 복구 기법 ===== +===== 6. 🛠️ 고급 복구 기법 ===== 
- +---- 
-==== 11. 실수로 브랜치를 삭제했을 때 ====+==== 1) 실수로 브랜치를 삭제했을 때 ====
  
 **문제 상황:** **문제 상황:**
-<code bash>+ 
 +<file bash>
 git branch -D feature-important  # 실수로 중요한 브랜치 삭제 git branch -D feature-important  # 실수로 중요한 브랜치 삭제
-</code>+</file>
  
 **해결 방법:** **해결 방법:**
  
 **1단계: 삭제된 브랜치의 커밋 해시 찾기** **1단계: 삭제된 브랜치의 커밋 해시 찾기**
-<code bash>+ 
 +<file bash>
 # reflog에서 삭제된 브랜치의 마지막 커밋 찾기 # reflog에서 삭제된 브랜치의 마지막 커밋 찾기
 git reflog git reflog
줄 493: 줄 539:
 # e4f5g6h HEAD@{1}: commit: 중요한 기능 완성 # e4f5g6h HEAD@{1}: commit: 중요한 기능 완성
 # ... # ...
-</code>+</file>
  
 **2단계: 브랜치 복원** **2단계: 브랜치 복원**
-<code bash>+ 
 +<file bash>
 # 삭제된 브랜치 복원 # 삭제된 브랜치 복원
 git checkout -b feature-important e4f5g6h git checkout -b feature-important e4f5g6h
줄 502: 줄 549:
 # 확인 # 확인
 git log --oneline git log --oneline
-</code>+</file>
  
-==== 12. 잘못된 파일 내용을 커밋했을 때 ====+---- 
 +==== 2) 잘못된 파일 내용을 커밋했을 때 ====
  
 **문제 상황:** **문제 상황:**
-<code bash>+ 
 +<file bash>
 # 중요한 파일에 잘못된 내용을 작성하고 커밋함 # 중요한 파일에 잘못된 내용을 작성하고 커밋함
 git log --oneline -1 git log --oneline -1
 # a1b2c3d 설정 파일 업데이트  ← 이 커밋에서 파일 내용이 잘못됨 # a1b2c3d 설정 파일 업데이트  ← 이 커밋에서 파일 내용이 잘못됨
-</code>+</file>
  
 **해결 방법:** **해결 방법:**
  
 **방법 1: 특정 파일만 이전 상태로 복원** **방법 1: 특정 파일만 이전 상태로 복원**
-<code bash>+ 
 +<file bash>
 # 2번 전 커밋에서 해당 파일만 복원 # 2번 전 커밋에서 해당 파일만 복원
 git checkout HEAD~2 -- config.json git checkout HEAD~2 -- config.json
줄 523: 줄 573:
 git add config.json git add config.json
 git commit -m "설정 파일 복원" git commit -m "설정 파일 복원"
-</code>+</file>
  
 **방법 2: 커밋 되돌리기** **방법 2: 커밋 되돌리기**
-<code bash>+ 
 +<file bash>
 # 잘못된 커밋을 되돌리는 새 커밋 생성 # 잘못된 커밋을 되돌리는 새 커밋 생성
 git revert HEAD git revert HEAD
줄 532: 줄 583:
 # 또는 특정 커밋 되돌리기 # 또는 특정 커밋 되돌리기
 git revert a1b2c3d git revert a1b2c3d
-</code>+</file>
  
-===== 🔍 문제 진단 도구 ===== +===== 7. 🔍 문제 진단 도구 ===== 
- +---- 
-==== 유용한 명령어들 ====+==== 1) 유용한 명령어들 ====
  
 **현재 상태 확인** **현재 상태 확인**
-<code bash>+ 
 +<file bash>
 # 기본 상태 확인 # 기본 상태 확인
 git status git status
줄 548: 줄 600:
 # 간단한 상태 확인 # 간단한 상태 확인
 git status -s git status -s
-</code>+</file>
  
 **히스토리 확인** **히스토리 확인**
-<code bash>+ 
 +<file bash>
 # 커밋 히스토리 # 커밋 히스토리
 git log --oneline --graph git log --oneline --graph
줄 560: 줄 613:
 # 모든 참조 히스토리 (삭제된 커밋도 포함) # 모든 참조 히스토리 (삭제된 커밋도 포함)
 git reflog git reflog
-</code>+</file>
  
 **차이점 확인** **차이점 확인**
-<code bash>+ 
 +<file bash>
 # 작업 디렉토리와 스테이징 영역 차이 # 작업 디렉토리와 스테이징 영역 차이
 git diff git diff
줄 572: 줄 626:
 # 두 커밋 간 차이 # 두 커밋 간 차이
 git diff commit1 commit2 git diff commit1 commit2
-</code>+</file>
  
-===== 🆘 응급 상황 대처법 ===== +===== 8. 🆘 응급 상황 대처법 ===== 
- +---- 
-==== "모든 것이 망가졌을 때" ====+==== 1) "모든 것이 망가졌을 때" ====
  
 **상황:** 무엇을 했는지 모르겠는데 모든 것이 이상해졌을 때 **상황:** 무엇을 했는지 모르겠는데 모든 것이 이상해졌을 때
줄 583: 줄 637:
  
 **1단계: 당황하지 말고 현재 상태 파악** **1단계: 당황하지 말고 현재 상태 파악**
-<code bash>+ 
 +<file bash>
 # 현재 상태 확인 # 현재 상태 확인
 git status git status
줄 595: 줄 650:
 # 모든 참조 히스토리 확인 # 모든 참조 히스토리 확인
 git reflog git reflog
-</code>+</file>
  
 **2단계: 안전한 상태로 복원** **2단계: 안전한 상태로 복원**
-<code bash>+ 
 +<file bash>
 # 작업 디렉토리의 모든 변경사항 버리기 # 작업 디렉토리의 모든 변경사항 버리기
 git checkout -- . git checkout -- .
줄 607: 줄 663:
 # 마지막 커밋 상태로 완전히 복원 # 마지막 커밋 상태로 완전히 복원
 git reset --hard HEAD git reset --hard HEAD
-</code>+</file>
  
 **3단계: 필요시 특정 시점으로 복원** **3단계: 필요시 특정 시점으로 복원**
-<code bash>+ 
 +<file bash>
 # 특정 커밋으로 완전히 되돌리기 (주의!) # 특정 커밋으로 완전히 되돌리기 (주의!)
 git reset --hard commit-hash git reset --hard commit-hash
줄 616: 줄 673:
 # 또는 안전한 되돌리기 # 또는 안전한 되돌리기
 git revert commit-hash git revert commit-hash
-</code>+</file>
  
-===== 📚 도움 받는 방법 ===== +===== 9. 📚 도움 받는 방법 ===== 
- +---- 
-==== Git 내장 도움말 ====+==== 1) Git 내장 도움말 ====
  
-<code bash>+<file bash>
 # 명령어 도움말 보기 # 명령어 도움말 보기
 git help status git help status
줄 631: 줄 688:
 git status --help git status --help
 git commit --help git commit --help
-</code>+</file>
  
-==== 온라인 리소스 ====+---- 
 +==== 2) 온라인 리소스 ====
  
 **공식 문서:** **공식 문서:**
-- Git 공식 문서: https://git-scm.com/doc +  - Git 공식 문서: https://git-scm.com/doc 
-- GitHub 도움말: https://docs.github.com/+  - GitHub 도움말: https://docs.github.com/
  
 **커뮤니티:** **커뮤니티:**
-- Stack Overflow: "git태그로 검색 +  - Stack Overflow: ''git'' 태그로 검색 
-- GitHub Community: https://github.community/+  - GitHub Community: https://github.community/
  
 **한국어 자료:** **한국어 자료:**
-- 생활코딩 Git 강의 +  - 생활코딩 Git 강의 
-- Git 공식 문서 한국어 번역+  - Git 공식 문서 한국어 번역
  
-==== 오류 메시지 검색 팁 ====+---- 
 +==== 3) 오류 메시지 검색 팁 ====
  
-<code bash>+<file bash>
 # 오류 메시지를 그대로 구글에 검색 # 오류 메시지를 그대로 구글에 검색
 "error: Your local changes to the following files would be overwritten" "error: Your local changes to the following files would be overwritten"
줄 658: 줄 717:
 # 해결 방법도 함께 검색 # 해결 방법도 함께 검색
 git merge conflict how to resolve git merge conflict how to resolve
-</code>+</file>
  
-===== 💡 문제 예방 팁 ===== +===== 10. 💡 문제 예방 팁 ===== 
- +---- 
-==== 좋은 습관 기르기 ====+==== 1) 좋은 습관 기르기 ====
  
 **1. 자주 상태 확인하기** **1. 자주 상태 확인하기**
-<code bash>+ 
 +<file bash>
 # 명령어 실행 전후로 항상 확인 # 명령어 실행 전후로 항상 확인
 git status git status
-</code>+</file>
  
 **2. 작은 단위로 자주 커밋하기** **2. 작은 단위로 자주 커밋하기**
-<code bash>+ 
 +<file bash>
 # 큰 변경사항을 한 번에 커밋하지 말고 작은 단위로 # 큰 변경사항을 한 번에 커밋하지 말고 작은 단위로
 git add specific-file.txt git add specific-file.txt
 git commit -m "특정 기능 추가" git commit -m "특정 기능 추가"
-</code>+</file>
  
 **3. 의미있는 커밋 메시지 작성하기** **3. 의미있는 커밋 메시지 작성하기**
-<code bash>+ 
 +<file bash>
 # 나중에 봐도 이해할 수 있는 메시지 # 나중에 봐도 이해할 수 있는 메시지
 git commit -m "사용자 로그인 기능 구현" git commit -m "사용자 로그인 기능 구현"
-</code>+</file>
  
 **4. 중요한 작업 전 백업하기** **4. 중요한 작업 전 백업하기**
-<code bash>+ 
 +<file bash>
 # 중요한 브랜치 백업 # 중요한 브랜치 백업
 git branch backup-main main git branch backup-main main
줄 690: 줄 753:
 # 또는 태그로 백업 # 또는 태그로 백업
 git tag backup-before-merge git tag backup-before-merge
-</code>+</file>
  
 **5. .gitignore 파일 활용하기** **5. .gitignore 파일 활용하기**
-<code bash>+ 
 +<file bash>
 # 프로젝트 시작 시 .gitignore 설정 # 프로젝트 시작 시 .gitignore 설정
 echo "*.log" >> .gitignore echo "*.log" >> .gitignore
 echo "node_modules/" >> .gitignore echo "node_modules/" >> .gitignore
 echo ".env" >> .gitignore echo ".env" >> .gitignore
-</code>+</file>
  
-===== 🎓 마무리 =====+===== 11. 🎓 마무리 =====
  
 **축하합니다! 🎉 이제 Git/GitHub 문제 해결 능력을 갖추셨습니다!** **축하합니다! 🎉 이제 Git/GitHub 문제 해결 능력을 갖추셨습니다!**
  
 **기억해야 할 핵심 원칙:** **기억해야 할 핵심 원칙:**
-- 🔒 **Git은 안전합니다**: 거의 모든 상황에서 복구 가능 +  - 🔒 **Git은 안전합니다**: 거의 모든 상황에서 복구 가능 
-- 📖 **오류 메시지를 읽어보세요**: 해결 방법이 있는 경우가 많음 +  - 📖 **오류 메시지를 읽어보세요**: 해결 방법이 있는 경우가 많음 
-- 🔍 **git status를 자주 사용하세요**: 현재 상태 파악이 중요 +  - 🔍 ''git status''를 자주 사용하세요!: 현재 상태 파악이 중요 
-- 🤝 **도움을 요청하세요**: 혼자 해결하려고 하지 마세요+  - 🤝 **도움을 요청하세요**: 혼자 해결하려고 하지 마세요
  
 **문제가 생겼을 때:** **문제가 생겼을 때:**
-1. 당황하지 말고 현재 상태 파악 +  - 당황하지 말고 현재 상태 파악 
-2. 이 가이드에서 비슷한 상황 찾기 +  이 가이드에서 비슷한 상황 찾기 
-3. 단계별로 차근차근 해결 +  단계별로 차근차근 해결 
-4. 해결되지 않으면 온라인 커뮤니티에 질문+  해결되지 않으면 온라인 커뮤니티에 질문
  
 **예방이 최선입니다:** **예방이 최선입니다:**
-- 자주 커밋하고 push하기 +  - 자주 커밋하고 push하기 
-- 중요한 작업 전 백업하기 +  - 중요한 작업 전 백업하기 
-- .gitignore 파일 활용하기 +  %% .gitignore %% 파일 활용하기 
-- 의미있는 커밋 메시지 작성하기+  - 의미있는 커밋 메시지 작성하기
  
 **이제 고급 팁을 배워서 더 효율적으로 Git을 사용해보세요!** 🌟 **이제 고급 팁을 배워서 더 효율적으로 Git을 사용해보세요!** 🌟
줄 726: 줄 790:
 ---- ----
  
-**이전:** [[wiki:it:github:branch_management|🌿 브랜치 관리]] | **다음:** [[wiki:it:github:advanced_tips|🚀 고급 팁과 트릭]] | **목록:** [[wiki:it:github:start|📋 전체 문서 목록]]  +**이전:** [[wiki:it:github:branch_management|🌿 브랜치 관리]] | **다음:** [[wiki:it:github:advanced_tips|🚀 고급 팁과 트릭]] | **목록:** [[wiki:it:github:start|📋 전체 문서 목록]]
wiki/it/github/troubleshooting.1753857794.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki