나는 어떻게 고통없이 병합 갈라지는 기능을 가지?

0

질문

나는 열 PR 지점에 불 feature-b 는 곧 병합 main. 그러나 나는 그것을 썼을 지원 feature-a 점은 진행중이다. 내가 원하는 작업을 계속하려면에 feature-a 과 작업을 활용했에 feature-b 되기 전에는 병합 main.

는 가장 좋은 방법은 무엇입을 위해 나를 이렇게 해야 합니까? 우리의를 병합 main 은 숙청,그래서 모든 커밋에 feature-b 다시 작성됩으로 단일 commit 때 그것은 병합 main. 따라서,리베이스 feature-afeature-b 지금 결과로 미래 분쟁을 때 고통을 내가 병합 feature-a 하기 main 기 때문에 동일한 변경이 이루어졌 다른가한다.

는 가장 좋은 방법은 무엇입을 위해 나를 포함하에서 변경 feature-bfeature-a 분기 동안 최소화하는 미래의 고통 때 나는 결국 병합 feature-a 하기 main?

업데이트

내가 먼저 가서:

  1. 주소 feature-afeature-b
  2. 더 변경(1commit 용) feature-afeature-b 되고 있었 검토
  3. 스쿼시-병합 feature-b 그것은 승인(더 추가 변경이 필요하므로 feature-a 이미 있는 정확한 코드는 합병되었)
  4. 최신을 뽑아 main 고베이스 feature-a 그것의 상단에

으로 두려워,git 불평하는 여러 가지 파일은"모두 변경"또는"모두를 추가". 이 프로그램을 실시할 것을 조금 귀찮지만,간단하게 수정할 수 있습니다. 무엇이 그것을 매우 혼란스러운 경우에 특히 어떤 시간의 흐름이 전달된 것입 병합 의견에 파일이 있습니다.

mainfeature-a 가지는 정확히 동일한 코드 모든 파일에서,내가 최고 성가신 행동:

  1. 에 대한"모두를 추가한"파일을 병합 의견에 대한 추가"머리에(현재의 변경)"과"부모의#HASH(commit 메시지가)". 나는 선택을 강요 하거나 다른지만 그들은 정확히 동일합니다!
  2. 에 대한"모두를 수정한"파일을 수 있습니다. "헤드(현재의 변경)"을 보여줍니다 올바른 코드입니다. 그러나,"부모의#HASH(commit 메시지가)"섹션에서의 절반 코드입니다. 다시 지만 모두 가지가 모든 코드!! 나는 아이가 당신이 받아들이는"들어오는 변경"(으로 표시하여 대 코드)을 제거하는 코드에서는 모두 가지!

하지 않았다면 내 이러한 변경에서 연속으로 나가 길을 잃고 혼동하는 것에 대해 자식은 나를 보여주는. 는 것은 참으로 여러 번 일어난 과거에 하지만 나 놓을 수 없는 손가락에서는 무슨 일이 있었는 잘못입니다. 이제는 복제이며 검증된 행동을,나는 완전히 어리둥절해 무엇 git 을 하고 있고 사람들이 어떻게 다루고 있는 이 시나리오.

업데이트 2

인,그 이유를 참조하십시오려고 제거하는 코드는 지금이다. 그것 때문에서 변경한 내용 feature-b 에 여러 개의약과 그 commits 종료되고 숙청을 때 병합 main 가 발생했습니다. 이 의심할 여지가 없는 고통의 원인이며 왜을겠군요합니다.

git
2021-11-23 23:26:24
1

최고의 응답

0

저는 확신하지 않 최종 병합/스쿼시는 것이 지저분하다. 는 경우 같은 변화에서 만들어지고 다른 커밋,어쩌면 Git 을 검출할 수 있는 행복합니다.

만약 당신이 할 것이라고 생각되지만,당신이 무엇을 할 수 있다:

  1. 용신 feature-a 지점 feature-b 지금,그래서 당신 feature-a 는 지점이 포함되어 있료 기 B 고에서 진행 중인 기능은 당신이해야 할 무엇이다.
  2. 후에 feature-b 를 얻으로 병합 main 점,리베이스 feature-a 에 commit 즉시 기 전에 이 숙청 커밋을 만들어 그 기능에 대한 이해야 원활하게 이루어질 것입니다.
  3. feature-a 점,사용 git reset --soft XX 은 commit hash 한 숙청 커밋을 만들어 그 기능 B. 다음 사용 git commit 하다. 지금은 숙청 commit 해당 내용과 동일하의 현재 상태에서 작동 기능 A. 지만 이 commit 의 부모가 커밋하는 기능을 추가했 B 의 주요지점,그래서 이 commit 의 차이점으로는 부모 포함 기능이 잘 작업을 계속하는 기능을 이 시점에서,또는 단지 요청합니다.

는 방법에 의해 나는 자신감을 할 필요가 없이 지저분한 경우 조직에 사용되는 병합 대신 개상을 추가하는 것을 주요 지점에 있습니다. 그리고 거기에는 것의 이익을 보존하는 실제 역사의 코드 작업에서,그 보존 이 인공적인 역사입니다.

2021-11-23 23:52:54

명확하게하기 위해,우리는 사용하지 않는 개상-우리가 사용하는 숙청가한다. 나 99%확실한 것 야 지저분대로이 시도했다. Git 얻을 끔찍하게 혼란에 의해 고유한 커밋을 만들기 같은 변경합니다. 내가 기꺼이 그것을 시도 불구하고 다시 보고 다시:)
me--

@me--나무를 잘 숙청 커밋이 리베이스
evolutionxbox

리베이로 이동하는 지점을 시작하도록 다른 점은,다시 작성하는 역사의 방법 개발되었습니다. 부 변경하는 것을 의미 전체 지점으로 한 commit 폐기 역사의 방법 개발되었을 제외한 최종 결과입니다.
David Grayson

@DavidGrayson 참조하시기 바랍 내 업데이트 질문에 대한 설명의 행동을 볼에서 사용할 수 있습니다..
me--

확인. 귀하의 4 단계("최신을 뽑아 주베이스 기능이 그것의 상단에")은 무엇이 당신을 발생하는 모든 고통이 그래서 그것은 뭔가가 나는 것이 좋습니다. 대신 하는 4 단계에서,당신의 질문을 시도 2 단계와 3 단계에서 대답이다.
David Grayson

감사@DavidGrayson. 그것은 그렇게 보인다. . . 힘들
me--

내가 말했듯이에서 내가 대답하는 데 문제가 발생하여 사람이 모든 일을 읽고 부수 단순히 병합.
David Grayson

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................