다른 프레임 워크 등을 사용하여 프로젝트를 완전히 다시 작성하려고합니다. 히스토리를 포함한 이전 코드를 참조 용으로 유지하는 것이 좋습니다. 위험, 혼란 및 놀라움을 피하기 위해 가장 좋은 방법은 무엇입니까?
내 생각은 새 분기를 만들고 모든 것을 바꾸고 기본 "새"버전을 실행하고 마지막 "이전"마스터에 태그를 지정한 다음 분기를 마스터에 병합하는 것입니다. 이것이 합리적으로 들립니까?
다른 프레임 워크 등을 사용하여 프로젝트를 완전히 다시 작성하려고합니다. 히스토리를 포함한 이전 코드를 참조 용으로 유지하는 것이 좋습니다. 위험, 혼란 및 놀라움을 피하기 위해 가장 좋은 방법은 무엇입니까?
내 생각은 새 분기를 만들고 모든 것을 바꾸고 기본 "새"버전을 실행하고 마지막 "이전"마스터에 태그를 지정한 다음 분기를 마스터에 병합하는 것입니다. 이것이 합리적으로 들립니까?
답변:
모든 것을 단일 저장소에 보관하는 것에 투표합니다.
나는 :
방법은 다음과 같습니다.
# checkout the master branch
git checkout master
# create a new branch so you can find the old code easily
git branch oldStuff-KeepingForReference
# push the branch to github
git push origin oldStuff-KeepingForReference
# You currently have the master branch checked out
# so now cd to the project root and start your rewrite:
cd <your project root>
rm -rf *
# Create a commit of the delete
git add --all *
git commit -m "Fresh start"
# Start your rewrite
echo "Some changes" > file.txt
git add file.txt
git commit -m "This is the first commit of the rewrite"
따로 : 커밋을 추가하지 않으려는 경우 기존 레거시 코드의 태그를 만들 수도 있습니다.
이를 수행하는 대신 새 저장소를 작성해야하는 경우 :
이것이 고아 지사를위한 것입니다.
git branch -m master new_branch #rename the branch
git push origin new_branch:new_branch #push the old code
git push origin :master #delete the origin/master branch containing the old code
git checkout --orphan master #create a new orphane branch - master. The first commit made on this new branch will have no parents and it will be the root of a new history totally disconnected from all the other branches and commits.
echo foo > file.txt
git add file.txt
git commit -m 'init commit'
git push origin master
기본적으로new_branch
master를 표시하므로 Github에서 기본 분기 를 임시로 설정 해야 할 수도 있습니다 .
현재 프로젝트에서 새 브랜치를 만들 수 있지만 리포지토리를 개인으로 표시 한 다음 새 코드를위한 새 브랜치를 만드는 것이 좋습니다. 이렇게하면 여전히 기존 리포지토리가 있지만 더 이상 사용되지 않는 작업으로 인한 부담은 없습니다.
쓸모없는 코드에서 여전히 부풀어 오를뿐만 아니라 준비가 될 때까지 몇 가지 혼란스러운 병합 충돌이있을 수 있기 때문에 나중에 지점을 다시 마스터로 병합하려고하는 대신이 방법을 사용하는 것이 좋습니다. 당기십시오. 이를 피하기 위해 완전히 다른 두 가지를 병합하는 것보다 명확한 가지로 시작하는 것이 가장 좋습니다.