제육's 휘발성 코딩
반응형

GitHub

  • 오픈소스의 성지로 Git으로 관리되는 프로젝트의 원격 저장소 (https://github.com/)

Personal access token 만들기

GitHub 가입 후 사용하기 위해선 추가적으로 토큰을 발급 받아 사용해야 한다.

image

  • 우측 상단의 프로필 - Settings - Developer Settings - Personal access tokens - Generate new token
  • repo 및 원하는 기능에 체크, 기간 설정 뒤 Generate token (Note 는 자유롭게)
  • 생성된 토큰 안전한 곳에 보관해 둘 것 (한번 표시 후 이후 확인 불가)

토큰 PC에 저장 (MAC)

image

  • finder - 키체인 접근 - github.com - 암호보기를 누른 후 발급 받은 토큰을 붙여 넣고 저장
  • github 항목이 없는 경우는 로그인 해보지 않은 경우로 로그인 시도를 먼저하면 된다.

SourceTree 에 깃헙 계정 등록

image

  • SourceTree 접속 - 설정 - 계정 - 다음과 같이 설정 후 암호에 Personal Access Token 입력 후 저장

레포지토리 생성

image

  • Public : 모두에게 보일 수 있는 프로젝트
  • Private : 허용된 인원만 볼 수 있는 프로젝트
협업할 팀원 추가
  • 생성한 레포지토리의 Settings - Collaborators
  • Add people

원격 저장소 사용법

image

  • 레포지토리 생성 시 다음과 같은 화면을 볼 수 있다. 로컬에서 작업한 환경을 원격 저장소로 올릴 것이기 때문에 2번째 스크립트에 해당하는 명령어를 입력한다.
git remote add origin (원격 저장소 주소)
  • 로컬의 Git 저장소에 원격 저장소로의 연결 추가
    • 원격 저장소 이름에 흔히 origin 사용 (다른 것으로 수정 가능)
git branch -M main
  • 기본 브랜치명을 main으로 설정 (git config --global init.defaultBranch main로 전역 설정을 해준 경우 설정하지 않아도 된다.)
git push -u origin main
  • 로컬 저장소의 커밋 내역들을 원격으로 push(업로드)
    • -u 또는 --set-upstream : 현재 브랜치와 명시된 원격 브랜치 기본 연결 방식

추가 내용들

git remote
  • 원격 목록 보기 (자세히 보기 git remote -v)
git remote remove (origin 등 원격 이름)
  • 원격 지우기 (로컬 프로젝트와의 연결만 끊는 것이며, 레포지토리는 지워지지 않는다.)
git clone (원격 저장소 주소)
  • 프로젝트를 다음 명령어를 통해 원하는 위치에 받아올 수 있다. git clone 은 Git 관리 내역이 포함되어서 다운로드 되며, 일반 zip 다운로드는 파일들만 다운 받는다.

push 와 pull

원격 저장소로 커밋 올리기 (push)

image

Leopards의 membersEvie 추가 (커밋 메시지: Add Evie to Leopards )

git commit -am "Add Evie to Leopards"
  • 기존에 있던 파일이기 때문에 -am 명령어를 사용하여 바로 커밋메시지도 적용시킬 수 있다.
git push
  • 이미 git push -u origin main 으로 원격 브랜치가 연결되어 있기 때문에 git push 만 사용해도 푸쉬할 수 있다.

원격의 커밋 당겨오기 (pull)

image

GitHub에서 Leopards의 membersDongho 추가 (커밋 메시지 : Add Dongho to Leopards)

git pull
  • 원격의 커밋 당겨오기

image

  • 전체 과정은 다음과 같다.

pull 할 것이 있을 때 push를 하는 경우

  • 로컬에서 Leopards의 managerDooli로 수정 (커밋 메시지: Edit Leopards manager)
  • GitHub에서 Leopards의 coachLupi로 수정 (커밋 메시지: Edit Leopards coach)

image

  • push 해보기
    • 원격에 먼저 적용된 새 버전이 있으므로 적용 불가
    • pull 해서 원격의 버전을 받아온 다음 push 가능
  • push 할 것이 있을 시 pull 하는 두 가지 방법

image

  • git pull --no-rebase - merge 방식
    • 소스트리에서 확인해보기
    • reset으로 되돌린 다음 아래 방식도 해보기

image

  • git pull --rebase - rebase 방식
    • pull 상의 rebase는 다름 (협업시 사용 OK) 즉, 원격 저장소를 먼저 맞춘 후에 로컬에서 한 작업을 이어서 붙인다.
  • push하기

협업시 충돌 발생 해결하기

  • 로컬에서 Panthers에 Maruchi 추가 (커밋 메시지: Add Maruchi to Panthers)
  • 원격에서 Panthers에 Arachi 추가 (커밋 메시지: Add Arachi to Panthers)

image

  • --no-rebase의 경우

image

  • --rebase 의 경우

로컬의 내역을 강제로 push 하기

git push --force
  • 로컬의 작업을 Edit Leopards manager로 reset 한 후 명령어를 입력해보자. 원격 저장소의 커밋 개수가 줄어들고 로컬에서 반영된 히스토리로 강제 적용된 것을 볼 수 있다. (현재 시점 보다 상위인 원격 커밋 기록도 사라짐)
  • 원격에 강제 적용하는 방식으로 협업 시 합의가 된 경우 또는 개인 작업일 때 사용한다.

원격 브랜치 다루기

로컬에서 브랜치 만들고, 원격에 push 해보기

image

  • from-local 브랜치 만들기
git push -u origin from-local
  • 해당 명령어로 원격에 push
git branch --all
  • 원격의 브랜치들까지 모두 확인 (git branch -a)

원격의 브랜치를 로컬에 받아오기

  • GitHub에서 from-remote 브랜치 만들기
    • git branch -a에서 현재는 보이지 않음
git fetch
  • 원격의 변경사항을 확인하고, git branch -a 를 해보면 브랜치 목록에 생성된 것을 확인할 수 있다.
git switch -t origin/from-remote
  • 로컬에 같은 이름의 브랜치를 생성하여 연결하는 명령어

원격 브랜치 삭제

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

SourceTree 에서 진행

원격 추가

image

  • GitHub에 새 레포지토리 git-another-practice 를 만들고 다음과 같이 소스트리에서 원격저장소를 추가한다. 이어서

image

  • 푸쉬를 새로 생성한 저장소로 선택하고 확인을 누르면 새로 만든 원격 저장소에 로컬 파일들이 push된 것을 볼 수 있다.

push 와 pull

image

  • 로컬의 Pumas의 membersPororo 추가
    • 커밋 메시지: Add Pororo to Pumas
    • 소스트리로 커밋과 동시에 푸시
  • 원격의 Jaguars의 membersPinkfong 추가
    • 커밋 메시지: Add Pinkfong to Jaguars
    • 소스트리로 페치 및 풀

브랜치 다루기

image

  • 로컬에 from-local 만들어 원격에 푸시

image

  • 원격에 from-remote 만들고 로컬로 가져와 이동 (소스트리에서 페치를 누르면 origin 하위에 생성된 것을 볼 수 있다.)

본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.

반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^