programing

"원격 추적 지점 '출발/개발'을 개발에 통합하는 이유는 무엇입니까?

cafebook 2023. 9. 25. 23:05
반응형

"원격 추적 지점 '출발/개발'을 개발에 통합하는 이유는 무엇입니까?

조직 내에서 다음 메시지로 커밋을 수행하는 사람은 저뿐입니다.

원격 추적 분기 '출발/개발'을 통합하여 개발

그들을 야기하기 위해 제가 무엇을 하고 있는지는 모르겠지만, 그만하고 싶습니다.

이 커밋을 작성하기 위해 어떤 명령을 내릴 것이며, 커밋을 생성하지 않기 위해 사용해야 할 적절한 명령은 무엇입니까?

git pull아마도 커밋을 만들고 있을 겁니다로컬 커밋을 한 후 실행하는 경우git pull다른 사람이 저장소에 커밋을 푸시하면 Git은 다른 개발자 커밋을 다운로드한 다음 로컬 지점에 병합합니다.

나중에 이러한 병합 커밋을 방지하는 방법

당신은 사용할 수 있습니다.git pull --rebase미래에 이런 일이 발생하지 않도록 하기 위해서입니다. 하지만 리바이징은 위험이 있으므로, 저는 완전히 피하는 을 권장합니다.

대신 다음과 같은 사용 패턴을 따르길 권장합니다.

# download the latest commits
git remote update -p

# update the local branch
git merge --ff-only @{u}

# if the above fails with a complaint that the local branch has
# diverged:
git rebase -p @{u}

설명.

  • git remote update -p 추적 합니다)를 예:origin/master작업 디렉토리, 인덱스 또는 로컬 브랜치를 터치하지 않습니다.

    -p인수 prunes가 업스트림 분기를 삭제했습니다.,foo에서 삭제됩니다.origin소,git remote update -pr가 됩니다.origin/foo조를

  • git merge --ff-only @{u}합니다)를 합니다.@{u}인수)를 로컬 분기로 전달하지만 로컬 분기가 업스트림 분기로 "빠른 전달"될 수 있는 경우에만 해당됩니다(즉, 분기되지 않은 경우).

  • git rebase -p @{u}사용자가 만들었지만 아직 시도하지 않은 커밋을 업스트림 브랜치 위에서 효과적으로 이동하므로 피하려고 하는 어리석은 병합 커밋을 만들 필요가 없습니다.이렇게 하면 개발 이력의 선형성이 향상되어 검토가 쉬워집니다.

    -poption은 Git합니다를(를) 보존하도록 합니다.이로 인해 Git는 커밋을 다시 기준으로 선형화하지 못합니다.들어 이 합니다.master.없이.-p은 됩니다.master서에 의해 로서.git rebase이렇게 가 더 더 도 않을 것입니다 이렇게 되면 개발 기록을 검토하기가 더 어려워지고, 더 쉬워지지 않습니다.

    주의:git rebase기대한 대로 되지 않을 수도 있으므로, 를 누르기 전에 결과를 검토하십시오.예를 들어,

    git log --graph --oneline --decorate --date-order --color --boundary @{u}..
    

는 이 을 더 선호합니다.git pull --rebase다음과 같은 이유로

  • 기록을 수정하여 해당 커밋을 통합하기 전에 수신 업스트림 커밋을 볼 수 있습니다.
  • 를 할 수 .-p(--preserve-mergesgit rebase으로 병합)을 다시 작성해야 예:미 푸시합)master).

:git upgit pull

을 생성하는 을 권장합니다.up:

git config --global alias.up '!git remote update -p; git merge --ff-only @{u}'

이제 지점을 최신 상태로 전환하기 위해 필요한 작업은 다음과 같습니다.

git up

git pull바탕으로 기준을 조정해야 로컬 지점이 업스트림 지점에서 분기되어 오류가 발생할 경우 이를 바탕으로 다시 시작하십시오.

안되나요?git pull --rebase?

중인 입니다.git pull --rebase는를 실행하는 과 같습니다.git fetch를 이어dgit rebase이렇게 새 전달이 을 새 이렇게 하면 새 업스트림 커밋으로 빨리 전달이 시도되지만, 그렇지 않은 경우 로컬 커밋을 새 업스트림 커밋으로 기본 전달합니다.보통은 괜찮지만 주의해야 합니다.

  • 재정제는 고급 주제이므로 재정제하기 전에 시사하는 바를 이해해야 합니다.
  • git pull --rebase커밋을 통합하기 전에 검토할 기회를 제공하지 않습니다.리베이스가 일 가능성이 즉,.rebase --onto,merge,reset, 아니면push -f 더 도 있습니다.rebase.
  • ( )--preserve-merges형상 분기의 의도적 병합이 선형화되어 모든 형상 분기 커밋을 재생(따라서 복제)하게 됩니다.

