Git 정리 3편

민선규·2023년 10월 22일

기타

목록 보기
12/16
post-thumbnail

- Git 정리 1편
- Git 정리 2편

Git 정리 1, 2편을 통해서 Git의 개념, 기본적인 명령어 그리고 Branch를 학습하였다. 이번 3편에서는 Github에 대해서 학습해보자.

Github

이 때까지 학습했던 내용들은 수정자가 한 명이었기 때문에 크게 문제가 없었다. 그런데 협업에서는 여러 사람이 같은 코드를 수정할 경우가 생기는데 이 때 Github를 통해 해결할 수 있다.

Github는 Git의 원격 저장소이다. 이 밖에 Gitlab과 Bitbucket이 있지만 Github 중점으로 학습하였다. Github를 학습하기 전 Personal Access Token 발급부터 알아보자.

Personal Access Token

기존 Github에서는 인증 방식이 기존에는 패스워드 방식이였지만 토큰 방식으로 변경되었다. 토큰을 재발급하기 위해서는 https://github.com/settings/tokens 에서 토큰을 발급받으면 된다.

발급 시 다음과 같이 확인할 수 있다. 토큰은 이름과 유효기간 등을 설정하면 되고 토큰 값은 발급 화면에서 확인하고 다시 확인할 수 없으므로 따로 보관을 해야 한다.

명령어

원격 저장소 연결 - 1

로컬 Git이 존재할 때 git remote add (원격 저장소 이름) (원격 저장소 주소) 을 통해 로컬 Git 저장소에 원격 저장소로의 연결을 추가할 수 있다.

원격 저장소 연결 - 2

로컬 Git이 존재하지 않을 때 원격 저장소에 있는 레포지토리를 연결 하기 위해서는 git clone (원격 저장소 주소) 명령어를 통해 연결할 수 있다.

원격 저장소 연결 삭제

원격 저장소 삭제를 하기 위해서는 git remote remove (원격 저장소 이름) 명령어를 사용하면 된다. 명령어 실행 시 Github에 레포지토리가 삭제되는 것이 아닌 로컬과의 연결을 삭제한다.

원격 저장소 확인

해당 로컬 Git 저장소에 연결된 원격 저장소를 확인하기 위해서는 git remote 명령어를 통해 알 수 있다.

원격 저장소에 커밋 가져오기

git pull 명령어를 통해 원격 저장소에 있는 commit 내용을 로컬 Git 저장소로 가져올 수 있다.

원격 저장소에 있는 커밋 보내기

git push -u (원격 저장소 이름) (원격 저장소 Branch 이름) 명령어를 통해 로컬 Git 저장소에 있는 commit 내역들을 원격 저장소로 보낼 수 있다.

-u 옵션을 통해 원격 대상 레포지토리 Branch를 설정하게 되면 기본 설정되어 이후에는 git push 명령어를 통해 가져올 수 있다.

충돌 해결

만약 원격 저장소에 커밋을 보내려고 했는데, 이미 원격 저장소에 누군가가 커밋을 보내 버전이 바뀌었을 때에는 새로운 버전을 먼저 받고 커밋을 보내야한다.

  1. git pull --no-rebase : merge 방식으로 새로운 버전과 나의 커밋을 병합한다.
  2. git pull --rebase : rebase 방식으로 새로운 버전과 나의 커밋을 병합한다.

만약 같은 코드를 서로 수정했다면 알맞은 코드로 수정한 후에 git add -> git commit -> git push를 하면된다.

만약 원격 저장소에 버전이 아닌 지금 로컬 저장소의 버전으로 확실하게 변경된다면 git push --force 로 덮을 수 있다.

Branch

로컬 Git에도 여러 Branch가 있는 것처럼 원격 저장소에도 Branch가 여러 개 존재할 수 있다. 또한 원격 저장소의 Branch를 가져올 수 있고, 로컬 저장소의 Branch를 원격 저장소에 적용시킬 수 있다.

로컬에서 원격 저장소 Branch 생성하기

  1. 로컬 저장소에 Branch를 생성한다.

  2. git push -u (원격 저장소 이름) (Branch 이름) 명령어를 실행한다.

로컬에서 원격 저장소 Branch 가져오기

  1. 원격 저장소 Branch을 가져오기 위해서는 가장 먼저 git fetch 명령어를 실행 하여 원격 저장소의 변경사항을 확인해야 한다.

  2. git switch -t (원격 저장소 이름/원격 저장소 Branch 이름) 명령어를 실행한다. 실행 시 로컬에 원격 저장소의 Branch가 생성되며 서로 연결되 있는 상태를 계속 유지한다.

로컬에서 원격 저장소 Branch 삭제하기

로컬에서 원격 저장소에 있는 Branch를 삭제하기 위해서는 git push (원격 저장소 이름) --delete (원격 저장소 Branch 이름) 명령어를 실행하면 된다.

1개의 댓글

comment-user-thumbnail
2023년 10월 25일

git에 대한 이해가 쏙쏙 됩니다.

답글 달기