programing

GitHub에 빈 분기 만들기

telecom 2023. 5. 15. 21:17
반응형

GitHub에 빈 분기 만들기

새로운 GitHub 지점을 만들고 싶습니다.release.

분기는 비워 두어야 합니다!하지만 기존에 x개의 커밋이 있는 브랜치가 있어서 커밋 내역을 가지고 싶지 않습니다.

내가 찾은 유일한 방법은 로컬을 만드는 것입니다. --orphan분점.

2021년 11월 업데이트:Git 버전 2.27부터 이제 사용할 수 있습니다.git switch --orphan <new branch>기록이 없는 빈 분기를 만듭니다.

와는 달리git checkout --orphan <new branch>이 분기에는 현재 분기의 파일이 없습니다(git가 추적하지 않는 파일은 저장).

이 방법은 이전 내역이 없는 빈 분기를 만드는 기본 방법입니다.

이 분기에 실제로 커밋이 있으면 다음을 통해 Github으로 푸시할 수 있습니다.git push -u origin <branch name>:

git switch --orphan <new branch>
git commit --allow-empty -m "Initial commit on orphan branch"
git push -u origin <new branch>

원답:

무슨 문제가 있습니까?--orphan옵션?만약 당신이 비어있고 기록이 없는 가지를 원한다면, 이것이 방법입니다...

git checkout --orphan empty-branch

그런 다음 스테이징 영역에 있는 모든 파일을 제거하여 파일이 커밋되지 않도록 할 수 있습니다.

git rm -rf .

이 시점에서 시스템에 빈 분기가 있습니다.

GitHub(또는 다른 Git 저장소)에 푸시하기 전에 빈 분기를 푸시할 수 없으므로 콘텐츠가 없는 경우에도 하나 이상의 커밋이 필요합니다(즉, 빈 커밋).

git commit --allow-empty -m "root commit"

마지막으로, 리모콘에 밀어넣고, 맥주를 따세요.

git push origin empty-branch

--orphan로컬에서 빈 분기를 만드는 데 유용하지만, 이를 푸시하거나 다른 분기와 상호 작용하려면 커밋이 필요합니다.

다른 분기와 상호 작용할 수 없으므로 분리된 분기에 새 커밋을 만드는 것은 좋은 생각이 아닙니다.예.

git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories

대신 마스터의 첫 번째 커밋에서 새 분기를 만드는 것을 선호해야 합니다.커밋이 비어 있지 않으면 @houtanb에서 설명한 것처럼 첫 번째 커밋 앞에 빈 커밋을 추가할 수 있습니다.

여기에 있는 지침에 따라 루트에 빈 커밋을 만들 수도 있습니다.master분점.그런 다음 당신의 것을 만듭니다.release빈 루트 커밋이 있는 분기입니다.

수락된 답변은 저를 몇 가지 문제로 이끌었고, 그래서 저는 다음과 같이 했습니다.

$ git branch
* staging
$ git branch master c74d99cf46f6ed23e742f2617e9908294b4a608b
$ git checkout master
Switched to branch 'master'

그리고 원하는 것을 얻었고 병합/풀 요청 문제가 발생하지 않았습니다.두 번째 지점을 만들기 위해 기본 커밋을 선택해야 했습니다.

받아들여진 답이 정말로 가야 할 길입니다.그러나 새로 생성된 신규 개발 분기에 병합할 수 없는 다른 분기가 이미 있는 경우에는 기본 재배치를 수행하고 개발을 위해 병합해야 하는 분기에서 다음을 실행하는 것이 개인적으로 가장 좋습니다.

git rebase develop

이렇게 하면 초기 커밋이 분기에서 병합되는 첫 번째 커밋이 됩니다.물론 주의사항이 있습니다 :) 리베이스를 수행하여 분기에 기록을 다시 작성하고 있습니다.따라서 분기를 원점으로 강제 푸시해야 합니다.

git push -f

브랜치를 사용하는 다른 사람들은 지금 풀링할 수 없으므로 페칭이 개발된 후 로컬에서 리베이스도 수행해야 합니다.재배치가 필요한 분기에 있다고 가정합니다.

git fetch
git rebase origin/develop

언급URL : https://stackoverflow.com/questions/34100048/create-empty-branch-on-github

반응형