본문 바로가기
빌드노트 검색

빌드노트

Git·개발 도구

Git·개발 도구 카테고리의 글입니다.

글 검색

글 목록

총 46개의 글

  1. PowerShell 함수에 return $false가 있는데 if가 참이 된다

    PowerShell 함수에서 진단 문자열을 그대로 출력하면 return $false 앞의 문자열도 결과에 포함된다. 원소·타입·Boolean 변환을 확인하고 Write-Verbose로 분리하는 수정, 4>&1로 다시 합칠 때의 경계를 실제 비교한다.

  2. git diff --name-only가 한글 파일명을 따옴표와 숫자로 출력할 때

    git diff --name-only의 한글·특수문자 인용 출력을 실제 경로로 쓰면 파일 조회가 실패할 수 있다. Windows와 WSL에서 core.quotePath=false의 한계와 -z의 NUL 구분 출력을 비교하고, 바이트로 받은 목록을 Python에서 소비하는 방법을 설명한다.

  3. PowerShell -match가 실패했는데 $Matches에 이전 값이 남는 이유

    PowerShell의 -match가 False를 반환해도 $Matches에는 이전 성공의 캡처가 남는다. 성공 분기에서만 값을 복사하는 수정과 배열 입력의 반환값 차이를 실제 실행 결과로 비교한다.

  4. force-with-lease도 fetch 뒤에는 동료 커밋을 덮어쓸 수 있다

    인자 없는 force-with-lease는 fetch로 갱신된 원격 추적 참조를 기준으로 삼는다. 로컬 bare 원격과 세 clone에서 동료 커밋이 빠지는 조건을 확인하고, 내용을 검토한 전체 커밋 ID를 expected 값으로 고정하는 방법을 설명한다.

  5. Select-String에서 api.example이 apiXexample까지 잡히는 이유

    Select-String은 따옴표 안의 검색어도 기본적으로 정규식으로 읽는다. 합성 로그에서 점·대괄호와 대소문자 조건을 실제 비교해, 문자열 포함 검색에는 SimpleMatch를 쓰고 정규식 안의 고정 값에는 Regex.Escape를 적용하는 기준을 설명한다.

  6. PowerShell이 [draft].txt 대신 d.txt를 찾는 이유

    PowerShell의 Path는 따옴표로 감싼 [draft].txt도 패턴으로 읽는다. PowerShell 7.6.6에서 대괄호 파일과 d.txt의 조회·존재 검사를 비교하고, 실제 이름을 지정할 때 LiteralPath를 선택하는 방법을 설명한다.

  7. merge 커밋을 revert할 때 -m 1은 무엇을 남기는가

    merge revert의 -m은 비교 기준 부모를 고른다. 실제 부모 순서와 부모별 diff를 읽고, -m 1과 -m 2가 남기는 파일을 비교한다. revert 뒤 같은 브랜치를 다시 병합해도 취소한 변경이 돌아오지 않는 이유도 확인했다.

  8. Get-Content 결과를 문자열 인자에 넘겼더니 줄바꿈이 사라진다

    기본 Get-Content로 읽은 줄 배열을 일반 함수의 문자열 인자에 넘기면 공백으로 이어질 수 있다. PowerShell 7.6.6에서 타입·요소 수·Length와 인자 전달 결과를 비교하고, -Raw가 LF·CRLF와 마지막 개행을 보존하는지 확인했다.

  9. git diff --no-index가 종료 1일 때는 오류 출력도 읽는다

    git diff --no-index의 정상 차이는 종료 1이지만, Git 2.45.1에서는 없는 경로도 1이었다. 저장소 밖 합성 파일로 출력과 종료 코드를 비교하고, 오류 출력을 보존해 동일·차이·확인 필요를 나누는 자동화 예제를 제시한다.

  10. detached HEAD에서 만든 커밋, 이동 전에 브랜치로 남기기

    커밋 해시를 checkout한 뒤 만든 커밋은 기존 브랜치에 자동으로 연결되지 않는다. detached 표시와 실제 브랜치를 구분하고, 이동 전에 switch -c로 같은 HEAD와 부모를 유지하며 보존하는 방법을 합성 저장소에서 확인했다.

  11. 같은 커밋을 가리키는 태그인데 rev-parse 해시가 다르다

    같은 커밋에 붙인 lightweight·annotated 태그의 기본 해시가 다른 이유를 객체 종류로 확인한다. rev-parse, cat-file -t, show-ref --dereference의 실제 출력을 읽고, 양쪽을 ^{commit}으로 조회해 커밋 ID를 비교한다.

  12. 버그와 무관한 빌드 실패는 git bisect skip으로 남긴다

    기능 버그를 찾는 bisect에서 무관한 빌드 실패를 bad로 표시하면 엉뚱한 커밋으로 범위가 줄어든다. 합성 이력에서 종료 코드 1과 125의 결과를 비교하고, skip 뒤에도 후보가 C2·C3·C4로 남은 경우와 판단 기준을 설명한다.