🤍 이클립스와 깃을 연동할 때 발생했던 문제(?)인데, web상에서는 main으로 생성되는 default branch가 이클립스에서는 master로 생성이 되었다. (원래는 master가 default였지만 현재는 main으로 바뀜)
그냥 master branch로 연동해도 되지만...그냥 맞추고 싶어서 한번 시도해 보았다.
2021년 5월 21일에 작성한 글입니다.
이클립스에서 바로 연동하는 것에서 몇번 오류가 났던 경험이 있어 다이렉트 연동은 피해보려 했지만, 이번에 마음 먹고 다시 도전!
우선 기본적인 연동 방법은 하단의 블로그를 참고하여 착착 진행했다.
참고 : https://soo-vely-dev.tistory.com/12
그런데 여기서 새로운 문제! 기존에는 깃허브에서 master를 default branch로 두었는데 이름을 main으로 변경하여 main branch가 default로 설정되어 있다. 물론 Repository를 생성할 때 설정 변경을 할 수 있지만 처음에 주의 깊에 보지 못하고 main으로 바로 만들어버렸다.
문제가 발생한 것은 깃허브에서 commit을 할 때였다. 깃허브에는 master로 설정 되어 있어 커밋을 하면 깃허브에 master branch로만 프로젝트가 올라가고 main branch에는 처음 레포를 만들 때 함께 생성한 README 파일만 존재했다.
C:\Users\newsp>cd C:\JAVA\workspace\java_jungsuk
C:\JAVA\workspace\java_jungsuk>git status
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
(use "git branch --unset-upstream" to fixup)
nothing to commit, working tree clean
// master를 main으로 바꾸겠다.
C:\JAVA\workspace\java_jungsuk>git branch -m master main
C:\JAVA\workspace\java_jungsuk>git fetch origin
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 589 bytes | 42.00 KiB/s, done.
From https://github.com/SaebomSon/test
* [new branch] master -> origin/master
* [new branch] main -> origin/main
C:\JAVA\workspace\java_jungsuk>git branch -u origin/main main
Branch 'main' set up to track remote branch 'main' from 'origin'.
C:\JAVA\workspace\java_jungsuk>git status
On branch main
Your branch and 'origin/main' have diverged,
and have 1 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean
이렇게 한 후에 이클립스를 다시 보면 main으로 바뀌어져있다.
💡 에러가 발생하는 경우도 있는데...branch가 이미 존재한다는 의미 같으니.. 그냥 패스하고 이클립스에서 Merge를 진행해도 문제는 없었다. C:\JAVA\workspace\one_market>git branch -u origin/main main error: the requested upstream branch 'origin/main' does not exist hint: hint: If you are planning on basing your work on an upstream hint: branch that already exists at the remote, you may need to hint: run "git fetch" to retrieve it. hint: hint: If you are planning to push out a new local branch that hint: will track its remote counterpart, you may want to use hint: "git push -u" to set the upstream config as you push.
참고 : https://hanyda.tistory.com/36
티스토리에 있는 내용 중 master를 main으로 고쳐 생각하면 되고, 여기서 추가적으로 해야하는 것은 Remotes > origin > Configure Fetch를 설정해준 것과 같이 Configure Push도 함께 설정해줘야 Merge가 제대로 이루어진다. (방법은 Configure Fetch와 동일하게 main을 추가해주면 된다.)
main branch에서 제대로 Merge가 된 것을 확인 할 수 있다.
혹시 모르니 다시 커밋 테스트를 실행해 보았다.
이제부터 이클립스에서 커밋을 하면 바로 main branch로만 올라가게 된다. master branch는 필요하지 않기 때문에 설정에서 삭제해줄 것이다.
반드시 삭제해야하는 것은 아니지만 안쓰는 branch를 굳이 둘 필요는 없는 것 같아서 삭제😉
꼭 이렇게 main으로 바꾸지 않아도 상관 없고, Repository 생성시 미리 default branch의 이름을 변경할 수도 있다. 어쩌면 이게 가장 번거로운 방법일 수도...ㅠㅠ
하지만 뭐에 한번 꽂히면 일단 될 때까지 해보는 편이라...고수들이 보기에는 깃허브 초보자의 객기였을지도 모른다ㅎㅎㅎ
또한 내가 한 방법이 제대로 된 방법인지 확신도 없고 몇시간동안 이 방법 저 방법 되는대로 해보다가 얻어 걸린 것이 아닐까 싶긴 하지만, 혹시 나와 같은 깃허브 초보자들에게 도움이 될지도 모르니 기록을 해둔다.
또한 내가 한 방법이 제대로 된 방법인지 확신도 없고 몇시간동안 이 방법 저 방법 되는대로 해보다가 얻어 걸린 것이 아닐까 싶긴 하지만, 혹시 나와 같은 깃허브 초보자들에게 도움이 될지도 모르니 기록을 해둔다.