2012-11-28 3 views
1

git에서 파일 시스템에 존재하지 않는 파일을 커밋 할 수 있습니까?git에서 "가상"파일을 만들어서 만드는 것

Exemple :

자식은 내가 파일 hello.txt에 안녕하세요 세계를 추가 할 "안녕하세요!" "hello.txt"

를 추가하지만 난에 hello.txt 쓰고 싶지 않아 내 파일 시스템.

hello.txt는 존재하지 않으며 git 시스템을 제외하고는 존재하지 않기를 바랍니다. (이 파일을 내 파일 시스템에 쓰고 싶지는 않습니다.) 이렇게하는 방법이 있습니까?

감사

Bussiere

+0

왜 그렇게하고 싶습니까? – Philipp

+0

아마도 이것은 매우 나쁜 생각입니다. 파일 시스템에 파일을 만들고 싶지 않은 이유가 무엇입니까? – Chronial

+0

이 방법은'git filter-branch --index-filter' 호출과 함께 사용하는 것이 좋습니다. – MvG

답변

4

예를해야 할 수도 있습니다 귀하의 요구 사항을 충족하지 않을 것으로 생각하지만, 당신은 같은 것을 할 수 있습니다.

# write new object to the object database, record its id 
obj_id=$(echo hello world | git hash-object --stdin -w) 

# add the new file to the index as 'hello.txt' 
git update-index --add --cacheinfo 100644 $obj_id hello.txt 

# Make a new commit adding the new file 
git commit -m "Add new file" 
+0

제발 100644 제발 설명해 주시겠습니까? 그리고 이것이 솔루션 덕분 인 것 같습니다. – user462794

+1

실행 불가능한 일반 파일의 경우 mode 매개 변수입니다. 'git help update-index' –

0

왜, 로컬 파일을 작성 힘내 커밋 저장소에 밀어 추가 해달라고. 그런 다음 로컬 파일을 삭제하고 .gitignore에 추가하면 다시 꺼내집니다.

내가 너무 많은 상황

+0

포럼 게시물을 git에 파일로 추가하고 싶습니다 (트리거가있는). 새 게시물이 만들어지면 git에 파일로 추가하려고합니다. 감사합니다 – user462794

관련 문제