깃 (git) 우리는 다음과 같은 상황에 처해 있다고 가정해 봅시다.
mkdir GitTest2 cd GitTest2 깃 (git) 을 초기화
에코 " 켜짐이 Master"; >. 파일 깃 (git) - - m " 커밋합니다 초기 commit";
git 분기로의 feature1 git feature1 체크아웃합니다 에코 " Feature1"; >. 페터 필레 깃 (git) - - m 의 커밋합니다 feature1" 커밋합니다 ";
git 체크아웃합니다 마스터 git 분기로의 hotfix1 git hotfix1 체크아웃합니다
에코 " Bugfix"; >. 버그프리스피리 깃 (git) - - m " 커밋합니다 버그프리스 commit"; git 체크아웃합니다 마스터 git 병합해야 아니 ff hotfix1 -
git feature1 체크아웃합니다
이 때문에, 아마 내 피쳐보다 분기로의 데릭쉐퍼드와 말하도다 핫픽스의 버그 또한 테스트타사의 할 수 있다. 이 기능을 복제하는 방법을 통해 얻을 수 없는 내 커밋한 지사급?
내가 원하는 것을 얻을 수 있는 기능을 갖고 있는 두 개의 새로운 기능 구축 분기로의 커밋한 내 관계 가 없다. 특히 이 중요한 가져다줄래요 당기십시오 요청률 사용하고 있는 것 같다. 또한 이 모든 커밋한 포함될 수 있고, 비록 이 요청을 당기십시오 검토됨 이미 수행되 (그 핫픽스의 이미 의심할 수 있다).
깃 (git) 을 할 수 없다고 '마스터 - 병합해야 ff 국한됨': ", 치명적: 이 수 있을지는 확신할 수 없습니다, 하지만 aborting." 빨리감기, I am not me.
우리가 어떻게 병합합니다 마스터에는 분기로의 꽂으십시오 피쳐보다 분기로의? 쉽냐구요:
git checkout feature1
git merge master
이 밖에 없는 만큼 빠른 전달하십시오 시점으로든지 병합해야 완료할 수 없습니다. 모두 너회가 커밋됩니다 꽂으십시오 피쳐보다 지사 및 마스터야 주장한다. 이제 앞으로 감기 불가능하다.
Have a look at 기트프로. 이는 분기 모델을 따를 수 있는 깃 (git), 그리고 당신은 이미 처치했지요 모르게 또한 이 git 으로 확장명으로 어떤 일을 하고 있는 것과 그렇지 않을 경우 자동으로 단계가 새 워크플로에 대한 일부 명령의세 자도으로 해야 합니다.
그래서 모한거냐 제대로 너회의 워크플로에? 작업할 수 있습니다 () 은 기본적으로 두 가지 분기로서의 너회의 feature1 " develop"; 분기에 기트프로 모델이다.
분기를 it 마스터 및 병합되었습니다 만든 핫픽스의 뒤로를. 이제 눌려 있습니다.
이 모델을 개발하는 데, 이는 또한 요청합니다 기트프로 병합하려면 핫픽스의 분기로의 " feature1"; 네 경우엔.
그래서 진짜 답이 될 수 있다.
git checkout feature1
git merge --no-ff hotfix1
이렇게 하면 모든 변경 사항이 수 있지만, 그 안에 핫픽스의 피쳐보다 분기로의 만 변경. 충돌하는 경우가 있지만, 이들은 결코 다른 개발 변화를 분기로의 갈등을 마스터야 분기로의 병합합니다 피쳐보다 분기로의 정의마스터 결국 다시 한다.
리베이스 함께 주의해야 합니다. 전용 리베이스 변경되는지 재발했지 삼백년에 않을 경우 로컬 데이터베이스에구성원을 리포지토리를 재발했지 누름식 일부 다른 모든 분기로서의 리포지토리를. (예: 리베이스 과정은 매우 유용한 도구 돕기 위해 해당 지역 커밋한 배열합니다 붙여넣습니다 추진하고 있지만, 그 질서에 대한 세계로 아웃해야 리베이스 엉망하지 셨으며 클린업합니다 깃 (git) 는 초보자 당신처럼요
네 분기로의 마스터 리베이스 수 있어야 합니다.
git checkout feature1
git rebase master
이로 인해 발생하는 모든 충돌을 관리하시겠습니까. 커밋한 때 얻을 수 있는 버그 수정 (이미 마스터), Git 는 없었다고 말하도다 변경사항과 그래서 혹시 그들은 이미 적용했다. 그런 다음 리베이스 (낼수있지않나 커밋한 건너뛰는 이미 마스터) 를 계속
git rebase --skip
깃 (git) 을 따라 기능을 수행할 경우 ',' ll see, 이 버그프리스 you& 분기로의 로깅합니다 # 39 한 번만 나타나는 부분 커밋합니다 의심할 수 있다.
깃 (git) 에 대한 자세한 내용을 보면, 시행하십시오 붽뎄 리베이스 깃 (git) '책' (https://git-scm.com/docs/git-rebase) 이 있는 빽이라는 정확한 览侩 荤례.
자세한 컨텍스트로 편집하십시오 = =
이 질문에 대한 답을 구체적으로 입력되었음을 @theomega 취임, 특정 상황에 의해 질문과대답 고려합니다. 참고 이 부품:
>. 내가 원하는 것을 막기 위해 [.] on my 기능을 갖고 있는 기능을 구현 커밋한 분기로의 관계 가 없다.
그의 개인 리베이스 지사급 마스터 정확히 무엇인지 수율이 결과. 반면, 마샬의 분기로의 병합합니다 마스터에는 그가 뭘 원하지 않는 일어날 것이라고 정확히 특별히 : 추가에는 관련된 기능을 수행할 수 없는 커밋합니다 구축상의 아녀석은 통해 그의 주장한다.
문제는 해결할 수 있는 사용자 검토완료 직무명 건너뛰십시오 실제 내용 및 컨텍스트로 질문을 통해 다음 그 위에 읽기 전용 경우 항상 (다른), 무턱대고 오토메이티드 적용하십시오 览侩 荤례 나에게 허용하시겠습니까 정교한:
마지막으로, 이 사실이 아닌 경우, re you& # 39 개는 답이 있는 상황에 가장 적합한 경우에도 @theomega 셀명 won& # 39, t be 특히 도움됐네 아래에 추가할 수 있었다. # 39 만 t, 내가 선택한 이유는 제어할 don& @theomega 높여줍니까.
이 문서, 따라 다음과 같이 합니다.
"'git 분기로의 - b 뉴마스터"'
"'git 체크아웃합니다 뉴마스터"'
처음 두 개의 명령 "- b 뉴마스터 체크아웃합니다 '깃 (git)' 를 사용할 수 있습니다.
당신의 역사를 보존할 수 있기 때문에, 이런 식으로 선택해제합니다 don& # 39 뒤로를 병합합니다 필요한 건 아니다. # 39, 이렇게 don& 진실이며당신이 t need to do a, t need to # 39 don& 리베이스 깃 (git) 이후 슈퍼 신중을 기할 수 있습니다.
[# 39 의 Zimi& 오토메이티드] [1] 이 과정은 일반적으로 설명합니다. 다음은 세부 사항:
git 체크아웃합니다 마스터 git 분기로의 feature1_new git feature1_new 체크아웃합니다
git feature1_new 마스터에는 체크아웃합니다 - b
git feature1 병합해야
완료! 이제 새 분기로의 사용하여 계속 전개할 피쳐입니다.
[1]: # 24122211 https://stackoverflow.com/questions/16955980/git-merge-master-into-feature-branch/24122211
다음은 당신의 주인이 병합하려면 스크립트입니다 현재 분기로의 지사급 를 사용할 수 있습니다.
다음과 같은 작업을 수행합니다.
이 코드는 배치 파일 (.bat) 로 저장 및 배치하십시오 스크립트입니다 어디에서나 리포지토리를. It 에 대한 차례로 이를 실행한 틀렸다니까 설정되었습니다.
:: This batch file pulls current master and merges into current branch
@echo off
:: Option to use the batch file outside the repo and pass the repo path as an arg
set repoPath=%1
cd %repoPath%
FOR /F "tokens=*" %%g IN ('git rev-parse --abbrev-ref HEAD') do (SET currentBranch=%%g)
echo current branch is %currentBranch%
echo switching to master
git checkout master
echo.
echo pulling origin master
git pull origin master
echo.
echo switching back to %currentBranch%
git checkout %currentBranch%
echo.
echo attemting merge master into %currentBranch%
git merge master
echo.
echo script finished successfully
PAUSE
&Quot cherry-pick", 할 수 있습니다. 커밋합니다 (s) 에 대한 정확한 당기십시오 필요한 기능을 주장한다.
깃 (git) 을 할 수 있는 'a' hotfix1 체크아웃합니다 hotfix1 주장한다. 깃 (git) 재동기화할 '로그' 을 내려받습니다 SHA-1 해시 (big 일련의 임의적입니까 문자와 숫자를 고유하게 식별하는 커밋합니다) 이 있는 커밋합니다 질문이예요 카피됐나 (또는 처음 10 여개 자).
깃 (git), '다음' 에 복귀할 수 있는 기능을 feature1 체크아웃합니다 지사급.
깃 (git), '체리 선택, 그 중 sha-1 해시 < 방금 copied>.'
, 전용 증대하고자 하는 당기십시오 증대하고자 하는 것, 그리고 당신의 피쳐보다 주장한다. 방금 " 변경 될 수 있는 지점에 있는 cherry-picked" -;; 그. 그런 다음, 로칼에서 누름식 등의 작업을 재개할 편집하십시오 데이터베이스에구성원을 heart& # 39 의 컨텐트입니다.
결국 다른 기능을 수행할 때 한 분기로의 병합해야 지사급 (또는 그 반대의 경우), Git 는 you& # 39 를 인식하고, ve 이미 해당 , # 39 의 병합되었습니다 로칼에서 doesn& 건 알 수 없는 다시 그냥 over" 건너띄기 "; it.