bare repo 명령으로 git plumbing 명령을 사용하여 커밋 기록을 작성하려고합니다. 블롭을 포함하고있는 하나의 익명 트리 객체로 커밋을 생성 할 수는 있지만,이 익명 트리 객체에 다른 트리 객체를 포함시키는 방법을 알 수는 없습니다.작업 트리없이 git read-tree 사용
내가 git read-tree --prefix=tree_name tree_sha
를 사용하여 시도하고 나에게 말한다 : fatal: This operation must be run in a work tree
내가 (이 this page에 표시됩니다 같은) 이런 git mktree
를 사용하여 시도 : cat ../info.txt | git mktree
info.txt 1 개 라인을 포함하는 파일 인 :
040000 tree aa8c07e1371022a183b011d5d41517ef54780a17 test_tree
그것은 나에게 말한다 :
fatal: input format error: 040000 tree aa8c07e1371022a183b011d5d41517ef54780a17 tree_name
누구나 나무를 만들고 이름을 지정할 수 있습니까?
여기에 잘못 붙여 넣었는지 확실하지 않지만 sha와 트리 이름 (test_tree) 사이에 4 칸이 있습니다. 나는 두 번 확인하고 다시 시도했지만 여전히 같은 오류가 발생했습니다. – prw56
Git이 내부적으로 어떻게 작동하는지 알지만, 대부분의 git 명령이하는 일을 모릅니다. 수동으로해볼 수도 있지만 그렇게하기는 쉽지 않습니다. – ThePyroEagle
처음에는 해쉬와 트리 이름 사이의 탭을 사용한다고 가정하기 전에 이것을 테스트했을 때 사과했습니다. 그래서 그게 문제가 아니라고 생각했습니다. aa8c07e1371022a183b011d5d41517ef54780a17와 test_tree 사이의 4 개의 공백을 바꿔서 탭을 고정 시켰습니다. – prw56