▶오늘의 주제 : 원격 repo 사용하기
▶원격 repo와 로컬 repo 가 뭐예요?
- 'Git으로 관리되는 프로젝트' 를 Git 에서는 repo(리포, repository 리포지토리의 약자) 라고 부릅니다.
- 내 컴퓨터에 저장되어있는 리포지토리를 로컬 repo(local repository) 라고 합니다. Github 처럼 다른 곳에서 접속할 수 있는 공간에 저장되어있는 것을 원격 repo(remote repository) 라고 합니다.
- Git 도 클라우드 서비스로 두 군데의 내용을 동기화한 것처럼 원격 repo와 로컬 repo 를 연결시켜서 내용을 반영시킬 수 있어요. 로컬 repo 가 원격 repo 를 연결하는 것을 추적(Tracking, 트랙킹 / branch tracking) 이라고 해요.
- 로컬 repo 만이 내가 어떤 원격 repo 와 연결되어있는지를 알고 있어요. 원격 repo 는 내가 어떤 로컬 repo 와 연결되어있는지 정보를 가지고 있지 않아요. 언제나 로컬 repo 를 기준으로 동작을 이해해주세요!
- 단! 클라우드 서비스와 다르게 작업내역 즉, commit을 자동으로 반영하지 않습니다! 내가 원하는 대로 어디 commit 까지만 반영할지를 수동으로 설정할 수 있게 해서 프로젝트를 더 잘 관리하기 위해서입니다!
- commit 을 수동으로 반영해야한다! 만 기억해주세요 😉
- 로컬 repo 의 commit 들을 원격 repo 에 반영하는 것을 **push(푸쉬)**이라고 해요. commit들을 밀어넣기!
- 원격 repo 의 commit 들을 로컬 repo 에 반영하는 것을 pull(풀) 이라고 해요. commit들을 땡겨오기!
- 로컬 repo 를 기준으로 생각하면 되겠죠? 나(로컬 repo)의 내용을 보내주는 거니까 push! 나(로컬 repo)로 내용을 땡겨오는 거니까 pull!
- 원격 repo 를 내 컴퓨터에서도 사용할 수 있도록 가져올 수도 있어요. 일종의 초기 다운로드라고 생각하면 됩니다. 이걸 clone(클론, 복제) 라고 해요.
▶sourcetree 로 push 하기
sorucetree 에서 푸쉬 를 누릅시다
로컬 브랜치에서 master 를 선택하고 확인을 눌러주세요. push 를 하는 순간 원격 repo 에 반영되어 있지 않은 commit들(즉, 이전 push 이후 ~ 현재까지의 commit 들)이 모두 반영됩니다.
▶sourcetree 로 pull 하기
commit 을 잘 pull 했는지 확인하기 위해 히스토리 버튼을 누르면 와! 원격에 있는 commit 이 생겼네요!
▶초심자를 위한 꿀 패턴! pull - commit - push
- Git과 초면인 여러분들을 위한 팁! 혼자 Git 프로젝트 작업을 할 때는 pull -> 로컬 repo commit -> push 순서로 하면 좋아요.
- 원격 repo 와 로컬 repo 에서 같은 파일을 수정하면 Git 이 같은 파일을 수정했는데 내가 어떤 파일을 최종으로 할까? 라고 확인 메시지를 줍니다. (정확한 내용은 곧 배울꺼에요!) 이런 것을 바로 **충돌(conflict)**이라고 표현해요.
- 충돌을 피하기 위해서는 아래 순서를 따라주는 게 편해요. 같은 파일을 동시에 수정해버리면 충돌이 나니까 두 repo 의 상태를 똑같이 맞춰준 후에 변경작업을 해주는 거에요.
- 원격 repo 와 로컬 repo 의 상태를 똑같이 맞춰주기, 즉 로컬 repo 에 원격 repo 작업내역 가져오기 (pull)
- 로컬 repo 의 작업 내용을 저장하고 (commit)
- 원격 repo 에 로컬 repo 내용을 반영 (push)
▶clone - 원격 repo 를 내 컴퓨터에 가져오기
- 원격 repo를 내 컴퓨터에 가져올 수는 없을까요?
- A 컴퓨터에서 작업한 걸 github 에 올리고 B 컴퓨터에서 내용을 보고 싶을 때
- 다른 사람의 repo 를 나도 다운로드 받아서 보고 싶을 때가 있겠죠!
- 이때 사용하는 것이 clone 입니다. 클론! 복제하다라는 뜻이죠. repo 를 내 컴퓨터에 복제해오는 겁니다.
- 먼저 내 컴퓨터 바탕화면에 kimchi-recipe-together 이름의 폴더를 만들어주세요. 원격 repo 내용을 저장할 폴더입니다.
- 복제할 repo 의 url 복사해오기
3. sourcetree 로 사용해서 clone 하기
'Git' 카테고리의 다른 글
Github - label 의미 (2) | 2023.05.06 |
---|---|
Git - Issue 할당 (0) | 2022.11.14 |
Git - 버전관리와 commit (0) | 2022.11.13 |
버전관리와 commit - 개념탑재 (0) | 2022.11.09 |
Git 은 뭐고, Github 은 무엇인가요? (0) | 2022.11.09 |