[Git] git으로 원격저장소 다루기 (push, pull, clone)

2022. 2. 19. 17:00·Git & GitHub/Git

 

Git과 Github 를 사용하기 위해서는 원격 저장소가 필요하다. 원격 저장소를 이용하면 개인 프로젝트를 깃헙이라는 클라우드에 백업할 수도 있고, 만약 오픈소스라면 다른 사람들과 협업도 가능하기 때문에 개발자라면 반드시 사용할 줄 알아야한다. 그러면 깃을 이용하기 위해 Repository를 만들고 깃 배쉬를 통해 연결하는 과정에 대해서 알아보자!

 

 

1. 원격 저장소 생성하기


일단 깃허브에 로그인해서 Repositories에 들어간다. (깃허브 주소 : https://github.com/  )

New버튼을 클릭하면

 

 

새로운 저장소를 만드는 창이 뜨고 아래와 같이 저장소 이름을 적어준다. 원하면 Descrption을 적어도 된다.

만약 아래부분의 체크박스를 체크하면 원격저장소 연결이 번거로워질 수도 있으니 웬만하면 체크하지 말자.

 

 

저장소를 만들면 그 저장소에 들어가지는데 아래 사진과 같은 화면이 뜬다.

친절히도 어떻게 연결해야하는지 설명되어 있기 때문에 사실 포스트 뒤의 내용을 보지 않고 그대로 따라해도 된다.

 

만약 git init부터 시작해야한다면  ...or create a new repository on the command line 을 따라하고,

이미 로컬저장소가 있다면  ...or push an existing repository from the command line 을 사용하자.

다른 레포지토리로부터 정보를 가져올 것이라면  ...or import code from another repository 를 쓰자.

 

주의할 점은 초기설정에 대한 설명은 없기 때문에 초기설정은 따로 해줘야한다.

초기 설정에 대한 것이 궁금하다면 2번 시작하는 부분에 링크를 걸어놨으니 참고하길 바란다.

 

 

2. Git Bash로 저장소 연결하기


일단 원래 사용하던 로컬저장소가 있고 초기설정과 커밋까지 완료했다고 전제한 실습이다.

위 내용을 모른다면 링크를 참고하자. == > https://myvelop.tistory.com/22

 

원격저장소의 주소 형식은 아래와 같다.

https://github.com/깃허브아이디/원격저장소이름.git

위의 빨간박스에 있는 주소를 복사 붙여넣기해도 괜찮다.

 

 

여기서  origin 의 개념이 중요한다.  origin 이란 원격 저장소의 URL short name이다.

다시 말하자면, 깃허브 클라우드 저장소 그 자체라고 생각하면 된다.

 

$ git branch -M main 을 생략하고 push 명령어를 사용하면 error: failed to push some refs to '원격저장소 주소' 에러 발생하니 주의하자.

$ git branch -M main
$ git remote add origin 원격저장소_주소

 

만약 잘 연결됐는지 확인하고 싶다면  git remote -v  또는  git ls-remote라고 쳐보자

$ git remote -v
origin  원격저장소_주소 (fetch)
origin  원격저장소_주소 (push)


$ git ls-remote
From https://github.com/pythonstrup/important-app.git

 

 

연결이 잘못됐다면 git remote rm origin 을 이용해 연결을 삭제하고 다시 연결을 시도하자.

$ git remote rm origin

$ git remote add origin 원격저장소_주소

 

 

 

 

3. git push


git push 명령어는 원격저장소에 파일업로드와 병합을 한꺼번에 해주는 명령어이다.

git push 명령을 해보자

$ git push -u origin main

- 결과

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 259 bytes | 259.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/pythonstrup/important-app.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

원격저장소에 직접 들어가보면 저장이 잘 되어있는 것을 확인할 수 있다.

 

 

만약 나중에 다른 브랜치인 my를 push 하고 싶다면 아래와 같이 하면 된다.

나중에 깃이나 깃허브에서 merge를 실행할 수 있다.

$ git push origin my

 

 

 

 

4. git pull


만약 회사 프로젝트를 집에서 작업하기 위해 사용하고 싶다고 해보자.

그 방법은 간단하다. git을 통해 원격저장소를 연결하고 프로젝트를 다운로드 받아오면 된다.

아래 사진과 같이 code 버튼을 이용하면 쉽게 원격저장소 주소를 얻을 수 있다.

원격저장소와 연결하고나서, 파일을 가져오는 명령은 git pull이다.

$ cd 디렉토리

$ git init

$ git remote add 원격저장소_주소

$ git pull origin main

 

- 결과 (다운로드 완료)

remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 239 bytes | 2.00 KiB/s, done.
From https://github.com/pythonstrup/important-app
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main

폴더에 다운로드된 것을 확인할 수 있다.

 

다른 브랜치(my)를 가져오고 싶을 때 사용하는 명령어는 아래와 같다.

# origin에 있는 모든 브랜치 다운로드 받기
$ git fetch origin

# my 브랜치 만듦과 동시에 my 브랜치 병합하기
$ git checkout -b my origin/my

 

 

 

5. git clone


git pull  보다 훨씬 강력하고 편한 도구가 있는데  git clone 이다.

 git clone  은 git init, remote add, pull 명령을 한 방에 할 수 있는 아주 간편한 명령어다.

$ git clone 원격저장소_주소

 

-결과

Cloning into 'important-app'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

 

pull과 다른 점이라면 텍스트파일이 바로 들어오는 것이 아니라, 프로젝트 폴더가 생성된다. 

 

파일 디렉토리에 들어가 log를 확인해보자

$ cd important-app/


$ git log
commit 670a5417d98e46bda5358950f6b6ba1dbfa3b559 (HEAD -> main, origin/main, origin/HEAD)
Author: BigBell <pythonstrup@gmail.com>
Date:   Sat Feb 12 16:18:14 2022 +0900

    회사프로젝트 완료

 

잘 설치된 것을 확인할 수 있다.

'Git & GitHub/Git' 카테고리의 다른 글
  • [Git] git으로 팀 프로젝트 관리 - 초기 설정하기
  • [Git] Git 으로 개인 프로젝트 관리하기
  • [Git] git rebase 사용하기
  • [Git] git branch 사용하기
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    자바
    파이썬
    Spring
    부스트캠프
    jsp
    스프링
    Python
    GitHub
    부스트캠프 멤버십
    부스트캠프 7기
    os
    운영체제
    알고리즘
    웹개발
    Git
    java
    자바스크립트
    오류해결
    MySQL
    스프링부트
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[Git] git으로 원격저장소 다루기 (push, pull, clone)
상단으로

티스토리툴바