git에서 빈 프로젝트에 분기 만들기
새 프로젝트를 위해 3 개의 다른 파일 (fileA, fileB, fileC)에 3 개의 다른 기능을 구현하려고한다고 가정 해 보겠습니다.
나는 내 (현재 비어있는) 프로젝트를 git에 추가해야한다고 생각했습니다.
git init
그런 다음 3 개의 다른 분기를 만듭니다.
git branch file1_branch
git branch file2_branch
git branch file3_branch
그러나 이것은 작동하지 않습니다.
치명적 : 유효한 개체 이름이 아닙니다 : 'master'.
왜 이런거야?
이 시점에서 마스터 브랜치조차 생성되지 않았다는 문제가 관련되었을 수 있습니까? 나는 git branch
. 아무것도 산출하지 못했습니다.
그런 다음 git에게 master
브랜치 를 만들도록 "빈"커밋을 수행하는 것에 대해 생각했습니다 .
git commit -m `initial_commit`
하지만 스테이징 영역에 파일을 추가하지 않았기 때문에 작동하지 않습니다.
이제 막 프로젝트를 시작하려고하므로이 시점에서 커밋에 추가 할 파일이 없습니다!
이 문제를 해결하는 방법? 내가 뭘 잘못하고 있니?
감사
Git은 분기를 해당 분기의 최신 커밋에 대한 포인터로 나타냅니다. 아직 커밋을 생성하지 않았다면 해당 분기가 가리킬 것이 없습니다. 따라서 적어도 하나의 커밋을 가질 때까지 실제로 분기를 만들 수 없습니다.
Git은 커밋을 하나 이상의 부모 커밋 (또는 이것이 초기 커밋 인 경우 모두 0 인 부모), 커밋 메시지 및 기타 메타 데이터, 트리 참조에 대한 참조로 나타냅니다. 트리는 기본적으로 각 디렉토리의 각 파일에있는 내용의 매니페스트입니다. 디렉토리가 비어 있으면 트리에 넣을 것이 없습니다. 이제 실제로 첫 번째 커밋으로 빈 커밋을 생성 할 수 있습니다. 당신은 실행할 수 있습니다 git commit --allow-empty -m "initial commit"
. 그러나 그것은 실제로 Git을 사용하는 일반적인 방법이 아닙니다.
Git에서는 필요하지 않는 한 브랜치를 사용하지 않아야합니다. 분기 할 콘텐츠가있을 때까지 여러 분기를 만들 필요가 없습니다. 개발 초기에 세 가지 브랜치를 만들면 그들 사이에 공통 조상이 없습니까? 이 경우 3 개의 리포지토리를 생성하지 않는 이유는 무엇입니까? 아니면 분기가 시작될 때까지 세 가지를 모두 동기화하여 업데이트 할 예정입니까? 그것은 그들 모두를 최신 상태로 유지하기 위해 많은 추가 작업처럼 보입니다. 분기해야 할 때까지 생성을 기다려야합니다.
그러나이 워크 플로를 사용하려면 실행 git commit --allow-empty -m "initial commit"
하여 빈 초기 커밋을 만들 수 있습니다 .
다음을 사용하여 빈 초기 커밋을 수행 할 수 있습니다.
git commit --allow-empty
그런 다음 원하는대로 분기를 만들 수 있습니다.
참조 URL : https://stackoverflow.com/questions/5678699/creating-branches-on-an-empty-project-in-git
'developer tip' 카테고리의 다른 글
jQuery에서 console.log는 무엇입니까? (0) | 2021.01.07 |
---|---|
목록에서 모든 항목이 동일한 지 확인 (0) | 2021.01.07 |
CoffeScript에서 두 개의 익명 함수를 인수로 전달하는 방법은 무엇입니까? (0) | 2021.01.07 |
DataFrame의 현재 파티션 수 가져 오기 (0) | 2021.01.06 |
ASCII 아트 이미지 변환 알고리즘은 어떻게 작동합니까? (0) | 2021.01.06 |