2022. 8. 11. 23:30ㆍ개발공부 기강잡자/Git
원격 저장소
: 작업한 내용을 인터넷에 올려 백업, 협업할 때 사용되는 저장소
✔ 소스코드 버전 backup
✔ 다른 사람과 협업
- 일반적으로 인터넷을 통해 연결한다.
원격저장소 생성
git init --bare remote
: 원격저장소 remote 디렉토리 생성, 원격저장소를 생성할 때는 --bare
옵션을 사용하여 저장만 하도록 하고, 작업을 하지 않도록 생성한다.
원격저장소 연결 remote add
git remote add origin [원격저장소 주소]
: 현재 저장소에 원격 저장소를 연결한다.
* origin
: 원격 저장소 주소에 별칭으로 origin 부여
git remote -v
: 현 저장소에 연결된 원격 저장소 확인하는 명령어
- 저장소에 origin
이란 이름으로 c:/project/gitfth/remote
원격저장소가 연결되어있음을 확인할 수 있다.
원격저장소에 업로드 (push)
git push [원격저장소] [branch]
: 로컬 저장소의 branch 작업내역을 원격 저장소의 똑같은 branch에 업로드 (push)
git push origin master
: origin 원격 저장소에 master branch를 push
Github 원격 저장소 만들기
- 우선 github 계정을 만들어야하고, 로그인한 뒤 New Repository를 생성하면 된다.
- 이미 github 를 여러번 사용해봤기 때문에 이부분은 간단히 넘어가도록 하겠다..!
- Public/Private : 공개여부, Public은 무료, Private repository는 비용발생
ReadMe.md
: 프로젝트 설명 파일, Markdown 포맷
: 여기에 있는 원격 저장소의 주소로 원격저장소 연결이 가능하다.
1. 원격 저장소를 만든 다음에 원격저장소를 로컬 저장소에 복제해와서 로컬저장소에서 작업하는 방법
2. 로컬 저장소의 작업 내역을 원격 저장소에 올리는 방법
github에 업로드 Push
git push -u origin master
-u
옵션 : 로컬 저장소의 master branch와 원격 저장소의 master branch를 연결, 초기 한번만 실행하면 된다.
github(원격저장소)에 로컬저장소의 작업내역이 업로드 된 것을 확인할 수 있다.
> 한번 수행 후에는 git push
명령어만 수행해도 master branch에 업로드 되는 것을 확인할 수 있다.
이미 존재하는 원격 저장소를 로컬 저장소로 복제해오기 Clone
git clone [원격저장소 주소] [디렉토리명]
git clone [원격저장소주소] .
: 현재 디렉토리에 복사해오기
git clone
명령어 수행 후 원격저장소의 파일들이 로컬 저장소로 다운로드 받아진 것을 확인할 수 있다.
Github 동기화
작업 전에 제일 먼저 해야할 작업 > pull
(당겨오기)
git pull
: 지역 저장소에 원격 저장소의 내용을 당겨오기
> 각 PC에서 작업한 내용을 push
와 pull
을 통해 동기화하여 작업할 수 있다.
Ex) 재택근무를 하는 상황에서,
집에서 작업한 후 작업 내용을 원격저장소에 push
→ 사무실 출근했을 때, 집에서 작업한 내용을 원격저장소에서 pull
, 수정된 내용을 가져온 뒤 작업할 수 있다.
pull VS fetch
: 원격 저장소에서 지역저장소로 가져오는 두가지 방식을 비교해보자
1. git pull
을 한 경우
현재 checkout 된 브랜치의 head와 origin의 head가 동일한 것을 볼 수 있다.
-> 원격저장소에서 필요한 파일을 가져온 뒤에 병합까지 자동으로 된다.
(+ ORIG_HEAD의 값으로 git pull
이전의 상태로 되돌릴 수 있다.)
2. git fetch
를 한 경우
현재 checkout 되어있는 branch는 fetch
를 해오기 전의 commit을 가리키고 있고,
origin의 master는 원격저장소의 마지막 commit을 가리키고 있다.
-> origin이 local을 앞서고 있는 상황
-> 지역저장소의 master 에는 변화를 일으키지 않는다.
✔ 원격 저장소의 내용과 지역저장소의 버전과 차이 (diff)을 비교해볼 수 있다.
git diff HEAD origin/master
✔ 문제가 없는걸 확인한 후에는 origin의 master를 로컬의 master로 병합
git merge origin/master
: 병합된 후, 로컬과 원격이 가리키는 커밋이 같은 것을 확인할 수 있다.
드디어,,, git의 핵심인 원격저장소 부분까지 살펴봤다.
이번에 지옥에서 온 git을 수강하면서 일부 아는 부분도 있었지만, 원리까지 알게 되면서 git의 동작을 알게 되었기 때문에 좀더 git을 효율적으로 활용할 수 있을 것 같다.
이젠 단순 백업용이 아닌 협업용으로 사용해보는 경험을 쌓아 실무에서 사용하는 일만 남은 것 같다.
아자아자 화이팅
나는 할 수 있다.\( ̄︶ ̄*\))
'개발공부 기강잡자 > Git' 카테고리의 다른 글
[Git]git pull 할 때 fatal: Need to specify how to reconcile divergent branches. 오류 (0) | 2023.03.21 |
---|---|
[Git] branch 이름 변경하기 (0) | 2023.03.21 |
[Git - 지옥에서 온 git] 4일차 - git의 원리 공부 (merge/conflit/3-way merge) (0) | 2022.08.09 |
[Git - 지옥에서 온 git] 4일차 - git의 원리 공부 (reset/checkout) (0) | 2022.08.09 |
[Git - 지옥에서 온 git] 4일차 - git의 원리 공부 (branch와 HEAD) (0) | 2022.08.09 |