2012-03-17 3 views
9

내 지속적인 통합 빌드의 경우 git 샌드 박스에 훼손 파일이 보관되지 않도록하고 실수로 파일을 변경하지 않도록하고 싶습니다.깨끗한 git 샌드 박스를 만드는 가장 효율적인 방법은 무엇입니까?

나는 약 git reset --hard HEAD을 알고 있는데, 이것은 문제의 일부를 해결합니다. 하지만 내가 원하는 것은 추적되지 않고 무시 된 모든 파일을 삭제하는 것입니다. 나는 그것을 무력으로 할 수 있고 그냥해라.

rm -rf * 
git checkout -f 

그러나 더 효율적인 방법이 있어야한다. 어떤 아이디어?

+2

'자식 --hard HEAD' +'자식 깨끗한 -d -f'를 재설정 ? – madth3

+0

@ madth3, 고마워, 나는 그것이 정말로 작동한다고 생각한다! – mpontillo

답변

12

(후대에 대한 확장)

귀하의 문제는 두 가지로 나눌 수 있습니다 : 마지막 커밋에서 자신의 상태로 수정 된 파일을 반환하고 저장소에 속하지 않는 여분의 파일 제거 :

git reset --hard HEAD 

git clean -f -d -x 
(그들은 최선을 다하고되는 단계하더라도) 수정을 제거, 다시 그들이 HEAD에있는 상태로 파일을 취할 것입니다

은 무시 된 파일이나 디렉토리를 제거합니다 (@ Jefromi에게 감사).

+0

감사합니다. 'git clean' 명령을 잊어 버렸습니다. 내가 그 질문을 쓸 때 나는 데자뷰를 얻고 있음을 알았다. =) – mpontillo

+0

글쎄, 나는'reset' 명령을 더 자주 사용했지만 요구 사항을 완료하기 위해'clean'을 찾는 것이 쉬웠다. – madth3

+1

'-x'를 git-clean과 함께 쓰길 원할 것입니다; 그렇게하면 무시 된 파일도 삭제됩니다. 무시 된 파일이 중간 빌드 제품이고 빌드 프로세스가 완벽하지 않은 경우 중요합니다. – Cascabel

-1

CI에 대한 별도의 복제본 복제가 아닙니까?

그냥 가져

| 당신의-노동의 repo에서 클론 (모든 유물과 로컬 변경 사항 없음) CI-작업 전에 모든 커밋 변경

+0

당신은 무엇을 의미합니까? "별도의 클론"? 우리는 기가 바이트를 말하는 것이므로 매번 다시 복제하고 싶지 않습니다. – mpontillo

관련 문제