rebase/cherry-pick을 통해 마지막 커밋을 두 개 제거하려고합니다. git rebase HEAD^^^ -i을 호출 한 후에는 모든 커밋을 HEAD^^으로 남겨 두었으므로 HEAD^과 HEAD이 삭제됩니다. ! [rejected] dev -> dev (non-fast-forward)
error: failed to push some refs t
두 저장소가 있습니다. 하나는 오래된 것입니다. 그러나 개발하는 동안 둘 다 사용합니다. (역사적인 이유가 있지만 중요하지는 않습니다.) 저는 프로젝트의 거의 독립적 인 부분 인 작은 응용 프로그램 인 하위 디렉토리를 가지고 있습니다. 최신 도구에서이 도구의 디렉토리 만 업데이트하고 싶습니다. 사실,이 응용 프로그램의 두 버전 모두에서 동일한 버전이 필요합
몇 가지 아이디어를 얻고 싶습니다. 나는 3 가지가 있습니다 마스터를 특정 기능이 지점 master는 일반 코드베이스가 내가 구현의 새로운 유형을 만들 나중에 분기하려면 있도록 , 나는 그렇게 쉽게 할 수있다. 하지만 지금은 specific이 내 주요 개발 지점입니다. 그래서 새로운 기능을 테스트하기 위해 specific을 feature-branch으로 분
git revert를 사용하여 cherry-pick을 실행 취소 할 수 있습니다. 나는 프로젝트에서 마스터 브랜치 (branch)로부터 커밋을 선택하려고 시도했으나 그것을하고 싶지 않다. 불행히도 나를 위해, 나는 이미 밀었습니다. git revert를 사용하면 PR이 병합 될 때 마스터에서 커밋을 되돌릴 지 모르겠습니다. 병합 후 마스터 분기를 엉망으로
한 가지를 중복 : K---L new-feature
/
H---I---J---M dev-team1
/
E---F---G dev-main
/
A---B---C---D master
을 그리고없이 DEV-주요 지점에서 단지 새로운 기능 (K --- L) 지점을 이동하려면 (H --- I --
원격/공용 분기에 "OLD"를 정리해야하는데, 그 중 일부에는 불량/거대한 커밋이 포함되어 있기 때문입니다. OLD - 간단한 그래프 (...) -> c234 -> c235(huge to fix) -> c236 -> c237(huge to fix) -> c238 -> c239 -> (...) -> HEAD
내가 한 이렇게하려면 다음 1) 나는 "NEW"
git cherry-pick 체리 피킹 후 커밋 해시가 현재 시간과 현재 사용자 (커미터로)에 의존한다는 점에서 멱등하지 않습니다. 나는 두 번 순서를 의미의 멱등의 때에 프로퍼티를 가지고 싶습니다 다시 git reset --hard BASE-COMMIT
git cherry-pick INTERESTING-COMMIT
를 실행 한 다음, 머리에 정확히
내 서버 측 베어 키트는 주기적으로 특별한 브랜치에서 커밋을 마스터 (훅으로 실행)로 가져와야한다. 체크 아웃을 피하고 맨손 저장소에서 직접 수행 할 수있는 방법이 있습니까? 편집 : 체리 피킹 절차가 비 대화식이기 때문에 체리 피크가 적용하기 쉽지 않다면 완전히 오류가 발생할 수 있습니다.
"특정 파일을 만지는 커밋 만 다른 지사에서 체리 선택"을 요청하는 간결한 방법은 무엇입니까? 즉 명령어 git log ..other-branch afile은 "afile"을 터치하는 다른 브랜치에서 병합되지 않은 커밋 목록을 제공합니다. 이 커밋 세트를 현재 브랜치에서 재생하도록 요청하려면 어떻게해야합니까?