2012-09-06 4 views
1

나는 여전히 Git을 처음 접하기 때문에 내 바보 같아 보아라.Git 풀을 잘 모르겠다.

원격 저장소에서 변경 사항을 가져 오는 동안 문제가 발생했습니다. 나는 이전에 특정 파일에 대한 많은 변경 작업을 수행했으며 팀 구성원은 전혀 작동하지 않을 일부 변경 사항을 적용했습니다. 나를 혼란스럽게하는 것은 그의 변화가 내가 한 일을 어떻게 바꾸는 것을 막을 것인가? 마지막 커밋을 실행 취소하고 거기에서부터 시작하는 것만 큼 간단합니까?

답변

1

git는 분산 버전 제어 시스템이므로 사용하는 신뢰 모델에 따라 다릅니다. 당신과 아마 둘 다이 경우 마스터가 변경되었을 것이므로 둘 다 (아마도) git pull origin master을 수행하고 있습니다. 이 작업을 수행 할 때 (또는 실제로 구성된 git fetchgit merge) 다른 사람이 수행 한 변경, 즉 저장소에 대한 액세스 권한이 부여 된 다른 사용자를 신뢰한다고 기본적으로 말합니다. 이것은 아마도 당신이 오늘있는 곳일 것입니다.
대화 형 리베이스 (예 : git rebase -i HEAD~10)를 사용하면 기록의 커밋을 단순히 삭제할 수 있습니다. 이전 커밋을 취소하는 것보다는 변경 사항을 커밋해야하고 커밋 된 커밋을 가져 오면 더 커밋되고 도달하기가 더 힘듭니다. 하지만 rebase를 큰주의를 기울여 사용하십시오. 그런 일을하는 법을 배울 때 전체 프로젝트를 다른 디렉토리에 백업하는 것이 좋습니다. 결과를 신중하게 검토하고 커밋하기 전에 검토하십시오.

  • git fetch 먼저 수행하고 아래로 가져되는 변경 사항을 조사 지점에서

    • 일 : 다시 발생하지 않도록 앞으로 많은 옵션이 있습니다

      , 여기에 몇 가지 있습니다 그들을 병합하기 전에 분기를 추적 원점으로.

    • 변경 사항을 검토하고 승인 한 사람을 임명

    • 옵션에 대한 추가 정보를 원하시면3210

    , 병합 가져오고있는 옵션 리베이스 참조하십시오 : 당신이 할 수있는 일
    git branch, fork, fetch, merge, rebase and clone, what are the differences?

  • +0

    굉장, 고마워! – Raggeth

    0

    • 로컬 코드를 커밋하고 풀을입니다
    • 더 나은 옵션은 어떤 파일이 병합 될 것인지 보여줄 자식 페치 (fetch)입니다.
    • 두 파일이 공통으로 작동하는 가능성이 있습니다. 여전히 서로 다른 라인에서 작업 한 경우에는 충돌없이 재귀 적으로 병합됩니다.
    • 충돌이있는 경우 올바른지 고려하여 해결 한 다음 해결 된 파일을 다시 커밋하십시오. 마지막으로 코드를 밀면 변경 사항이 성공적으로 푸시됩니다.
    +0

    팁 주셔서 감사합니다 - 정말 고마워요! – Raggeth

    관련 문제