본문 바로가기
git & github

git github 처음부터 다시 배우기 - 2. git hub

by spare8433 2023. 2. 6.

📗 깃 허브 기본세팅 관련


Personal access token 설정


토큰 발급

  • 우측 상단의 프로필 - Settings
  • Developer Settings
  • Personal access tokens - Generate new token
  • repo 및 원하는 기능에 체크, 기간 설정 뒤 Generate token
  • 토큰 안전한 곳에 보관해 둘 것 (처음 노출된 이후 다시 볼 수 없음)


컴퓨터에 저장하기

  • 윈도우 가이드
    • Windows 자격 증명 관리자
    • Windows 자격 증명 선택
    • git:https://github.com 자격 정보 생성
    • 사용자명과 토큰 붙여넣기

  • 맥 가이드 (링크)
    • Keychain Access 앱 실행
    • github인터넷 암호 항목 선택
    • 사용자명(계정 칸)과 토큰(암호 보기 누른 뒤 오른쪽 칸) 붙여넣기
    • 키체인 관련 팝업이 먼저 뜨면 맥 로그인 암호를 입력해주세요.


📕 리포지토리 관련


※ HTTPS 프로토콜 사용한 예시



1. 기본 명령어

# 로컬의 Git 저장소에 원격 저장소로의 연결 추가
# 원격 저장소 이름에 흔히  `origin`  사용. 다른 것으로 수정 가능
git remote add origin (원격 저장소 주소)

# gitHub 권장 - 기본 브랜치명을 `main`으로
git branch -M main

# 로컬 저장소의 커밋 내역들 원격으로  `push`(업로드)  
# `-u`  또는  `--set-upstream`  : 현재 브랜치와 명시된 원격 브랜치 기본 연결
   - 이후에는 `push` 만 입력해서 사용 가능
git push -u origin main

# 원격 내용
git remote

# 자세히 보기
git remote -v

# 원격 지우기 (로컬 프로젝트와의 연결만 없애는 것. GitHub의 레포지토리는 지워지지 않음)
git remote remove (origin 등 원격 이름)


2. GitHub에서 프로젝트 다운받기

  • Download ZIP: 파일들만 다운받음, Git 관리내역 제외
  • Git clone: Git 관리내역 포함 다운로드


📘 원격으로 파일 주고받기


1. push 할 것이 있을 시 pull 하는 방법


merge 방식

  • 한 커밋으로 병합
    git pull --no-rebase


rebase 방식

  • 추가된 커밋 상황을 받고 그다음에 푸쉬할 커밋내용이 등록됨
  • pull 상의 rebase는 다름 (협업시 사용 OK)
    git pull --rebase


2. 협업상 충돌 발생 해결하기


merge 방식

  • 충돌부분 변경 후 한 커밋으로 병합
    git pull --no-rebase


rebase 방식

git pull --rebase

# 충돌부분 변경 후 끝날 때까지 반복 
git add .
git rebase --continue 
  • 수정상황에 따라 커밋 내역이 달라짐

※ 기존의 푸쉬된 내용으로 충돌부분을 완전히 덮으면 기존의 로컬부분의 내용이 굳이 추가될 필요가 없어지므로 로컬 부분의 커밋 내역이 남지 않을 수 있음(로컬과 원격 모두)


강제 푸쉬

로컬의 내역 충돌 전으로 reset 후 원격에 강제 적용

git push --force


3. 원격 브랜치 등록 과정


브랜치 등록

# 로컬 브랜치 등록 
git branch from-local

# 원격 브랜치 등록 git push -u (원격 이름) (원격 브랜치 이름)
git push -u origin from-local

# 원격 브랜치 포함한 브랜치 목록 살펴보기 
git branch --all


원격 브랜치 받아오기

# 원격의 변경사항 확인
git fetch # (git fetch 의 자세한 내용은 이후에)


# 3. 로컬에 같은 이름의 브랜치를 생성하여 연결하고 switch
git switch -t origin/from-remote


원격 브랜치 삭제

git push (원격 이름) --delete (원격의 브랜치명)