git에게 개별 라인을 무시하도록 지시하는 방법, 즉 특정 코드 라인에 대해 gitnore
.gitignore
전체 파일을 무시할 수 있지만, 코딩하는 동안 특정 코드 행을 무시할 수 있는 방법이 있습니까?
프로젝트에 동일한 디버그 행을 자주 반복적으로 추가하지만 커밋하기 전에 제거해야 합니다.나는 단지 코드에 있는 대사들을 유지하고 그것들을 무시하고 싶습니다.
Git 필터를 사용하여 다음과 같은 작업을 수행할 수 있습니다.
- Git 특성 파일 만들기/열기:
<project root>/.gitattributes
(repo에 커밋됨)
OR<project root>/.git/info/attributes
(repo에 커밋되지 않음)
- 필터링할 파일을 정의하는 행을 추가합니다.
*.rb filter=gitignore
즉, 이름이 지정된 필터 실행gitignore
대체로*.rb
파일
- 정의합니다.
gitignore
필터를 사용합니다.gitconfig
:$ git config --global filter.gitignore.clean "sed '/#gitignore$/d'"
즉, 이 줄을 삭제합니다.$ git config --global filter.gitignore.smudge cat
즉, repo에서 파일을 가져올 때 아무것도 하지 않습니다.
주의:
물론, 이것은 루비 파일을 위한 것이며, 행이 다음으로 끝날 때 적용됩니다.#gitignore
에서 전세계적으로 적용되는.~/.gitconfig
사용자의 목적에 맞게 필요에 따라 수정합니다.
경고!
이렇게 하면 작업 파일이 레포(물론)와 다릅니다.체크아웃 또는 리베이스는 이러한 라인이 손실됨을 의미합니다!이 트릭은 체크아웃, 리베이스 또는 당김 시 라인이 반복적으로 손실되기 때문에 쓸모 없어 보일 수 있지만, 저는 이를 활용하기 위해 특정 사용 사례를 가지고 있습니다.
그저.git stash save "proj1-debug"
필터가 비활성 상태인 동안(일시적으로 비활성화)gitconfig
또는 뭔가).이런 식으로, 나의 디버그 코드는 항상git stash apply
이 대사들이 실수로 저지를 염려 없이 언제든지 내 코드를 사용할 수 있습니다.
이러한 문제를 해결할 수 있는 가능한 아이디어가 있지만, 다음에 실행해 보겠습니다.
git 필터와 git 속성을 언급해준 Rudi와 jw013에게 감사드립니다.
자바 코드를 작성하는 데도 비슷한 문제가 있었습니다.제 해결책은 커밋하지 않을 코드를 마크업한 다음 내 마크업을 찾는 사전 커밋 후크를 추가하는 것이었습니다.
#!/bin/bash
#
# This hook will look for code comments marked '//no-commit'
# - case-insensitive
# - dash is optional
# - there may be a space after the //
#
noCommitCount=$(git diff --no-ext-diff --cached | egrep -i --count "(@No|\/\/\s?no[ -]?)commit")
if [ "$noCommitCount" -ne "0" ]; then
echo "WARNING: You are attempting to commit changes which include a 'no-commit'."
echo "Please check the following files:"
git diff --no-ext-diff --cached --name-only -i -G"(@no|\/\/s?no-?)commit" | sed 's/^/ - /'
echo
echo "You can ignore this warning by running the commit command with '--no-verify'"
exit 1
fi
언급URL : https://stackoverflow.com/questions/16244969/how-to-tell-git-to-ignore-individual-lines-i-e-gitignore-for-specific-lines-of
'source' 카테고리의 다른 글
git push 시 "OAuth App의 워크플로우 생성 또는 업데이트 허용 거부" 해결 방법 (0) | 2023.06.30 |
---|---|
TensorFlow, 왜 파이썬이 선택된 언어였습니까? (0) | 2023.06.30 |
MongoDb Object에서 속성을 제거하는 방법은 무엇입니까? (0) | 2023.06.30 |
dbvisualizer: 선택 쿼리에서 최대 행 설정 (0) | 2023.06.30 |
Firebase 저장소에 파일이 있는지 확인하는 방법은 무엇입니까? (0) | 2023.06.30 |