잠시 동안 개인 레포에서 작업 중이며 GitHub에 공개 할 예정입니다.Git - 단일 통합 커밋을 사용하여 새 리모컨으로 푸시
문제는 많은 커밋이 있고, 위생을 위해서 GitHub에 나타나는 커밋이 하나 뿐인 것입니다.
히스토리를 푸시하지 않고 어떻게 푸시합니까? 즉 전체 마스터를 단일 커밋으로 통합
미리 감사드립니다.
더그
잠시 동안 개인 레포에서 작업 중이며 GitHub에 공개 할 예정입니다.Git - 단일 통합 커밋을 사용하여 새 리모컨으로 푸시
문제는 많은 커밋이 있고, 위생을 위해서 GitHub에 나타나는 커밋이 하나 뿐인 것입니다.
히스토리를 푸시하지 않고 어떻게 푸시합니까? 즉 전체 마스터를 단일 커밋으로 통합
미리 감사드립니다.
더그
git rebase를 살펴보십시오. 대화식 모드.
일반적으로 git rebase --interactive HEAD~n
을 사용합니다. 여기서 n은 no입니다. 하나에 병합하려는 커밋의 개수. 그러나, 여러분은 전체 역사를 하나의 커밋으로 스쿼시하고, 부모가없는 리베이스 (초기 커밋까지)가 가능하지 않기 때문에 git reset
과 git commit --amend
을 사용해야합니다.
여기에 당신이 무엇을 :
git log --oneline
. 초기 커밋의 SHA를 찾습니다.fe7d5d1
이라고 가정합니다. 실행 git reset fe7d5d1
. 그러면 분기가 원래 커밋으로 다시 설정됩니다.git add .
을 사용하십시오.git commit --amend -m "Initial commit"
).git log --oneline
으로 지금 커밋이 하나만 있는지 확인하십시오.주의는 : 스쿼시/REBASE 이미 원격의 repo에 밀려 한 커밋/재 작성하지 마십시오.
만약 내가 전체 역사를 bitbucket에서 개인 레포로 푸시했는데 현재 상태 (즉 리베이스 된)를 github으로 푸시하고 싶다면 어떻게해야합니까? – Doug
아이디어는 이미 다른 사람들에게 전파 된 기록을 다시 쓰지 않아야합니다. 귀하의 경우 개인 리포에 대한 액세스 권한 만있는 경우 리베이스 할 수 있습니다. –
GitHub 저장소에 대한 기록을 다시 쓰고 BitBucket에 대한 기록을 유지할 수 없습니까? 즉 모든 현재 변경 사항을 단일 커밋으로 "커밋"합니까? – Doug