2010-12-07 4 views
4

내가 찾고있는 것이 git-stash 인 경우 확실하지 않지만 여기에 내가하고 싶은 것이 있습니다.Git 커밋 전에 특정 파일을 숨기기

로컬 사용을 위해 사용자 정의 된 구성 파일이 있습니다. 이러한 파일은 이미 Git에 있습니다. 이제 새로운 기능 (다른 파일 변경)을 추가하면 구성을 숨겨서 커밋하고 내 새 기능과 관련된 파일 만 커밋하고 싶습니다.

git-stash를 사용하면 모든 것을 숨길 수 있습니다. 어떻게 구성 파일을 숨길 수 있습니까?

감사

답변

0

이것은 늦었지만 더 나은 해결책을 찾았습니다 (몇 년 전).

자식 - 가정 - 상태와 자식-unassume-상태를 사용

#!/usr/bin/env ruby 

# used to ignore modified files -- e.g configuration files 

ret=%x{git status --porcelain} 
files=ret.lines.map { |x| x.split[1] } 

files.each do |file| 
    # makes files resistant to git reset hard 
    %x{git update-index --skip-worktree #{file}} 
    %x{git update-index --assume-unchanged #{file}} 
end 

및 대한

자식-unassume

#!/usr/bin/env bash 

# used to ignore modified files -- e.g configuration files 

cd .git 
rm index 
cd .. 
git reset 

당신이 당신의 구성 파일이 수정되었지만 상태 및 기타 무시 할 수 있습니다이 방법 git add 명령. 마음이 바뀌면 git-unassume을 실행하십시오.

2

stash intendeds 임시 이름이 지점에 어떤 지점에 커밋되지 않은 모든 로컬 변경 사항을 저장합니다. 본질적으로 내부는 지점과 같습니다.

설정 파일을 체크인하지 않아도된다면, 로컬 시스템에서만 병합하는 지점에 배치해야합니다.

7

두 가지.

  1. 커밋 할 파일 만 준비해야합니다. 이 작업은 git add을 사용하여 수행됩니다. 변경 사항이 많을지라도 git add를 사용하여 커밋 할 필드 (및 git add -p을 사용하는 파일 조각) 만 스테이지 할 수 있습니다. 너 이걸해야 해. 설정 파일이 응용 프로그램의 필수적인 부분입니다 (당신은 버전 제어 그것에을 원하는 )하지 않는 한

  2. , 당신은 ignore ING가 아니라 그것을 제어도 버전이어야합니다.

3

git add -p을 사용하고 커밋 할 변경 사항 만 선택하십시오. 어쨌든이 코드는 약간의 코드 리뷰 역할을하기 때문에 좋은 연습입니다.

관련 문제