본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

개발4

Git 과거 로그가 짧게 보일 때: shallow clone 여부부터 확인 CI나 새 복제본에서 과거 커밋이 보이지 않으면 먼저 shallow clone 여부를 확인하세요. 이력을 일부만 내려받은 상황은 커밋을 잃어버린 상황과 다르므로, 복구 명령보다 저장소와 조회 범위를 먼저 구분해야 합니다.적용 환경: Git의 --is-shallow-repository 옵션을 지원하는 로컬 저장소 또는 CI 체크아웃; 명령은 그 저장소 디렉터리에서 실행. 자료 확인일: 2026-10-28. 공식 문서와 별도 임시 저장소 시험을 구분해 안내합니다. 실제 운영·외부 원격 저장소에서 실행한 결과가 아닙니다.1. 원인: clone 깊이가 이력 탐색을 제한한다git clone --depth는 지정한 커밋 수로 이력을 제한하는 얕은 복제를 만듭니다. 기본적으로 단일 브랜치 복제를 함께 뜻하므로, 서버.. 2026. 10. 29.
Git 브랜치가 다른 worktree에서 사용 중일 때: 강제 전환 전 확인 순서 브랜치가 다른 worktree에서 이미 체크아웃됐다는 오류가 나오면 먼저 git worktree list로 경로를 찾으세요. 강제 옵션이나 폴더 삭제부터 실행하지 말고, 그 경로에서 작업 중인 변경이 있는지 확인하는 것이 우선입니다.적용 환경: git worktree를 지원하는 Git 저장소; 연결된 작업 폴더 접근 가능. 자료 확인일: 2026-10-27. 문서 기반 안내이며 실제 운영 시험 결과가 아닙니다.1. 원인: 저장소 하나에 작업 폴더가 여러 개Git worktree는 한 저장소에 여러 작업 디렉터리를 연결할 수 있게 합니다. 이미 다른 작업 트리에서 체크아웃한 브랜치를 새 작업 트리에 사용하려 하면 기본적으로 거절됩니다.오류를 브랜치 손상으로 단정하지 마세요. IDE나 자동화가 만든 폴더가 .. 2026. 10. 28.
git add를 취소하고 파일은 남기려면: restore --staged 확인 순서 git add만 취소하고 편집한 파일을 남기려면 작업 트리가 아니라 인덱스를 대상으로 해야 합니다. 커밋이 있는 저장소에서 git restore --staged로 특정 파일의 스테이징을 취소한 뒤, 파일 내용과 두 diff를 확인하세요.적용 환경: git restore를 지원하는 Git 2.23 이상, 커밋이 존재하는 로컬 저장소의 추적 파일. 자료 확인일: 2026-10-26. 문서 기반 안내이며 실제 운영 시험 결과가 아닙니다.1. 원인: 같은 restore라도 바꾸는 대상이 다름형태기본 대상과 주의restore --staged인덱스 복원; 기본 원본 HEADrestore작업 트리 복원; 미보존 편집 유실 위험--staged --worktree양쪽 변경; 단순 add 취소와 다름파일을 일부만 스테이징.. 2026. 10. 27.
Git 커밋을 잃어버렸을 때: reflog 확인 후 복구 브랜치부터 만드는 순서 reset이나 rebase 뒤 커밋이 보이지 않으면 먼저 로컬 reflog에서 후보를 찾고 내용을 확인하세요. 바로 reset --hard를 실행하기보다 새 복구 브랜치를 만들어 후보 커밋을 보존하는 편이 현재 작업을 보호하기 쉽습니다.적용 환경: reflog와 해당 커밋 객체가 남아 있는 로컬 Git 저장소. 자료 확인일: 2026-10-25. 문서 기반 안내이며 실제 운영 시험 결과가 아닙니다.1. 원인: 현재 브랜치에서 안 보이는 것과 삭제는 다릅니다reflog는 로컬 참조가 이동한 기록입니다. HEAD 기록에는 브랜치 전환도 포함됩니다. 일반 커밋 이력과 다르며 원격 저장소와 같은 기록을 공유한다고 가정하면 안 됩니다.이 방법은 커밋 객체와 필요한 기록이 남아 있을 때의 경로입니다. 커밋하지 않은.. 2026. 10. 26.