[Git] local repository와 remote repository 그리고 명령어들(fetch, pull, push, fork, pull request)

2023. 12. 1. 19:06·공부/Git
728x90

 

 

Git은 버전 관리 시스템이다. 컴퓨터에 있는 파일을 인터넷에 올리고 여러 사람과 공유하며 그 파일을 수정하고 큰 프로젝트와 연동시키고 프로젝트에 있는 이슈에 대해 토론하는 등 훌륭하고 아름다운!!! 시스템이다.

 

평상시 우리는 컴퓨터를 이용해 이런 저런 코드를 짠다. 이때 ✅ 우리의 컴퓨터가 local repository가 된다.

✅ remote repository는 아주 먼 곳에 있는 저장소다. 우리가 local repository에서 짠 코드를 remote repository에 올리는 순간 저 멀리 카이로 피라미드 앞에서도 내 코드를 볼 수 있게 된다. 이렇게 다른 사람들에게 내 파일을 공유하기 위해 우리는 git remote add <name> <url> 명령어를 사용한다.

 

만약 내가 나 혼자만의 project를 저장하기 위해 git을 사용중이고 아무에게도 보여주기 싫고, private으로 관리중이라면 remote repository가 필요하지 않을 수도 있다. local repository만으로도 git에 관련된 모든 일을 경험할 수 있다. 

 

 

📚 git fetch

remote repository에 있는 내용을 local repository로 가져오는 명령어다. local branch의 내용에는 영향을 주지 않으니 fetch된 내용을 보고 직접 판단하여 통합 여부를 결정해야 한다. 

// remote repository에서 local repository로 모든 branch가 딸려온다
$ git fetch <remote-name>

// remote repository에서 선택한 특정 branch만 local repository로 딸려온다
$ git fetch <remote-name> < branch-name>

 

 

📚 git pull

git pull은 git fetch와 git merge를 합친 명령어다. remote repository의 내용을 가져오고(fetch) local repository와 합치는(merge)일을 수행한다.

// $ git fetch <remote> 후 $ git merge origin/<current-branch>와 같은 작업이다
$ git pull <remote-repo>
// remote repository에서 선택한 특정 branch만 local repository로 오면서 merge된다
$ git pull <remote-repo> <remote-branch>

 

 

📚 git push

git fetch와 대응되는 명령어다. local repository에 있는 내용을 remote repository로 commit을 내보내는 일을 한다.

// local repository의 특정 branch를 remote repository에 올린다
$ git push <remote-name> <branch-name>

// local repository의 모든 branch를 remote repository에 올린다
$ git push <remote-name> --all

// local repository의 모든 tag를 remote repository에 올린다 (일반적으로 git push는 tag를 올리지 않는다)
$ git push <remote-name> --tag

 

 

📚 Fork and Pull Request

git에서 Fork 버튼을 누르면 다른 사람의 프로젝트를 그대로 복사해 내 개인 계정으로 올릴 수 있다.

Pull Request버튼을 사용하면 내가 짠 변경된 코드를 다른 개발자에게 보여줄 수 있다. 다른 개발자들은 그 변경사항을 보고 리뷰하여 master가 변경사항을 Merge할지, 반려할지 등을 결정하게 되는 것이다.

728x90

'공부 > Git' 카테고리의 다른 글

[Git] GitHub Actions에 대하여  (0) 2023.12.01
[Git] 효율적인 업무를 위한 Workflow (Centralized Workflow, Feature-Branch Workflow, GitFlow, Forking Workflow)  (1) 2023.12.01
[Git] git clone과 git remote add의 차이점  (0) 2023.12.01
[Git] 로그인 정보 확인하기 git config --list  (0) 2023.11.16
'공부/Git' 카테고리의 다른 글
  • [Git] GitHub Actions에 대하여
  • [Git] 효율적인 업무를 위한 Workflow (Centralized Workflow, Feature-Branch Workflow, GitFlow, Forking Workflow)
  • [Git] git clone과 git remote add의 차이점
  • [Git] 로그인 정보 확인하기 git config --list
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (238)
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (3)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    EFCore
    EntityFramework
    C#
    라즈베리파이
    Python
    자바
    Entityfamework
    coding
    java
    C
    unity
    네트워크
    코딩
    HTML
    C언어
    디자인패턴
    tcp
    백준
    유니티
    게임서버
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[Git] local repository와 remote repository 그리고 명령어들(fetch, pull, push, fork, pull request)
상단으로

티스토리툴바