Git 정리 1, 2편을 통해서 Git의 개념, 기본적인 명령어 그리고 Branch를 학습하였다. 이번 3편에서는 Github에 대해서 학습해보자.
이 때까지 학습했던 내용들은 수정자가 한 명이었기 때문에 크게 문제가 없었다. 그런데 협업에서는 여러 사람이 같은 코드를 수정할 경우가 생기는데 이 때 Github를 통해 해결할 수 있다.
Github는 Git의 원격 저장소이다. 이 밖에 Gitlab과 Bitbucket이 있지만 Github 중점으로 학습하였다. Github를 학습하기 전 Personal Access Token 발급부터 알아보자.
기존 Github에서는 인증 방식이 기존에는 패스워드 방식이였지만 토큰 방식으로 변경되었다. 토큰을 재발급하기 위해서는 https://github.com/settings/tokens 에서 토큰을 발급받으면 된다.
발급 시 다음과 같이 확인할 수 있다. 토큰은 이름과 유효기간 등을 설정하면 되고 토큰 값은 발급 화면에서 확인하고 다시 확인할 수 없으므로 따로 보관을 해야 한다.
로컬 Git이 존재할 때 git remote add (원격 저장소 이름) (원격 저장소 주소) 을 통해 로컬 Git 저장소에 원격 저장소로의 연결을 추가할 수 있다.
로컬 Git이 존재하지 않을 때 원격 저장소에 있는 레포지토리를 연결 하기 위해서는 git clone (원격 저장소 주소) 명령어를 통해 연결할 수 있다.
원격 저장소 삭제를 하기 위해서는 git remote remove (원격 저장소 이름) 명령어를 사용하면 된다. 명령어 실행 시 Github에 레포지토리가 삭제되는 것이 아닌 로컬과의 연결을 삭제한다.
해당 로컬 Git 저장소에 연결된 원격 저장소를 확인하기 위해서는 git remote 명령어를 통해 알 수 있다.
git pull 명령어를 통해 원격 저장소에 있는 commit 내용을 로컬 Git 저장소로 가져올 수 있다.
git push -u (원격 저장소 이름) (원격 저장소 Branch 이름) 명령어를 통해 로컬 Git 저장소에 있는 commit 내역들을 원격 저장소로 보낼 수 있다.
-u 옵션을 통해 원격 대상 레포지토리 Branch를 설정하게 되면 기본 설정되어 이후에는 git push 명령어를 통해 가져올 수 있다.
만약 원격 저장소에 커밋을 보내려고 했는데, 이미 원격 저장소에 누군가가 커밋을 보내 버전이 바뀌었을 때에는 새로운 버전을 먼저 받고 커밋을 보내야한다.
만약 같은 코드를 서로 수정했다면 알맞은 코드로 수정한 후에 git add -> git commit -> git push를 하면된다.
만약 원격 저장소에 버전이 아닌 지금 로컬 저장소의 버전으로 확실하게 변경된다면 git push --force 로 덮을 수 있다.
로컬 Git에도 여러 Branch가 있는 것처럼 원격 저장소에도 Branch가 여러 개 존재할 수 있다. 또한 원격 저장소의 Branch를 가져올 수 있고, 로컬 저장소의 Branch를 원격 저장소에 적용시킬 수 있다.
로컬 저장소에 Branch를 생성한다.
git push -u (원격 저장소 이름) (Branch 이름) 명령어를 실행한다.
원격 저장소 Branch을 가져오기 위해서는 가장 먼저 git fetch 명령어를 실행 하여 원격 저장소의 변경사항을 확인해야 한다.
git switch -t (원격 저장소 이름/원격 저장소 Branch 이름) 명령어를 실행한다. 실행 시 로컬에 원격 저장소의 Branch가 생성되며 서로 연결되 있는 상태를 계속 유지한다.
로컬에서 원격 저장소에 있는 Branch를 삭제하기 위해서는 git push (원격 저장소 이름) --delete (원격 저장소 Branch 이름) 명령어를 실행하면 된다.
git에 대한 이해가 쏙쏙 됩니다.