지역 지점에서 다른 지점으로 "당기는"방법은 무엇입니까?


231

이것은 매우 간단하게 들리지만, 나는 그것을 알아낼 수 없습니다. 나는 얼마 전에 실험 브랜치를 만들었고 이제는 내가 만든 이후 마스터에서 일어난 모든 변경 사항을 가져오고 싶습니다. 이것은 모두 로컬입니다. 로컬 마스터에서 로컬 my_branch로 가져오고 싶지만 할 수는 없습니다. 마스터가 git 저장소가 아니라고 말하면 작동하지 않는 것 같습니다.

git pull master

답변:


339

git에게 현재 디렉토리 / 저장소에서 가져올 위치를 알려 주어야합니다.

git pull . master

그러나 로컬로 작업 할 때 일반적으로 병합을 호출합니다 (내부적으로 호출을 병합).

git merge master

1
나는 git pull . master원산지에서 새로운 것이 있는지 확인할 것이라고 생각하기 때문에 좋아 합니다. 이것이 사실입니까?
Josiah Yoder 19 년

1
@JosiahYoder no, pull .구체적으로 Git에 위치한 저장소 .(즉, 현재 디렉토리 / 저장소) 에서 가져 오도록 지시 합니다. origin" .git/config파일에 정의 된 저장소 위치 (일반적으로 저장소를 복제 할 때 자동으로 설정 됨)의
줄임말

1
오! 그렇다면 git pull . master원래 저장소 대신 로컬 저장소에서 가져 옵니까? 어떤 장점이의 거기 (아니!? 원점에서 가져 없음) git pull . master를 통해 git merge master다음?
Josiah Yoder

2
@JosiahYoder 예, 원본 저장소 대신 로컬 저장소에서 "풀"합니다. 페치가 수행되지 않습니다 (로컬 저장소의 모든 것이 이미 여기에 있으므로!). 장점은 없습니다. 두 명령이 거의 동일합니다. 빨리 감기를 수행하는 경우 먼저 풀지 push . origin/branch:branch않고 로컬 분기를 업데이트 할 수 있습니다 .
knittl

나는 당신을 찬양합니다. 그레이 스컬의 힘으로!
R Claven

45

당신이 찾고있는 것은 병합입니다.

git merge master

으로 pull당신은 원격 저장소의 변경을 가져오고 현재 브랜치로 병합합니다.


38

꽤 오래된 게시물이지만 누군가 새로운 자식을 도울 수 있습니다.

나는 갈 것이다

git rebase master
  • 훨씬 더 깨끗한 로그 기록 및 병합 커밋 없음 (올바로 수행 된 경우)
  • 갈등을 다룰 필요가 있지만 그렇게 어렵지는 않습니다.

1
개발 팀이 분기 프로세스를 관리하는 방법에는 여러 가지가 있습니다. 개인적으로, 나는 8 년 동안 git을 사용해 왔으며 결코 rebase 할 필요가 없었습니다. 저는 항상 병합을 사용하며 항상 내 요구를 충족 시켰습니다. 확실히 rebase를 사용하면 병합과 마찬가지로 git이 두 세트의 변경을 "병합"하는 올바른 결과를 자동으로 결정할 수없는 시나리오가 발생할 수 있습니다. "깨끗한"커밋 히스토리에 대한 요점에 관해. 개인적으로, 내 취향은 모두 내가 일부는 "고고학 커밋"해야 할 경우에 대비, 역사를 커밋 유지하는 것입니다 (자주 발생으로!)
user3441604

-1

로컬에서 마스터로 다른 지점에서 새로운 풀을 찾고 있다면 이것을 따라갈 수 있습니다.

git commit -m "Initial Commit"
git add .
git pull --rebase git_url
git push origin master
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.