이 질문을하는 방법은 여러 가지가있을 수 있으므로 여기에 문제에 대한 설명이 있습니다. 저는 마스터 작업을하고 일부 작업을 수행 한 다음 그 작업을 보류하기로 결정했습니다. 몇 가지 커밋을 백업 한 다음 쓰레기 작업을 시작하기 전에 분기했습니다. 실제로 이것은 잘 작동하지만 이제는 주요 개발 분기로 다른 분기가 있습니다. 마스터 작업을 다시 수행하고 있지만 정크 작업이없고 작업이 다른 지점에 있다고 말하면서 어떻게 변경해야할지 궁금합니다.
이것이 질문 / 해결 될 수있는 몇 가지 방법 : 내 마스터 브랜치의 이름을 다른 이름으로 바꾸고 다른 이름을 마스터로 바꾸려면 어떻게합니까? 마스터를 백업 한 다음 이전에 백업 한 모든 커밋이 다른 브랜치에 있도록하려면 어떻게해야합니까?
모든 (빠른) 답변에 감사드립니다! 그들은 모두 좋습니다.
답변
다른 주석 외에도 -m (이동) 스위치를 git-branch로 전환하는 것이 도움이 될 수 있습니다. 이전 마스터의 이름을 다른 이름으로 바꾼 다음 새 분기의 이름을 master로 바꿀 수 있습니다.
git branch -m master crap_work
git branch -m previous_master master
답변
이와 같은 문제를 방지하려면 다른 개발 전략을 고려해야한다고 생각합니다. 나에게 가장 잘 작동하는 것 같은 것은 마스터 브랜치에서 직접 개발을하지 않는 것입니다. 내가 만드는 변경 사항에 관계없이 항상 새 코드에 대한 새 분기를 만듭니다.
git checkout -b topic / topic_name master
거기에서 공개 리포지토리에 변경 사항을 푸시 할 수 있습니다.
git push pu topic / topic_name
또는 결국 내 마스터 브랜치에 다시 병합합니다.
git checkout master && git merge topic / topic_name
진정으로 이전 시점으로 돌아가서 마스터로 설정해야하는 경우 현재 브랜치의 이름을 다른 이름으로 변경 한 다음 이전 버전을 마스터로 확인할 수 있습니다.
git branch -m 마스터 정크 git co -b master old_sha1_value
답변
에서 시작하고 master
라는 브랜치 in-progress
를 만든 다음 master
이전 커밋으로 재설정 합니다.
$ git branch in-progress
$ git reset --hard HEAD^
답변
이것은 비교적 쉽습니다.
git checkout -b fake_master master # fake_master now points to the same commit as master
git branch -D master # get rid of incorrect master
git checkout -b master real_master # master now points to your actual master
git checkout master # optional -- switch on to your master branch
답변
이렇게하면 마스터를 한 단계에서 원하는 지점으로 설정할 수 있습니다.
git checkout -B master new_point