단일 Git 커밋 기본 재배치
분기에서 다른 분기로 단일 커밋을 재배치하는 방법이 있습니까?
분기 구조는 다음과 같습니다.
-- -- -- -- -- (Master)
\
-- -- -- -- -- XX (Feature-branch)
내가 하고 싶은 것은 마지막 약속을 재조정하는 것입니다.Feature-branch
마스터 및 롤백으로Feature-branch
한 번의 약속
-- -- -- -- -- XX (Master)
\
-- -- -- -- -- (Feature-branch)
그걸 어떻게 하는 거죠?
마스터할 XX를 선택할 수 있습니다.
git checkout master
git cherry-pick <commit ID of XX>
그리고 git reset을 사용하여 피쳐 분기에서 마지막 커밋을 제거합니다.
git checkout Feature-branch
git reset --hard HEAD^
git rebase --onto master branch~1 branch
이것은 "마스터 분기 끝에 있는 마지막 분기와 분기(XX commit) 사이의 커밋 범위를 다시 기준으로 합니다."라고 말합니다.
이 작업 이후branch
팁이 커밋 시 이동XX
그래서 당신은 그것을 되돌리고 싶습니다.
git checkout branch
git reset --hard branch@{1}^
즉, "지점 팁을 이전 상태 이전의 커밋으로 재설정"합니다.
체리 픽이 더 간단한 해결책입니다
실제로 하는 것은 꽤 간단합니다.해결책은 대화형 기본 재배치를 수행하고 기본 재배치에 포함하지 않을 모든 커밋을 "삭제"하는 것입니다.
git rebase -i <target_branch>
어디에target_branch
기준을 변경할 분기입니다.
그런 다음 열려 있는 파일을 편집하고pick
당신이 원하는 커밋과drop
(또는)d
간단히 말해) 가지고 오고 싶지 않은 모든 커밋.
@찰스 응답이 정확합니다.어쨌든 나는 이것을 너무 많이 사용하게 되었고, 무엇보다도 프로젝트의 특정 구성을 다시 기반으로 삼기 위해
a8f9182 (HEAD -> 생산) 생산 구성* daa18b7(사전) 사전 생산 구성|/* d365f5f(로컬) 로컬 구성|/27d2835 (dev) 세상을 구할 놀라운 새로운 기능| 56d2467 (마스터) 프로젝트를 위한 지루한 최신 기술|/
새 명령을 생성합니다.
cat ~/bin/git-rebase 샷커밋 = $1DEST=${2:-HEAD}gitrebase ${COMM}IT}^ ${COMMIT} -- $DEST로
일반적으로 해당 명령에 대한 분기 이름을 자동으로 완성하려면 이 함수의 소스를 추가합니다(.svrc 또는 .profile로 대체).
_git_rebaseshot(){__gitcomp_nl "$(_git_refs)"}
git autocomplete가 검색합니다.
다음 명령을 사용할 수 있습니다.
# rebase config on prepro on actual HEAD
$ git rebaseshot prepro
# rebase config on local onto dev
$ git rebaseshot local dev
# rebase production config on master
$ git rebaseshot pro master
형상을 올바르게 분할하면 가능성은 무한합니다.
a8f9182 (HEAD -> postgres) BBDD 구성a8f9182(로컬) 로컬 구성a8f9182(로그 수준) 구성a8f9182(dev) 새로운 기능|
이것이 이불을 좋아하는 사람들이 좋아하는 일인 것 같습니다.
이 명령은 제공하는 share/ref에 상관없이 작동합니다.
$ git rebaseshot <Feature branch> master
$ git rebaseshot <commit of XX> master
언급URL : https://stackoverflow.com/questions/14635672/rebase-a-single-git-commit
'programing' 카테고리의 다른 글
Python + MariaDB skiping other 문 (0) | 2023.08.31 |
---|---|
CSV를 가져올 때 행 수가 다름 (0) | 2023.08.31 |
파이썬 대 C#/.NET -- 대형 웹 애플리케이션을 개발하는 데 사용할 때 고려해야 할 주요 차이점은 무엇입니까? (0) | 2023.08.31 |
UI 텍스트 필드에 신속하게 아이콘/이미지 추가 (0) | 2023.08.31 |
systemd가 있는 데이터베이스 파일에 대해 모니터 파일 변경이 작동하지 않음 (0) | 2023.08.31 |