programing

첫 번째 커밋을 어떻게 다시 시작합니까?

itsource 2023. 5. 7. 21:24
반응형

첫 번째 커밋을 어떻게 다시 시작합니까?

사용한git init새로운 레포를 만들기 위해 세 번의 커밋을 수행했습니다.이제 돌아가서 첫 번째 커밋을 수정하기 위해 기본을 변경하고 싶지만, 만약 그렇다면.git rebase -i HEAD~3오류가 표시됩니다.fatal: invalid upstream 'HEAD~3'!

저도 같은 시도를 해보면요.HEAD~2그러면 작동하지만 마지막 두 번의 커밋만 다시 정렬할 수 있습니다.

'커밋이 있기 전에 커밋'을 참조하거나 돌아가서 빈 커밋을 삽입하려면 어떻게 해야 합니까?


오류:git rebase -i HEAD~3:

fatal: invalid upstream 'HEAD~3'  

최신 Git를 사용한 간단한 방법(이것은 지금까지 나온 지 오래되었기 때문에 당신은 이것을 가져야 합니다.

git rebase -i --root

다른 쉬운 방법은, Twalberg가 그 이후로 삭제되었지만 현재 https://stackoverflow.com/a/68279810/1256452's 답변에서 확장된 코멘트에서 언급했듯이, 사용하는 것입니다.git checkout --orphan이전 커밋을 복사할 수 있는 새 루트 커밋을 만들기 위해 설정합니다.rebase -i --root결국 내부적으로 하게 됩니다.)초기 커밋을 분할하는 것과 같은 일부 목적에서는 이 초기 빈 커밋이 유용합니다.

미래의 참고 사항(2022):대부분의 경우 첫 번째 커밋에 몇 개의 상용 파일만 포함하도록 하는 것이 좋습니다.README새로운 빈 저장소의 첫 번째 커밋은 항상 약간 특별합니다.Bitbucket, GitHub 및 GitLab과 같은 호스팅 사이트를 사용하는 경우 저장소를 생성할 때 이러한 초기 커밋을 수행하여 생성된 저장소를 복제하고 시작점을 가질 수 있습니다.

이미 커밋에 있는 파일을 변경하거나 작성자/편집자 등을 변경하려면 Torrek의 답변은 괜찮습니다.하지만 만약 당신이 커밋이나 그런 것들을 나누고 싶다면, 당신이 할 수 없기 때문에 문제에 부딪힐 가능성이 있습니다.git reset HEAD~처음 약속했을 때까지.

이렇게 하려면 다음과 같이 빈 초기 커밋을 삽입할 수 있습니다.

git checkout --orphan empty-initial-commit
git rm -r --cached .
git clean -d -f
git commit --allow-empty -m 'Empty initial commit'
git checkout <branch>
git rebase empty-initial-commit
git branch -d empty-initial-commit

그러면 할 수 있습니다.git rebase -i커밋(공백이 아닌 첫 번째 커밋)을 편집하고 수행합니다.git reset HEAD~여느 때와 마찬가지로

언급URL : https://stackoverflow.com/questions/22992543/how-do-i-git-rebase-the-first-commit

반응형