나는 나의 일이 쉬울 것이라고 생각하면서 마스터 지점 에서 일하기 시작했습니다 . 잠시 후 더 많은 작업이 필요하다는 것을 깨달았고이 모든 작업을 새로운 지점에서 수행하고 싶습니다.
새로운 브랜치를 만들고 더티 마스터 없이 어떻게 모든 변경 사항을 가져갈 수 있습니까?
답변
아직 커밋하지 않은 경우 (1 : 분기) 및 (3 : 체크 아웃)만으로 충분합니다.
또는 하나의 명령으로 :git checkout -b newBranch
git reset
매뉴얼 페이지 에서 언급했듯이 :
$ git branch topic/wip # (1)
$ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanation below)
$ git checkout topic/wip # (3)
- 커밋을했지만 ”
master
“브랜치 에있는 것은 너무 이른 것입니다 . 토픽 브랜치에서 계속 연마하고 싶기 때문에 ”topic/wip
“브랜치에서 현재 브랜치를 생성 하십시오HEAD
. master
세 가지 커밋을 제거하기 위해 분기를 되감습니다 .- ”
topic/wip
“분기로 전환 하고 계속 작동하십시오.
참고 : git reset --hard
명령 의 “파괴적”효과로 인해 (인덱스 및 작업 트리가 재설정됩니다. 작업 트리에서 추적 된 파일의 변경 사항 <commit>
은 삭제됩니다) 오히려 다음과 같이 진행합니다.
$ git reset --soft HEAD~3 # (2)
이렇게하면 개인 파일 (인덱스에 추가되지 않음)이 손실되지 않습니다.
이 --soft
옵션은 인덱스 파일이나 작업 트리에 전혀 영향을 미치지 않습니다 (그러나 <commit>
모든 모드와 마찬가지로 헤드를으로 재설정 ).
함께 힘내 2.23+ 의 새로운 명령을git switch
(같은 종류의 하나 개의 라인에서 분기를 만들 것 reset --hard
때문에 그 효과 조심) :
git switch -f -c topic/wip HEAD~3
답변
이 질문에서 언급했듯이 : 힘내 : 마스터에서 태그가 지정되지 않은 / 커밋되지 않은 변경 사항으로 분기를 만듭니다 . 숨김은 필요하지 않습니다.
그냥 사용하십시오 :
git checkout -b topic/newbranch
커밋되지 않은 작업은 새 지점으로 이동합니다.
당신이 밀어하려고하면 다음 메시지가 나타납니다
치명적 : 현재 분기 기능 / NEWBRANCH에 업스트림 분기가 없습니다. 현재 분기를 누르고 리모콘을 업스트림으로 설정하려면
git push --set-upstream origin feature/feature/NEWBRANCH
원격으로 분기를 작성하도록 제안 된대로 수행하십시오.
git push --set-upstream origin feature/feature/NEWBRANCH
답변
이 단계를 따르세요:
-
새 지점을 만듭니다.
git branch newfeature
-
새 지점 체크 아웃 : (이는 작업을 재설정하지 않습니다.)
git checkout newfeature
-
이제이 새로운 브랜치에서 작업하십시오.
git commit -s
위의 단계를 사용하면 원래 분기를 깨끗하게 유지하고 ‘git reset –hard’를 수행하지 않아도됩니다.
답변
커밋을 아직 수행하지 않았으므로 모든 변경 사항을 숨김에 저장하고 새 분기로 만들고 전환 한 다음 해당 변경 사항을 작업 트리에 다시 넣을 수 있습니다.
git stash # save local modifications to new stash
git checkout -b topic/newbranch
git stash pop # apply stash and remove it from the stash list
답변
새 브랜치에 새로운 변경 사항을 추가하고 원격으로 푸시하려면 :
git branch branch/name
git checkout branch/name
git push origin branch/name
종종 비트 버킷에 새로운 브랜치 / 커밋이 보이지 않는 이유는 무엇입니까?