Git 버그 전환 지점을 복구할 때 수정된 코드를 어떻게 저장합니까? (즉 현장을 어떻게 저장합니까?)

작업은 최신 버전을 개발하는 것 외에 원래의 버전에 대해 관례적인 유지보수와 수정을 해야 한다.그래서 두 지점 사이를 돌아다니며 전환하는 문제가 생겼다. 최신 버전의 코드는 지점 new에 있고 구 버전의 코드는 지점old에 있다. 나는 new에서 절반을 개발했는데 갑자기 어떤 사람이 나에게 개선된 수요를 주었다. 그래서 나는old로 전환하여 코드를 수정하려고 한다.이 장면에서 나는 세 가지 방법을 모색했다.

적시commit 코드


new 지점에서 이미 개발된 부분 코드인commit을 제거하고push를 하지 않은 다음old 지점으로 전환하여 코드를 수정하고commit을 완성하면 모든 지점이 서로 영향을 주지 않는 것이 이상적인 방법이다.

git stash 사용


때때로 Golang 코드의 절반을 썼는데도 컴파일되지 않아서 다른 지점의 버그를 바꾸라고 불린다.
new 분기에서 명령줄에 다음을 입력합니다.
git stash

혹은
git stash save “     "

이렇게 하면 당신의 코드는 자신의 이전 commit으로 돌아갑니다. 직접git stash를 사용하면git stash의 창고는 버전의 설명으로hash값을 직접 줍니다. 만약git stash save의'수정된 정보'를 사용하면git stash의 창고는 당신이 작성한'수정된 정보'를 버전의 설명으로 합니다.
다음에old 지점으로 돌아가서 코드를 수정하고 new 지점으로 돌아가서 입력하십시오:
git stash pop

혹은
git stash list
git stash apply stash@{0}

저장된 버전으로 돌아갈 수 있습니다.git stash pop의 역할은 git stash 창고의 마지막 버전을 꺼내는 것입니다. git stash apply stash @ {0}의 역할은 창고의 버전을 지정하는 것입니다. git stash list를 통해 모든 버전 정보를 볼 수 있습니다.
stash@{0}: On order-master-bugfix: 22222
stash@{1}: On order-master-bugfix: 22222

그리고 필요한 버전을 선택해서 실행할 수 있습니다.
git stash apply stash@{0}

이때 네가 놓아둔 코드가 돌아왔다.

IDE 도구의 shelve 기능 사용


일부 IDE 도구는 shelve의 기능을 제공한다. shelve는'...을 한쪽에 두다'는 뜻이다. 즉, 아직 다 쓰지 않은 코드를 한쪽에 두는 것이다.저는jetbrains사의IDEA와PhpStorm을 사용하여 shelve의 기능을 제공했습니다. 방법:
먼저 IDE의 밑에 있는 "Changes"를 찾아서 회의가 있는 local 옵션을 누르고 보류할 코드를 선택하고 오른쪽 단추를 누르고 "Shelve Changes"를 선택하며 제출한 입력 상자에 주석을 입력하여 돌아올 때 필요한 버전을 식별할 수 있도록 하고 "Shelve Changes"키를 누르면 됩니다.이때 옵션 카드에'Shelf'옵션 카드가 하나 더 있는데, 그 안에 네가 놓은 코드가 있다.
이 때 old 지점에서 코드를 수정하고 new 지점으로 돌아가서'Shelf'옵션 카드에서 복구할 코드나 버전을 선택하고 오른쪽 단추를 눌러서'Unshelve Changes'를 선택하면 방치된 코드가 돌아옵니다.
 
 
참조:
[오픈 소스 중국] Git 지점 관리 상세 정보
[랴오쉐펑] Git 분기 관리 - Bug 분기
Git Stash 사용법은 버그를 임시로 처리할 때 수시로 분기를 전환하여 수정을 잃지 않도록 합니다

좋은 웹페이지 즐겨찾기