your programing

Git에서 부모없이 커밋을 생성하려면 어떻게해야합니까?

lovepro 2020. 10. 14. 08:17
반응형

Git에서 부모없이 커밋을 생성하려면 어떻게해야합니까?


중복 가능성 :
git에서 관련없는 분기를 저장소에 도입하는 간단한 방법이 있습니까?

버전 관리 소프트웨어없이 작업하고 있던 작은 프로젝트가 있는데 동일한 스크립트의 세 가지 버전으로 끝났는데 각 버전은 서로 약간 다른 작업을 수행했습니다. 버전 중 하나로 git repo를 초기화했으며 부모없이 나머지 두 개를 각각 커밋하고 싶습니다. 이렇게하면 스크립트의 세 가지 버전이 각각 다른 분기의 팁인 것처럼 차이점을 병합 할 수 있습니다.

나는 이것이이 문제를 해결하는 데 필요한 건전한 방법인지 또는 합리적인 방법인지 확실하지 않습니다. 이런 식으로 일을하는 방법에 대한 조언이나이 상황을 처리하는 더 나은 방법에 대한 조언을 많이 주시면 감사하겠습니다.


내 의견에서 :

두 개의 브랜치를 만들고 두 개의 다른 버전을 추가 한 다음 브랜치에서 작업하는 것이 어떻습니까?

ctcherry의 대답에도 동의 할 것이라고 생각합니다.


그러나 마스터와 관련이없는 완전히 다른 "브랜치"를 만들고 싶다면 git checkout --orphan. 에 대한 설명서git checkout 는 옵션 작업에 대해 설명합니다 --orphan.

<start_point>에서 시작하여 <new_branch>라는 고아 분기를 만들고 전환합니다. 이 새로운 브랜치에서 만들어진 첫 번째 커밋에는 부모가 없으며 다른 모든 브랜치 및 커밋과 완전히 분리 된 새로운 역사의 뿌리가 될 것입니다.

다음과 같이 사용할 수 있습니다.

git checkout --orphan version2
git rm -rf .
<add version2 script>
git add your files
git commit -m 'Initial commit for version 2'

Git이 1.7.2보다 오래된 경우 ( git checkout --orphan출시 당시) Git Community Book의 "Creating New Empty Branches" 에서 대체 명령 시퀀스를 사용할 수 있습니다 .

경우에 따라 일반 코드와 조상을 공유하지 않는 분기를 저장소에 유지하려고 할 수 있습니다. 이에 대한 몇 가지 예는 생성 된 문서 또는 해당 라인을 따르는 무언가 일 수 있습니다. 현재 코드베이스를 부모로 사용하지 않는 새 브랜치 헤드를 만들려면 다음과 같이 빈 브랜치를 만들 수 있습니다.

git symbolic-ref HEAD refs/heads/newbranch 
rm .git/index 
git clean -fdx 
<do work> 
git add your files 
git commit -m 'Initial commit'

'비어있는'저장소 (예 : 위의 문제 설명에 대한 단일 readme)로 시작하지 않는 이유는 무엇입니까? 그런 다음 세 번 분기하고 서로 다른 스크립트 버전을 각 분기에 추가하고 별도로 커밋 할 수 있습니다.

그런 다음 분기 / 편집 / 커밋 / 병합하고 잘 관리 된 방식으로 모든 옵션을 시험해 볼 수 있습니다.


스크립트의 각 버전에 대한 브랜치를 생성하고 개별 브랜치에 커밋 할 수 있습니다. 그런 다음 한 번에 하나씩 다시 마스터로 병합하십시오. 그것은 당신이 찾고있는 효과를 가져야합니다.

참고 URL : https://stackoverflow.com/questions/5689960/how-do-i-create-a-commit-without-a-parent-in-git

반응형