들어가기 전에
알고리즘 공부를 할 때에 VS code를 이용합니다. 이때, VS code에서 작성한 코드를 TIL으로 남겨보고자 Git에 연동방법을 찾아보게 되었습니다.
VS code에 git 연동하기
이미 github에 가입되어 있고, VS code가 설치되어있음을 가정하고 진행합니다.
1. 먼저, Git에 새로운 repository를 생성합니다.
아래와 같이 repository 정보 입력 후 Create repository를 클릭합니다. 생성된 레포지토리에서 Code를 누르고 복사 버튼을 클릭합니다.
- repository 생성 시 특이점은, 예전과 다르게 default branch가 main이라는 점입니다.
2. VS code를 실행한 후 git에 연동하고자 하는 폴더를 엽니다. 그 후 왼쪽 탭에서 소스제어 아이콘을 클릭합니다.
3. 현재 git 레포지토리와 연동된 부분이 없으므로, Initialize Repository 버튼을 클릭하여 초기화합니다.
4. 신규로 생성된 repository이기 때문에, 현재 폴더에 있는 항목 모두를 git에 올릴 수 있도록 changes 항목으로 표시됩니다.
- github에 올리기 전 먼저 commit할 항목을 정하여 로컬 저장소에 반영해야 합니다.
- commit할 항목을 정하는 방법은 아래 사진과 같이 + 버튼을 클릭하는 것으로, Changes의 +는 모든 항목에 대해 staging에 올릴 때 사용합니다.
5. 스테이징된 변경 사항들에 대해 commit을 하기 위해 아래 사진의 ✓ 버튼을 클릭합니다. 이때 commit 시 남길 메모를 입력할 수 있고, 메모 입력 후 enter를 누르면 로컬 저장소에 반영이 됩니다.
5번까지의 과정은 로컬 저장소에 commit한 것이라, git repository에 따로 변경사항이 보이지 않습니다. 이제는 github에 업로드해보겠습니다.
6. VS code에서 터미널 창을 열어봅니다. 터미널 창 여는 방법은 ⌃ + `
를 클릭하거나, VS code 상단의 Views > Terminal
을 클릭하면 띄울 수 있습니다.
7. 처음에 github repository를 만들 때에 clone 복사했던 주소를 사용하여 아래와 같이 명령어를 실행합니다. 하기 명령어를 실행하면, 원격 저장소를 지정할 수 있습니다.
git remote add origin [ 복사한 저장소 주소 ]
8. 원격 저장소에 있는 내용들을 로컬 저장소에 반영합니다. 먼저 원격 저장소에 존재하는 항목이 있을 수 있어 먼저 로컬 저장소로 땡겨와야 제대로 push가 가능합니다.
git pull origin main --allow-unrelated-histories
- 기존에는
git pull origin master --allow-unrelated-hisories
를 통해 로컬 저장소로 땡겨올 수 있었지만, 처음에 git repository 생성 시 확인했던 것처럼 default branch가 main이라 위처럼 명령어를 작성해야 합니다.
9. 로컬 저장소에 push한 내용을 원격 저장소에 반영합니다.
git push -u origin master
- 현재, 로컬 저장소의 default branch가 master라
git push -u origin master
로 했지만, 추후 local repository의 default branch를 main으로 바꾸면git push -u origin main
으로 해야 합니다.
원격 저장소에 반영할 때에는 아래와 같이 github 허용 여부를 체크하는 부분이 나옵니다. 이 부분은 allow를 하고, 주어진 내용에 따라 잘 따라가면 됩니다.
10. push한 내용을 github repository에서 확인합니다.
현재, 로컬 저장소의 default branch는 master이고, github repository의 default branch는 main이라 아래와 같이 master > main으로 땡겨가야하는 부분이 있습니다.
먼저 Compare & pull request를 클릭하여 master > main으로 보낼 메시지를 작성하고 create pull request를 클릭합니다.
그 후, main 브랜치에서 해당 request를 Merge pull request하여 main 브랜치로 보내면 아래와 같이 VS code에서 작업한 코드가 main branch에 올라감을 확인할 수 있습니다.
앞으로 매번, local repository의 default branch와 github의 default branch가 서로 달라 merge하는 이슈가 발생하지 않기 위해서는 아래의 local repository의 default branch 변경하는 방법을 수행하면 됩니다.
로컬 저장소의 default branch를 master에서 main으로 바꾸는 방법
위와 같이 매번 master에 올린 항목을 main에 올리는 것은 불편하기 때문에, 아래 방법을 통해 default branch를 main으로 바꿀 수 있습니다.
먼저, Git 2.28부터 default branch를 main으로 바꿀 수 있게 되었으므로, git version을 확인합니다. 필자의 경우 따로 git version 변경이 필요하지 않았으나 git 버전이 낮다면 brew upgrade git
명령어 사용 후 진행해야 합니다.
default branch를 변경하는 방법은 ~/.gitconfig 파일 내의 defaultBranch를 직접 변경할 수도 있지만, git config --global init.defaultBranch main
명령어를 사용하면 간단하게 변경이 가능합니다.
이제부터는 git init 명령어를 통해 로컬에서 repository 생성 시, default branch는 main으로 설정됩니다.
'DEVELOPMENT TOOLS > Git' 카테고리의 다른 글
[Git] PR 후 merge된 branch 자동 삭제하기 (0) | 2021.09.26 |
---|---|
[Github Action] Create Issue Branch를 활용한 Issue 생성 및 feature branch 생성 자동화 (0) | 2021.09.26 |
[Git] 원격 저장소의 특정 디렉토리만 clone(하위 디렉토리 clone) (0) | 2021.07.27 |
[Git] LeetCode 연동하기(chrome 확장 프로그램 LeetHub 이용) (2) | 2021.05.07 |
[Git] Git의 default branch 변경하기 (0) | 2021.05.03 |