VSCode로 커밋을 했을 때, 실제로 깃허브 Repository에 적용되지 않는 문제
나는 개발을 하고 나서 깃허브의 Repository에 기록하는 것으로 마무리한다. 그런데 커밋을 하고 푸시를 하고 나서 해당 Repository에서 확인해보면 푸시가 되어 있지 않는 문제가 발생했다.
그리고 해당 Repository에 master had recent pushes less than a minute ago의 메세지가 뜨고 옆에 Compare & Pull request의 버튼이 생성이 되어 있다.
위의 메세지가 발생하고 실제로 푸시가 되지 않은 문제가 발생하였지만 이를 신경쓰지 않고 직접 업로드하면서 해당 상황을 넘겼다. 그러나 이제 이 문제를 해결하는 것이 낫다고 생각하여 구글 검색을 해 보았다.
해당 문제의 원인은 이전에는 커밋과 푸시를 할 때, ~ origin master라는 명령어를 사용하였다. 그 이유는 깃허브에서 Master가 Default였기 때문이다. 그러나 이제는 Master가 아닌 Main이 Default가 되어서 이제는 Master를 사용하면 위의 문제가 발생하다고 하는 것을 알 수 있었다.
나는 다음과 같이 문제를 일차적으로 해결했다.
우선 이전과 똑같이 커밋을 하고 푸시를 하였다.
그리고 나서 Repository에서 확인을 하면 위에서 발생하는 메세지와 함께 Compare & Pull request의 버튼이 생기는데 이 버튼을 클릭하였다. 그러면 아래와 같이 Pull request를 할 수 있는 페이지가 뜬다.
이는 기존에 사용했던 Master를 Main으로 Merge하는 단계이며 이 단계에서 제목과 내용을 적고 Create pull request 버튼을 클릭하면 된다.
그러면 위의 페이지가 뜨는데 여기가 마지막 단계이다. 위의 Merge pull request의 버튼이 생기는데 이 버튼을 클릭하면 된다. 그리고 바로 뜨는 Confirm merge 버튼을 클릭하면 된다. 그러면 Master에서 Main으로 Merge가 되며 푸시가 이루어진다.
위의 문제를 해결하기 위해서 강제로 명령어를 입력하는 방법이 있기는 하지만 강제 명령을 해도 상관이 없다면 사용해도 되지만 그렇지 않다면 사용하지 않는 것이 낫다고 한다. 만약 필요하다면
git checkout master
git branch main master -f
git checkout main
git push origin main -f
위의 명령어를 사용하면 된다. 그리고 이 후에 Default Branch를 master에서 main으로 변경하는 명령어를 사용하여 바꾸었다. (이는 구글 검색으로 찾을 수 있다.)
그러나 Default Branch를 main으로 변경하여도 커밋을 하고 푸시를 했을 때 위의 단계를 거쳐야 했다.
이 문제는 이 후에 다시 해결해야겠다. 그리고 기존에 Default Branch가 master에서 main으로 변경되었다는 것도 기억해야겠다.