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

빌드노트

Git·개발 도구

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

글 검색

글 목록

총 48개의 글

  1. PowerShell -replace에서 큰따옴표 안의 $1이 사라질 때

    PowerShell -replace의 큰따옴표 replacement 안에서 $1이 사라지는 것은 정규식 치환 전의 변수 보간 때문이다. 숫자·이름 캡처와 중간 문자열을 비교하고, 작은따옴표 또는 백틱으로 캡처 참조를 보존하면서 PowerShell 변수 값을 조합하는 방법을 설명한다.

  2. stash pop이 충돌했는데 stash가 그대로 남아 있다

    stash pop이 충돌하면 stash는 남지만 일부 변경과 충돌 마커는 이미 작업 트리에 반영될 수 있다. status와 저장된 패치를 대조해 충돌을 해결하고, 결과를 확인한 뒤 해당 항목 하나만 제거하는 순서를 실험했다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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