다음은 내가 시도한 작업 흐름입니다.힘내/TFS 비디오.
그래서 개발 지점에서 지점을 만듭니다.
$ git checkout -b my-feature-branch development
그런 다음 변경하고, 스테이징하고, 커밋하고, 변경 사항을 TFS 서버에 푸시합니다.
이제 TFS 웹 인터페이스로 이동하면 서버에 "my-feature-branch"가 있습니다.
"New Pull Request"를 클릭하고 개발용 PR을 생성한 후 이 PR을 수락합니다. 이 프로세스는 TFS 서버에서 "my-feature-branch"를 삭제하지만 내 로컬 컴퓨터에는 남아 있습니다.
이 시점에서는 모든 것이 훌륭합니다.
내 로컬 컴퓨터로 돌아가서 기능 분기에서 전환합니다.
git checkout development
로컬 지점 삭제
git branch -d my-feature-branch
warning: deleting branch 'my-feature-branch' that has been merged to
'refs/remotes/origin/test-pr', but not yet merged to HEAD. Deleted branch my-feature-branch (was d525adc).
최신 정보 받기 -
git pull -p
때로는 삭제하기 전에 가져오기를 수행할 때 삭제가 실패하여 강제 삭제해야 할 수도 있습니다.
git branch -D my-feature-branch
내 작업 흐름이 잘못되었나요? 삭제하기 전에 일종의 병합을 수행해야 합니까? 왜 git은 끌어오기 후에 기능 브랜치가 끌어오기 요청으로 병합되었다는 사실을 모르고 오류 없이 삭제할 수 있나요?
답변1
왜 git은 끌어오기 후에 기능 브랜치가 끌어오기 요청으로 병합되었다는 사실을 모르고 오류 없이 삭제할 수 있나요?
제공해 주신 정보로는 알기 어렵습니다. 다음은 두 가지 추측입니다.
로컬 기능 분기를 삭제하기 전에 당기시겠습니까? 그렇지 않다면 당연히 메인 브랜치에는 새로운 커밋이 없을 것입니다.
기능 분기를 어떻게 병합합니까? 일반 병합 또는 스쿼시 병합을 사용합니까? 일반적인 병합은 기능 브랜치 커밋을 메인 브랜치에 통합하므로 Git은 모든 것이 거기에 있다는 것을 알 수 있습니다. 스쿼시 병합인 OTOH는 다음을 모두 포함합니다.콘텐츠하지만 새 커밋을 생성하여 이를 수행하고 Git은 기능 브랜치 커밋에서 새 스쿼시된 커밋이 생성되었다는 사실을 추적하지 않으므로 기능 브랜치가 병합된 것으로 생각하지 않습니다.
(강력히 추천합니다~ 아니다스쿼시 병합을 사용합니다. 표준 병합처럼 원래 커밋을 유지하면 Git이 더 잘 작동하는 데 도움이 됩니다.)