마스터에서 개발 지점으로 "git pull"하는 방법
개발 중인 "dmgr2" 지점이 있는데, 마스터 지점(라이브 사이트)에서 철수하여 모든 변경 사항을 개발 지점에 통합하고 싶습니다.이것을 하는 더 좋은 방법이 있습니까?
변경 사항을 적용한 후 다음과 같이 계획했습니다.
git checkout dmgr2
git pull origin master
이렇게 하면 실시간 변경 사항이 개발 부서로 전송됩니다. 아니면 제가 잘못 알고 있는 것입니까?
나열한 단계는 작동하지만 더 많은 옵션을 제공하는 더 긴 방법이 있습니다.
git checkout dmgr2 # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master
그fetch
명령은 이전의 어느 지점에서도 수행될 수 있습니다.merge
즉, 당신은 가져오기와 체크아웃의 순서를 바꿀 수 있습니다. 왜냐하면fetch
이 지정된합니다.origin
은 `내가 없는 다 주라' 말하였습니다 모든 입니다. 그리고 그에게 이렇게 말합니다. "내가 가지고 있지 않은 모든 것을 나에게 주세요." 즉, 모든 가지에 대한 모든 커밋입니다.되지만 이름은 저소에복이지름정됩다니이만사지되장지▁they다니입니다.origin/branch
이이붙은지대하여라는 이름의 모든 branch
원격으로
는 아무할 수 .git log
,gitk
등) 당신이 가지고 있지 않은 "그들이 가지고 있는 것"을 보기 위해, 그리고 그 반대도 마찬가지입니다.때로는 이것이 따뜻한 퍼지 감정에만 유용할 때도 있고("아, 그래, 사실 그것이 내가 원하는 것이다"), 때로는 완전히 전략을 바꾸는 데 유용할 때도 있습니다("와, 나는 아직 그런 것을 원하지 않는다").
막으로마지,로으,merge
지정된 커밋을 합니다. 이 은 " 은명지커사다니용합을다같다습니"입니다.origin/master
그리고 그 약속과 그 조상들을 당신이 운영할 때 어떤 지점에 있든 데려오기 위해 필요한 모든 것을 합니다.merge
있다니를 삽입할 수 .--no-ff
또는--ff-only
빨리 감기를 방지하거나 원하는 경우 결과가 빨리 감기인 경우에만 병합할 수 있습니다.
시퀀스를 사용하는 경우:
git checkout dmgr2
git pull origin master
그자리의 pull
은 git에게 "git"을 하도록 지시합니다.git fetch
그리고 도덕적으로 동등한.git merge origin/master
따라서 이것은 두 단계를 손으로 수행하는 것과 거의 동일하지만, 아마도 당신에게 크게 관련되지 않은 몇 가지 미묘한 차이가 있습니다. (특히,fetch
가 운영하는 .pull
에만 제공합니다. origin/master
그리고 그것은 당신의 1레포의 ref를 업데이트하지 않습니다: 모든 새로운 커밋은 특별한 것에 의해서만 참조됩니다.FETCH_HEAD
참조).
이 더 명시적인 .git fetch origin
(그런 다음 선택적으로 둘러보기) 그런 다음git merge origin/master
시퀀스, 당신은 또한 당신의 로컬을 가져올 수 있습니다.master
되며, 단격으로최유지, 하로나단상로태원fetch
네트워크를 통해 실행:
git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master
예를 들어.
1이 두 번째 부분은 1.8.4로 변경되었습니다. 이제 "원격 지점" 참조가 기회적으로 업데이트됩니다. (릴리스 노트에 나와 있듯이 업데이트를 건너뛴 것은 의도적인 설계 결정이었지만, 더 많은 사람들이 Git 업데이트를 선호하는 것으로 나타났습니다.)이전 원격 분기 SHA-1을 사용하려면 기본적으로 reflog에 저장되므로 복구할 수 있습니다.이를 통해 업스트림 리베이스를 찾기 위한 새로운 Git 1.9/2.0 기능도 사용할 수 있습니다.)
저는 저희 지역 지사에서 일하고 있으며, 이름이 붙은 개발 지사에서 업데이트를 유지하는 것을 좋아합니다.dev
.
일반적으로 다음을 사용합니다.
git fetch
git rebase origin/dev
이것은 마스터에서 내 브랜치로 최신 코드를 가져오는 데 효과적이었습니다.
git rebase origin/master
feature-1 분기에 있는 경우 마스터를 풀링하려면 다음을 수행합니다. (최신 병합 업데이트를 가져오거나 병합 충돌 가능성을 줄이려면)
git pull
git merge origin/master
마스터를 분기로 가져옵니다. 마스터에 영향을 미치지 않습니다!
너희 둘이 갈라진 이후로 주인이 된 모든 것을 너희 지부로 끌어들일 거야.
분기가 이미 공개된 경우에는 기록을 다시 작성하지 않으므로 이 작업을 수행해도 됩니다.
마스터 업데이트와 분기 업데이트가 있습니다. 모든 기록을 올바르게 추적하기 위해 분기에서 기본 재배치를 통해 마스터를 추적하기를 원합니다.내 지점을 내 지점이라고 부르자:
git checkout master
git pull --rebase
git checkout Mybranch
git rebase master
git push -f origin Mybranch
다음과의 모든 충돌을 해결해야 합니다.git mergetool
,git rebase --continue
,git rebase --skip
그리고.git add -u
상황과 기트 힌트에 따라 모든 것이 해결될 때까지.
참고: Tzachi Cohen의 안내에 따라 "를 사용하여 마지막 단계로 수정합니다.-f
서버에서 git를 강제로 "업데이트 히스토리"로 설정합니다.
이제 브랜치는 마스터 및 리베이스와 일치해야 하며 원격 업데이트와 일치해야 합니다.git log
"뒤에" 또는 "앞에"가 없으며 폴더를 "깨끗함"으로 유지하기 위해 모든 로컬 충돌 *.orig 파일을 제거하기만 하면 됩니다.
기록이 일치하지 않고 병합하려는 경우 이를 사용할 수 있습니다.
git pull origin master --allow-unrelated-histories
자세한 내용은 "치명적: 관련 없는 기록 병합 거부" Git 오류를 참조하십시오.
dev가 깨끗하며 main 또는 master 변경사항으로만 업데이트하려는 경우
git checkout dev
git pull origin <main or master>
git push origin dev
먼저 다음을 사용하여 코드를 가져옵니다.
git fetch
다음을 사용합니다.
git rebase origin/dev
이것이 제 해결책입니다.
git checkout mybranch
git rebase master mybranch
git add .
git rebase --continue
git commit -a -m "test"
git pull
git push
사용하다git add .
파일을 준비합니다.
다음은 지점에 마스터 변경사항을 적용하기 위한 다른 솔루션입니다.
git checkout mybranch
git fetch origin
git merge origin/master
은▁g▁you▁of를 사용할 때 당신의 Git의 역사는 분명합니다.rebase
하지만 사용하기가 더 쉽습니다.merge origin/master
.
이것을 하는 가장 좋은 방법은
먼저 마스터/마스터로 이동
git checkout master/origin
First run " git branch temp"
then "git checkout temp"
& then "git merge development"
if any conflicts come, please resolve & commit
and then
1. git checkout development
2. git merge temp
이 작업을 수행한 후 모두 실행하여 확인합니다.
git branch
결과적으로 발전한다면.
그렇지 않으면 도망쳐요.
git checkout development
지금 당신은 개발 지점에 있습니다.
그리고 당신은 달릴 수 있습니다.
git merge temp
이제 마스터 분기 코드를 개발할 수 있습니다.
언급URL : https://stackoverflow.com/questions/20101994/how-to-git-pull-from-master-into-the-development-branch
'sourcecode' 카테고리의 다른 글
SQL Server: 테이블의 최대 행 수 (0) | 2023.05.18 |
---|---|
선택한 항목에 바인딩MVVM의 DataGrid 또는 ListBox 항목 (0) | 2023.05.18 |
데이터베이스 테이블의 임의 레코드(T-SQL) (0) | 2023.05.18 |
마이크로소프트입니다.VisualBasic 네임스페이스 "true .NET" 코드? (0) | 2023.05.18 |
UI 텍스트 필드 높이를 설정하는 방법은 무엇입니까? (0) | 2023.05.18 |