문제

이 질문을 하는 방법은 여러 가지가 있을 수 있으므로 여기에 문제에 대한 설명이 있습니다.나는 마스터 작업을 하고 있었고 몇 가지 작업을 수행한 후 그 작업을 보류하기로 결정했습니다.나는 몇 개의 커밋을 백업한 다음 쓰레기 작업을 시작하기 전부터 분기했습니다.실제로 이것은 잘 작동합니다. 이제 주요 개발 분기와 다른 분기가 생겼습니다.어떻게 상황을 바꿀 수 있는지 궁금해서 다시 마스터 작업을 하고 있지만 정크 작업이 없고 작업이 다른 지점에 있다고 말했습니다.

이 문제를 질문/해결할 수 있는 몇 가지 방법은 다음과 같습니다.내 마스터 브랜치의 이름을 다른 이름으로 바꾼 다음 다른 이름을 마스터로 바꾸려면 어떻게 해야 합니까?마스터를 백업한 다음 과거에 백업한 모든 커밋이 다른 브랜치에 있도록 하려면 어떻게 해야 합니까?

모든 (빠른) 답변에 감사드립니다!그들은 모두 좋다.

도움이 되었습니까?

해결책

다른 설명 외에도 git-branch에 대한 -m(이동) 스위치가 도움이 될 수 있습니다.이전 마스터의 이름을 다른 이름으로 바꾼 다음 새 브랜치의 이름을 마스터로 바꿀 수 있습니다.

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 master junk
 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top