Git-은 그것을 당기거나 재구축 작업을 할 때에는 지점과 다른 사람들

StackOverflow https://stackoverflow.com/questions/96615

  •  01-07-2019
  •  | 
  •  

문제

그렇다면 내가 사용하는 지사는 원격(랙)을 가지고 내가 원하는 최신,나는 아직도 불분명한 경우 해야 하는지 git pullgit rebase.나는 생각을 읽었는 일을 git rebase 작업을 할 때에 다른 사용자와,그것은 스크류들을 때 그들은 당기거나 재구축.는 것이 사실입니까?우리는 모든 사용 git pull?

도움이 되었습니까?

해결책

Git pull 조의 2 명

  • git fetch(동기화하고 현지 repo 최신 물건을 원격)
  • git merge(병합에서 변경 먼지,어떤 경우,귀하의 지역적지점)

git 은 리베이 거친 해당하는 git merge.그것은 가져 오지 않도 원격으로.사실 그것은 하지 않는 적절한 병합 중 하나,그것은 리플레이 커밋의점 당신은에 서있는 후 새로운 커밋에 초점.

그 목적은 주로하자 청소기의 역사.그것은 많은 것을 가지고 가지 않는 병합하여 많은 사람들이 전에 과거 역사에서 gitk 얻은 정말 스파게티와 같은 것입니다.

는 최고의 그림 설명에서 볼 수 있는 첫 번째 2 그래픽 .하지만 여기서 설명하는 예입니다.

가 2 분기:마스터와 mybranch.에 서 있을 때 실행할 수 있습 mybranch

git rebase master

를 얻을 수 있습니다 새로운 것에서 마스터 삽입하기 전에 나의 가장 최근의 범 mybranch.이것은 완벽한 때문에,경제 병합이나 리베이스에서 물건 mybranch 에서 마스터,나의 새로운 커밋은 추가한 선형으로 바른 후 가장 최근의가한다.

문제를 참조하면 어떻게 되나 리베이스에서"잘못된"방향입니다.면 난 그냥 가장 최근의 마스터(와 함께 새로운 변화)및 마스터로부터 저는 리베이(동기화하기 전에 내점):

git rebase mybranch

이제 내가 무엇을 그냥 나는 삽입되는 내 새로운 변경 사항이 어딘가에 주인의 과거입니다.메인 라인의 커밋가 변경되었습니다.와 방식으로 인해 git 은 작품으로 commit id,모든 커밋(에서 마스터)는 재생을 통해 내는 새로운 변화가 새로운 id 입니다.

만,그것은 약간의 설명하기 어려운 단지 말...희망이트의 의미:-)

어쨌든,나의 자신의 워크플로 this:

  • 'git pull'새로운 변경 사항을 원격에서
  • 스위치 mybranch
  • 'git 은 리베 master'을 가지고 주인의 새로운 변화에 나 commit 역사
  • 치를 마스터
  • 'git merge mybranch'만 빠르게 전달할 때 모든 것에서 마스터도에 mybranch(따라서 피 commit 재정렬 문제에 대중점)
  • 'git push'

하나의 마지막 단어입니다.나는 강하게 사용하는 것이 좋습 리베 때 차이는 사소한 것(예:에서 작업하는 사람들이 다른 파일 또는 적어도 다른 라인).그것은 잡았다 나는 설명하려고만 있지만,그것은 많은 청소기의 역사.

곧 있을 수 있으므로 상당한 충돌(예:동료는 이름에 뭔가의 무리에서 파일),나는 강하게 추천합니다.이 경우에는,당신이 당신의 충돌을 해결하고 다음을 투입해상도입니다.플러스 측면에서 병합하는 것이 훨씬 더 쉽 해결이 있을 때 충돌이 발생합니다.아래 쪽 당신의 기록이 될 수 있을 하면 많은 사람들이 병합 시:-)

행운을 빕니다!

다른 팁

Git rebase 은 다시 쓰기의 역사입니다.을 실행해서는 안 됩니다 이는 나뭇가지에 있는"공공"(즉,지점,다른 사람과 공유하는).만약 누군가가 클론 지점 그리고 당신은 개는 지점--할 수 있습니다 그들은 더 이상 끌어/편의점--를 던져 그들의 오래된 한다고 다시 풀이다.

이 문서에 포장된 소프트웨어 git 는 매우 가치있는 읽습니다.그것은 더 많은 관리 소프트웨어를 배포하지만 그것은 확실히 기술 및 방법에 대해 이야기 가지를 사용할 수 있/관리/공유합니다.그들에 대해 이야기를 재구축하고를 당길 때와 각종의 결과 각각있다.

한마디로 말하면,그들은 모두 그들의 장소가 있지만 당신은 정말 grok 차이가 있습니다.

git pull 가 병합하는 경우 당신은 커밋에 없는 원격 지점에 있습니다. git rebase 다시 쓰는 모든 기존 커밋 당신은 상대적을 원격니다.그들은 유사한할 수 있다는 점에서 모두 충돌이 발생하지만,제가 생각하는 사용 git rebase 할 수 있는 경우 원활하게 할 수 있습니다.중 재구축 작업을 구체화할 수 있습니다 당신의 커밋 그들처럼 그렇게 그들이 새로 적용되는 최신 버전의 원격니다.병합은 아마도 더 적합한 이상 개발 주기는 지점에는 더 많은 역사입니다.

가장 좋아하는 다른 것들에 git,많은 기능이 중복되지 않을 수용하는 다양한 스타일의 작업이다.

체크 아웃이 우수한 Gitcasts 에 고 merge 뿐만 아니라 리베이스.

당신이 원하는 경우를 끌어 원본에 영향을 미치지 않고 원격 가지고 없이 변경에서 로컬 사본,그것은 최고의 사용 git pull.

내가 믿고 있는 경우 작동하는 지점을 변경하여 사용 git 은 리베이 변경의 기초는 지점을 최신 원격 마스터는,당신은 유지하는 모든 지점의 변화,그러나 지점은 이제 분기 마스터에서 위치보다는 이전에서 분기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top