[Repository name *] 부분에 아무 이름을 넣고 새로운 리포지토리(원격 저장소)를 만들어준다.
GitHub로 올릴 로컬 디렉토리에서 아래 코드를 순차적으로 따라가면 된다.
git init
git add .
한줄 커밋 메시지를 작성할 경우
git commit -m "<커밋 메시지>"
문서 형태로 커밋 메시지를 작성할 경우
git commit -m "<커밋 메시지>"
git branch
를 입력해보면 기본적으로 master
로 설정되어 있을 것이다. 최근에는 master
보다 main
을 많이 쓴다. 메인 브랜치를 main
으로 변경한다.
git branch -M main
Git에서 브랜치는 매우 중요한 개념이다. Git으로 협업을 하다 보면 여러 사람이 각자 수정한 코드를 리포지토리에 반영해야 하는데 바로 main
브랜치에 반영하는 건 미친짓이다. 버그나 충돌이 일어났을 때 원인을 찾거나 되돌리기가 어려워지기 때문이다. 그렇기 때문에 나중에 나오겠지만 GitHub에 코드를 업데이트할 때 기본적으로 main
이 아닌 다른 브랜치(예를 들어 develop
)로 우선 푸시한 다음, main
브랜치와 develop
브랜치를 병합(merge)하기 위한 풀-리퀘스트(Pull-Request)를 생성하여 main
브랜치와 합친다. 새로운 브랜치를 생성하기 위해서는 git checkout
을 사용한다. `git checkout은 브랜치를 변경할 때도 사용한다.
git checkout -b <브랜치 이름>
git checkout <브랜치 이름>
git branch
를 입력하면 현재 브랜치를 볼 수 있다.
git branch
Git 리모트를 생성한다. 주로 origin
이라는 이름으로 생성한다. 이 때 내가 만든 리포지토리 주소를 뒤에 붙여 적는다. 웬만해서 리모트는 생성 후 건들 일이 잘 없다.
git remote add origin https://github.com/<유저 이름>/<리포지토리 이름>.git
git remote
를 통해 현재 리모트를 볼 수 있다.
git remote
Git 푸시를 진행할 준비를 모두 마쳤으면 코드를 원격 브랜치로 푸시한다.
git push origin main
origin
을 로컬, main
을 원격이라고 생각하면 쉽다. 푸시를 통해 코드 변경 사항을 origin
의 내용을 main
으로 푸시한다고 생각하자.사실 엄연히 말하면 브랜치는 로컬 브랜치와 원격 브랜치로 나누어지기 때문에 이를 잘 구분해야 한다. 커밋을 하면 원격 브랜치가 아니라 로컬 브랜치에 반영이 된다. 그래서 처음 커밋을 할 때 어떤 브랜치에서 커밋을 하는지 잘 확인해야 된다. 만약 잘못 커밋 했다면, 예를 들어 patch-1
에서 커밋을 해야 하는데 patch-2
에서 커밋을 진행했다면 cherry-pick으로 커밋을 끌어올 수는 있다.
git checkout patch-1
git cherry-pick <커밋 해시>
-u
옵션을 사용하면 푸시 시 리모트와 브랜치를 저장해 놓을 수 있다. 즉 푸시할 때마다 원래는 git push origin main
처럼 입력해 주어야 하지만, -u
를 이용해 초기에 푸시해 놓으면 이후부터는 git push
만 입력해도 자동으로 리모트는 orgin
으로, 브랜치는 main
으로 설정된다.
git push -u origin main