""가 만든 "git pull

에서 만든 을 아직 않은git pull를 할 수 .의도적인 병합(예: 이미 푸시된 피쳐 분기를 현재 분기에 병합)을 하지 않았다고 가정하면 다음 작업이 수행됩니다.

git rebase @{u}

에게 에게합니다 Git 에서 가능한 비 커밋을 합니다.HEAD 밋)에서할 수 있는 커밋을 뺀 값,합니다.@{u}는 ", 즉 는 지m 브랜치)"로,즉,origin/master한다면HEAD이다.master에서 다시 선택)한 현재 재생 . () . 하면 비 합니다에 합니다.git pull.

를 수 .git rebase @{u}다른 지점의 모든 것을 재생하기 때문입니다.다를 것이 git up피해서, 피하세요.git pull다같이.당신은 아마 다음을 사용해야 할 것입니다.reset에 의해 합니다.pullo를 합니다.git rebase -p @{u}.-p 논쟁git rebase 결국서,다를 하게 될 도 있습니다.reset합니다(으)로@{u}그런 수행합니다스러웠습니다),합니다().

git fetch
git rebase origin/master

그 정도면 됐다.또는 당기기를 계속 사용하려면

git pull --rebase

또한 구성에서 해당 분기를 자동으로 기본 재배치하도록 설정할 수도 있고, 이후에 만든 다른 추적 분기에 대해 자동으로 설정할 수도 있습니다.그럼 그냥 사용하는 것으로 돌아가시면 됩니다.

git pull

이 페이지의 "병합 대신 기본 재배치로 끌어오기" 섹션에서 자세한 내용을 확인하십시오.

https://mislav.net/2010/07/git-tips/

원격 추적 분기 '출발/개발'을 통합하여 개발

오리진/디벨롭(원격 변경)을 개발(로컬 변경)에 병합한 깃풀인데, 코드 손실 등으로 인해 많은 문제가 있었습니다.

따라서 이제 우리의 워크플로우는 깃 풀 합병과 관련된 어떠한 문제도 방지하고 일을 단순하게 유지합니다.기본적으로 리베이스와 같지만 브랜치를 병합하여 가장 기본적인 gui로 쉽게 할 수 있습니다.다른 변경사항은 항상 사용자의 변경사항에 병합되므로 충돌 시 변경한 줄에 영향을 미치는 내용만 수정할 수 있습니다.그리고 최종 커밋에는 사용자의 변경 사항만.

  1. 체크아웃 및 당김 현상
  2. 개발에서 피쳐 분기 X 만들기
  3. X에 대한 작업을 수행합니다.
  4. 들어오는 변경사항을 가져오려면 체크아웃 및 꺼내기
  5. 원격 변경사항이 있는 경우 병합을 X로 전개합니다.
  6. 충돌이 있는 경우 해결
  7. 만약 5개나 6개를 했다면 4개로 돌아갑니다.
  8. X를 병합하여 개발
  9. 푸시 디벨롭

네, 나뭇가지를 갈아 끼우고 당기고 하는 게 좀 번거로워 보이네요.하지만 리베이스 문서를 보면 공유 지점에서 사용하지 말라고 경고합니다.따라서 동일한 X 브랜치를 생성한 다음 git fetch origin develop 및 git rebase origin/develop를 생성하게 되며, 여전히 해당 rebased X 브랜치를 다시 공유 브랜치에 병합해야 하므로 동일한 양의 작업이 수행됩니다.

일반적으로 5단계에서 원격 변경이 있는 경우와 특히 6단계에서 충돌이 있는 경우.다시 테스트를 해야 하고 시간이 걸리므로 다시 4단계로 이동합니다.8단계와 9단계를 하는 경주 조건이 있지만, 정말로 다른 사람이 당신의 바로 앞을 밀어붙이는 코너 케이스입니다.

언급URL : https://stackoverflow.com/questions/6406762/why-am-i-merging-remote-tracking-branch-origin-develop-into-develop

반응형