Git

[Git 교과서] 5장 서버

차노도리 2023. 5. 24. 00:07

서버 저장소

  • 서버저장소는 원격(remote)저장소 라고 하며, 로컬저장소의 복사본이며, 안전하게 보관하고 다른사람들과 협업이 가능하다.

5.1 깃허브

  • 안정적인 서버를 운영하기위해 깃 호스팅서비스 인 깃허브를 많이 사용한다.
  • 공개용 저장소로 생성하면 무제한 생성가능 하다.
  • 한 소유주(owner) 안에서, 같은이름의 저장소 생성 불가능하다.

 

5.3 깃허브 연동 원격등록

 로컬저장소 연결방법

  • 새로운 로컬저장소에 원격저장소를 연결하는 방법
$ mkdir git-study                     # 폴더만들기
$ cd git-study                        # 폴더로이동
$ git init                            # 저장소를 초기화
$ echo "# git-study" >> README.md     # "# git-study" 라는 text를 README.md로 밀어넣기
$ git add README.md                   # git add (스테이지에 등록)
$ git commit -m "first commit"        # 커밋

 

  • 기존 저장소를 연결하는 방법
$ git clone [원격주소]

 

프로토콜

Local, HTTP, SSH, Git 특징 :

  • Local : 로컬컴퓨터에 원격저장소 생성 가능 하다.
  • HTTP : 일반적으로 가장 많이 사용한다.
  • SSH : 많이 사용하며 보안성이 높다. (인증서를 만들어 접속 처리)
  • Git : ssh와 유사하지만, 보안성이 낮아 일반적으로 많이 사용되지 않는다.

 

원격저장소의 리모트 목록관리

  • $ git remote      #원격저장소의 이름을 출력
  • $ git remote -v   #원격저장소의 별칭과 URL확인 가능

 

원격 저장소에 연결

  • git remote add [원격주소별칭] [원격주소]

 

별칭 이름 변경과 정보

  • $ git remote rename [변경전] [변경후]
  • $ git remote show [원격저장소 별칭]

 

원격 서버 삭제

  • $ git remote rm [원격저장소별칭]

 

5.4 ~ 5.6 서버 전송 & 내려받기

push: 서버에 전송

  • $ git push [원격저장소별칭] [브랜치이름]
  • $ git push     # git push만 입력 시, config에 설정된 저장소 및 브랜치로 업로드(일반적으로 current)

 

clone:복제

  • clone 명령어는 원격서버접속에 필요한 추가설정을 자동으로 수행하며, 서버에 있는 커밋된 이력들을 한번에 다운로드 한다.

 

pull: 서버에서 내려받기(자동병합)

  • 로컬저장소와 커밋정보를 비교하여, 원격저장소의 갱신된 내용을 추가로 내려받는다.
  • git pull은 원격서버에 로컬 커밋보다 최신정보가 있을때 내려받으며, 커밋정보는 임시영역에 저장된 후 자동으로 병합처리 된다.

 

fetch: 가져오기

  • 원격 저장소에서 코드를 임시브랜치로 내려받은 후 병합하지 않는다.
  • $ git fetch [원격저장소URL]       # 원격저장소 URL을 입력 안해도, default config에 따른다.

 

merge 명령어로 수동 병합

  • git merge [원격저장소별칭]/[브랜치이름]

 

 

5.7 순서 중요

최신상태

  • push를 위해서는 로컬 저장소를 최신상태로 유지 해야한다.

 

 충돌방지

권장순서

  • pull -> coding -> commit -> pull -> push
  • pull과 push를 자주 하여, 충돌을 최소한으로 줄여 나가면서 작업

 

인증정보 캐시

  • 원격저장소로 접근 시, 계정정보가 필요하며, 항상 입력하지 않기 위해 캐시기능을 사용.
  • $ git config --global credential.helper cache

 

'Git' 카테고리의 다른 글

[Git 교과서] 7장 Stash  (0) 2023.06.15
[Git 교과서] 6장-2 Branch  (0) 2023.06.03
[Git 교과서] 6장-1 Branch  (0) 2023.05.27
[Git 교과서] 4장 커밋  (1) 2023.05.11
[Git 교과서] 3장 깃 개념 잡기  (0) 2023.05.02