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할지, 반려할지 등을 결정하게 되는 것이다.
'공부 > 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 |