깃 서버

서버 저장소

서버 저장소는 다른 말로 원격 저장소라고 함.

협업 저장소

분산형 모델

연속된 작업

사무실에서 작업하고 서버에 올린 코드를 자신의 컴퓨터에 동기화

새 멤버

깃의 원격 저장소 주소만 알려주면 모두 해결

깃허브 서버 준비

깃허브

깃허브에 접속 및 사용자 로그인

저장소 생성

원격저장소 생성, 새 리파지토리, 공개용 저장소로 생성

깃허브 연동 및 원격 등록

로컬 저장소

git init 로 로컬 저장소 생성

프로토콜

  • Local
    • 로컬 저장소를 서버로 이용

      git remote add 원격저장소별칭 폴더경로
      
  • HTTP
    • 로그인을 통해 처리 하거나 익명으로 처리 가능
  • SSH
    • 인증서를 만들어 사용, 공개키는 서버에 등록하며 개인키는 로컬에 저장함
  • Git
    • 깃의 데몬 서비스를 위한 전용 프로토콜

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

원격저장소 관리에 remote 명령어를 사용한다.

원격저장소 목록을 확인 및 등록,취소 등의 작업을 한다.

# 원격 저장소의 이름을 출력
git remote

# 이름과 URL 까지 상세 정보 확인
git remote -v

주소와 별칭

원격 저장소를 등록하려면 프로토콜 + 도메인 주소가 필요함.

로컬에 서버 저장소를 생성할 때는 폴더 경로를 사용할 수 있음.

  • 별칭 : 긴 서버 URL을 문자열 별칭으로 만들어 사용
  • origin : 대표적으로 사용되는 별칭, 기본적으로 원격 저장소와 연결 시 사용.

원격 저장소에 연결

원격 저장소와의 연결에는 add 명령어를 사용한다.

git remote add 원격저장소별칭 원격저장소URL

소스트리에서의 원격 브랜치

원격과 로컬 저장소를 분리해서 표시한다.

별칭 이름 변경과 정보

# 원격 저장소 이름 변경
git remote rename 변경전 변경후

# 원격 저장소 간략 정보 출력
git remote show 원격저장소별칭

원격 서버 삭제

# 원격 저장소 삭제
git remote rm 원격저장소 별칭

서버 전송

push : 서버에 전송

원격 저장소로 내용을 전달할 때 사용.

# 별칭 이름을 가지는 서버의 master브랜치에 현재 브랜치를 업로드.
git push 원격저장소별칭 브랜치이름

자동으로 내려받기

clone : 복제

원격 저장소를 로컬에 복제할 때 사용. init 명령어 외 원격 서버 결속에 필요한 추가 설정을 자동으로 수행

pull : 서버에서 내려받기

원격 저장소의 갱신된 내용을 추가로 내려받을 때 사용.

수동으로 내려받기

자동병합

풀은 원격 저장소에 현재 커밋보다 더 최신 정보가 있을 때 내려받으며, 받은 커밋 정보는 임시 영역에 저장.

fetch : 가져오기

원격 저장소에서 코드를 수동으로 내려받는 작업. 내려받은 후, 현재 브랜치와 자동 병합하지 않습니다.

git fetch 원격저장소URL

fetch 명령어를 실행하면 커밋이 추가된 것을 확인할 수 없다. 원격저장소의 커밋들만 가지고 왔을 뿐 로컬 저장소에서 어떤 작업도 하지 않는다.

merge 명령어로 수동 병합

내려받은 커밋을 로컬 저장소에 적용할 때 사용.

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

fetch 명령어로 내려받은 커밋을 로컬 저장소에 병합.

병합 하는 과정에서 병합 충돌이 발생할 수 있음.

순서

최신상태

원격 저장소에 푸시하려면 로컬 저장소를 최신 상태로 유지해야 함.

커밋이 순차적이지 않은 경우 깃은 푸시 동작을 거부한다.

충돌 방지

깃이 최신 상태만 푸시를 허용하는 것은 충돌 방지를 위함이다.

풀 작업은 내려받은 커밋들을 현재 브랜치로 자동 병합한다.

이 때, 커밋 내용이 순차적이지 않으면 병합 충돌이 발생한다.

  • 인증 정보 캐시
    • 인증 정보를 캐싱하여 남겨놓아 전역으로 설정하여 보관.

      git config --global credential.helper cache
      
  • 원격 저장소 원리
    • 깃을 원격 저장소에 연결하면 ./git/config 파일 안에 리모트 연결에 대한 설정 정보가 자동 추가 됨.

      [remote "origin"]
      		url = https://github.com/asd/asd.git
      		fetch = +refs/heads/*:refs/remotes/origin/*
      

© 2024. Chiptune93 All rights reserved.