-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
서버
5.1 서버 저장소
5.1.2 연속된 작업
- 원격 저장소가 있다면 사무실, 집, 다른 여러 컴퓨터에 코드를 동기화하고 연속된 작업 가능
협업, 백업의 관점
5.3 깃허브 연동 및 원격 등록
5.3.2 프로토콜
- 깃은 Local, HTTP, SSH, Git 전송 방식 지원한다.
- HTTPS
- username/password 기반
- SSH
- ssh key 기반
5.3.3 원격 저장소의 리모트 목록 관리
// 별칭 이름�
git remote
// 별칭 이름과 URL
git remote -v
- push : 서버로 동작
- fetch : 서버에서 가져오는 동작
5.3.5 원격 저장소에 연결
git remote add 원격저장소별칭 원격저장소URL
5.4 서버 전송
5.4.1 push: 서버에 전송
- 원격 저장소로 커밋된 파일을 업로드하는 동작
git push 원격저장소별칭 브랜치이름
- 별칭 이름을 가진 서버의 master 브랜치에 현재 브랜치를 업로드
git push origin master
5.5 자동으로 내려받기
5.5.1 clone: 복제
- git init 명령어 외에 원격 서버 접속에 필요한 추가 설정을 자동으로 수행
- 서버의 연결 설정을 마친 후 서버 안에 있는 모든 커밋된 코드 이력들을 한번에 내려받는다.
5.5.2 pull: 서버에서 내려받기
- 원격 저장소의 갱신된 내용을 추가로 받을때 사용
- 로컬 저장소보다 최신인 갱신된 원격 저장소의 커밋 정보를 현재 로컬 저장소로 내려받는다.
5.6 수동으로 내려받기
5.6.1 자동 병합
- pull : 원격 서버에 현재 커밋보다 더 최신 커밋 정보가 있을때 내려받는다.
- 내려받은 커밋 정보는 임시 영역에 저장된다.
- 현재 브랜치와 자동으로 병합한다.
5.6.2 fetch : 가져오기
- fetch : 원격 저장소에서 코드를 수동으로 내려받는 작업
- 내려받은 커밋 정보는 임시 영역에 저장된다.
- 현재 브랜치와 자동으로 병합하지 않는다.
- pull = fetch + merge
5.6.3 merge 명령어로 수동 병합
- 내려받은 커밋을 로컬 저장소에 적용하기 위해 병합 명령어 사용
git merge 원격저장소별칭/브랜치이름
// example
git mrege origin/master
5.7 순서
5.7.1 최신 상태
- 원격 저장소에 푸시하려면 자신의 저장소가 원격 저장소의 커밋보다 최신이어야한다.
- 푸시는 서버의 마지막 커밋과 푸시되는 커밋을 병합한다.
개발자1 코드 수정, 개발자2 코드 수정
개발자1 코드 푸시하여 원격 저장소 갱신
이후 개발자2가 코드 푸시하면 오류 발생 (커밋이 순차적이지 않으므로)
5.7.2 충돌 방지
- 깃이 최신상태에서만 푸시를 허용하는 것은 충돌을 방지하기 위함이다.
- 충돌 방지를 위해서 아래와 같이 자주 최신으로 유지하는 것을 추천
pull -> coding -> commit -> pull -> push
Metadata
Metadata
Assignees
Labels
No labels