2017-01-31 1 views
1

혹시 이런 일이 있었습니까?GitHub 충돌 해결 해결되지 않은 커밋 내역

개발 팀은 최근 GitLab 대신 코드 기반 &을 GitHub로 옮겼습니다. 다음과 같이 우리의 지점 설정은 다음과 같습니다

  1. 마스터
  2. 개발을 준비
  3. 개별 지점 1
  4. 개별 지점 2는이를 위해 브랜치 호출됩니다 [이 질문에 대한 BRANCH1 호출됩니다] 질문]
  5. 개별 분기 3 [이 질문은 branch3이라고합니다]
  6. ...

분기 1에서 개발 한 분기가 완료되었지만 개발 분기에서 분기 1로 통합되어 개발로 병합되기 전의 상황이있었습니다. 그는 GitHub의 Resolve Conflicts 버튼을 사용하여 충돌에 대한 유용한 웹 도구를 보냈습니다 ... 여기 https://help.github.com/articles/resolving-a-merge-conflict-on-github/을 참조하십시오. 충돌이 발생하면, 그는 branch1에서 Development로 pull 요청을 열어 병합 전에 검토합니다. 우리는 수동 병합 충돌 이전의 그의 커밋 내역과 코드 변경 사항이 모두 사라 졌음을 알았고 변경 사항을 검토 할 방법이 없었습니다. 낯선 사람은 여전히 ​​코드가 이미 Development에 병합 된 것처럼 보였지만이 일의 역사가 없었기 때문에 그 일이 어떻게 일어 났는지 알지 못합니다.

분기 2와 비슷한 상황이 발생했습니다. Development에서 branch2로 병합 할 때 충돌이 있었고, GitHub에서 병합 도구를 사용했으며 모든 커밋 기록과 코드 변경 사항은 사라졌습니다. 그러나 어떤 코드도 실수로 개발에 병합되지 않았습니다.

branch3도 병합 충돌이 있었지만 이러한 충돌을 해결하기 위해 명령 줄 (GitBash)을 사용했으며 개발에 병합 할 준비가되었을 때 커밋 기록이 남아있었습니다.

branch1과 branch2에서 발생했던 문제는 GitHub를 통한 병합 도구와 관련이 있습니까? 구글은 병합 요청을 끌어 않았을 때

감사합니다 :)

답변

1

그것은 단계에 의한 것 .. 너무 도움이되지 않았습니다. 병합 요청 (PR)은 병합보다 먼저 처리해야합니다. PR의 목적은 실제로 실행되기 전에 다른 사람들이 병합을 검토하도록하는 것입니다. branch1을 개발 분기에 병합하려면 개발 분기를 기반으로 한 pull 요청을 만들고 branch1을 비교할 수 있습니다. PR이 승인 된 후 branch1이 개발 분기로 병합 될 수 있습니다.

개발에서 branch1까지의 단계 병합은 불필요한이거나 병합하여 branch1을 개발과 병합 할 경우 위험합니다. 우리는 그래프 아래로 설명 할 수 있습니다

A---B---C  branch1 
    \ 
     D---E  Development 

병합 개발 후 개발 지점에 병합 지점 한 후

A---B---C---F branch1 
    \ /
     D---E  Development 

을 BRANCH1하기 위해, 그것은 단지 지점 1을 발생하고 커밋 지점을 개발한다. 빠른 전달 병합입니다.

A---B---C---F branch1, Development 
    \ /
     D---E  

그래서 당신은 단지 개발 지점에 BRANCH1을 병합해야 그래프는 회복

A---B---D---E--- F’  branch1 
    \  /
     ----C----  Development 

해야 전에 worongly 병합의 상태 (별도 commitC 및 E)로 BRANCH1 및 개발, 당신을 명령 아래에 필요 :

git checkout branch1 
git reset --hard <commit id for C> 
git checkout Development 
git reset --hard <commit id for E> 
+0

고마워요! 다른 개발자들에게 말할 것입니다! :) – AisRuss