Linux/Git 기초 Ch 4. 원격 저장소 github에 push하기

HanSungUk·2022년 5월 19일
0

Linux / Git 기초

목록 보기
4/4

Linux/Git 기초 Ch 4. 원격 저장소 github에 push하기 입니다.

현재 코드스테이츠 강의를 통해 프론트엔드를 학습하고 있습니다.
본 포스트는 해당 강의에 대한 내용 정리를 목적으로 합니다.

학습목표

  • 원격 Git 리포지토리 개념을 이해합니다.
  • 원격 Git 리포지토리를 직접 생성할 수 있습니다.
  • git push로 로컬 Git 리포지토리의 내용을 원격 Git 리포지토리에 기록할 수 있습니다.
  • git pull로 원격 Git 리포지토리의 내용을 로컬 Git 리포지토리로 가져올 수 있습니다.

1. 원격 Git 리포지토리

git repository란 파일이나 폴더를 저장해두는 곳을 말하는데
local repository는 내 컴퓨터의 저장소를 의미하고,
remote repository는 원격 온라인 서버 상의 저장소를 의미합니다.
원격 git 리포지토리는 git을 설치할 수 있는 서버 어디든 설치할 수 있습니다.

github workflow

원격 git 리포지토리를 다루는 방법은 다음과 같습니다.
1. Github에서 원격 리포지토리를 생성합니다.
2. 로컬 리포지토리에 원격 리포지토리 git url을 등록합니다.(git remote add)
3. 로컬 Git repository에 기록한 내역을 원격 Git repository에 push합니다.(git push)

2. git remote

원격 리포지토리를 다루기 위한 git 명령어입니다.
git remote add는 로컬 리포지토리에 원격 리포지토리 주소를 등록하는 명령어입니다.
<name>: 앞으로 로컬 리포지토리에서 원격 리포지토리 주소를 대신할 이름. 대부분 origin으로 사용합니다.
<URL>: 원격 리포지토리 주소(ex: git@github.com:StarryPro/my-first-github-repository.git)
코드의 형태는 다음과 같습니다.

git remote add <name> <URL>
git remote add origin git@github.com:StarryPro/my-first-github-repository.git

// 원격 리포지토리가 잘 연결되었는지 확인합니다.
hansunghoo@hanseonghuui-MacBookPro my-app % git remote -v
origin	git@github.com:StarryPro/my-first-github-repository.git (fetch)
origin	git@github.com:StarryPro/my-first-github-repository.git (push)

3. git push

로컬 리포지토리에서 기록한 내역을 원격 리포지토리로 옮기는 작업입니다.
git push는 새롭게 생성한 원격 리포지토리에 기존 커밋 기록을 옮기거나, 기존 원격 리포지토리에서 일부 변경된 내용을 옮기는데 사용할 수 있습니다.

<remote> : 원격 리포지토리의 이름. 위 예시에서는 origin으로 등록했습니다.
<branch> : 브랜치의 이름을 입력합니다. 기본적으로 main이나 master으로 등록되어있습니다.

로컬 리포지토리의 기록을 원격 리포지토리 origin의 main브랜치(master 브랜치)로 Push하려면 git push origin main 또는 master를 입력합니다.
코드의 형태는 다음과 같습니다.

git push <remote> <branch>
hansunghoo@hanseonghuui-MacBookPro my-app % git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 278 bytes | 278.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:StarryPro/my-first-github-repository.git
 * [new branch]      master -> master

4. git pull

원격 리포지토리의 기록을 로컬 리포지토리로 옮기는 작업입니다.
git pull은 새롭게 생성한 로컬 리포지토리에 기존 커밋 기록을 옮기거나, 원격 리포지토리와 로컬 리포지토리에서 일부 변경된 내용을 옮기는데 사용할 수 있습니다.

코드의 형태는 다음과 같습니다.

git pull <remote> <branch>
git pull origin main

5. fork

fork는 기존의 잘 만들어진 프로젝트에 변화를 주거나 새로운 것을 시도해보기 위해 리포지토리를 복사하는 것을 의미합니다. 기존의 프로젝트에 영향을 미치지 않기 때문에 서로의 프로젝트에 영향을 주지 않습니다.
또한 라이센스까지 함께 복사가 되기 때문에, 공개되어 있고 라이센스 명시가 제대로 되어있는 프로젝트는 라이센스만 잘 지키면 포크해도 문제가 없습니다.
github workflow
fork이후에는 자신의 컴퓨터 로컬 리포지토리로 git clone하여 따로 개발이 가능합니다.
로컬 리포지토리에서 작업 수행 후 push & pull request를 통해 자신의 원격 리포지토리에 저장(git push)한 후 public 프로젝트의 관리자에게 버그 수정 및 기능 추가 요청(pull request)을 할 수 있습니다.
또한 public 프로젝트에서 새로 업데이트 된 내용을 pull할 수도 있습니다.

0개의 댓글