친구에게 오늘 힘 문제를 돕는 동안 master
지점에서 완전히 분리해야하는 지점을 소개해야했습니다. 이 지점의 내용은 실제로 master
지점에서 이 개발 된 것과 다른 근원 이었지만 나중에 분기로 병합 된 이 될 것입니다. git에서는 관련이없는 분기를 저장소에 도입하는 간단한 방법이 있습니까?
타르볼에서
$ git rm -rf .
... 추출 된 디렉토리와 파일을 : 우리는 부모를이 자식의 배관을 사용하여 저장소를 기존 저지 만들어 갔다 ... ...
$ git add .
을 인덱스에 사람들을 추가 ... 그리고 트리 객체를 생성
$ git write-tree
(git-write-tree
은 우리에게 생성 된 트리 객체의 sha1sum 말했다.)
그런 다음, 우리는 부모가 저지른 지정하지 않고, 나무를 최선을 다하고 ...
$ echo "Imported project foo" | git commit-tree $TREE
이 (
git-commit-tree
이 우리에게 창조의 sha1sum 말했다 commit 객체)
... 새로 작성한 커밋을 가리키는 새 분기를 만들었습니다.
$ git update-ref refs/heads/other-branch $COMMIT
마지막으로 우리는 master
브랜치로 돌아와 작업을 계속했습니다.
$ git checkout -f master
이것은 계획대로 진행된 것으로 보입니다. 하지만 이것은 분명히 종류의 절차를 시작하는 사람에게 권하고 싶습니다 git를 사용하여, 온화하게 넣어. 지금까지 리포지토리에있는 모든 항목과 완전히 관련이없는 새 분기를 만드는 쉬운 방법이 있습니까? Git Community Book에서
참고 :이 기능은 git 1.7.2에 추가되었습니다. – Matthew
다른 "트리"의 분기를 체크 아웃 할 때 보이는 고아 분기를 만들 수 있는지 알고 있습니까? – JJD
@JJD : 당신이 원하는 것은 git 병합이라고 생각합니다. '(git checkout master && git merge --no-commit "orphan-branch")'비슷한 트릭은 git-reset을 사용하거나 인덱스를 가지고 놀면 작동 할 것입니다. 그러나 원하는 워크 플로우에 따라 다릅니다. – phord