[데브코스][1-4] 깃허브로 원격 코드 관리, 깃 브랜치 전략 기반의 협업 워크 플로우

·2024년 4월 11일
0

데브코스

목록 보기
3/20

1. 깃허브 가입

깃허브 내에서 회원가입 진행

GitHub에서 계정 생성하기 - GitHub Docs

2. 깃허브 레파지토리 create

레파지토리란 + 필요성?

우리는 프로젝트 단위로 백업하게 될 것

폴더를 레파지토리라고 생각하면 됨

레파지토리가 있어야, 로컬 컴퓨터의 프로젝트 백업이 가능

create repository 버튼으로 생성하기

public은 모두에게 공개

private은 나만보기

readme생성 여부 선택 가능

리드미 없이 하는 게 더 편해서 선택 안하고 추후 추가하는 걸 추천

set up github copilot

추후 사용하게 될 것

생성되면 다음과 같은 화면이 나타남

3. 깃허브에 내 로컬 프로젝트 업로드하기

로컬에서 연결을 시켜주는 것

git remote add origin url (연결)

깃허브와 로컬을 연결해주는 명령어

git remote add 원격저장소(레파지토리)별칭 원격저장소url

  • fetch 서버의 코드 가져올 때 쓰는 명령어
  • push - 로컬 코드를 깃허브에 업로드(백업)할 때 쓰는 명령어

git remove -v (확인)

git remove -v를 통해서 연동 여부를 확인 가능

git push origin main (업로드)

git push 원격저장소(레파지토리)별칭 원격저장소레포지토리명(main)

git push origin master를 하면 에러가 뜨지만

git push origin main을 하면 정상적으로 업로드가 되는 모습 확인 가능

결과 1

업로드된 걸 확인할 수 있음

결과2

화살표가 main, origin/main 둘 다 가르키게 됨

4. 토큰 생성

아이디: 깃허브 유저 아이디

패스워드: 토큰 (깃허브에서 발급해주는 토큰)

토큰 확인

깃허브 세팅 → developer setting → personal access tokens → tokens → 상단의 generate tokens

용도는 마음대로

expiration은 최대한 no expiration은 말고

5. CLI clone

이전에 했던 작업(push)는 깃허브 레포에 올리는 거였다면,

이번엔 깃허브에 올라온 폴더를 로컬에 받아오는 작업 진행

받아오기 vs 올리기

소스코드 올리기 (로컬 → 깃허브)

  1. 연결 → git remote add origin url
  2. 소스코드 올리기 → git push origin main

소스코드 받아오기 (로컬 ← 깃허브)

  1. 연결 → git clone
  2. 소스코드 받아오기 → git clone

즉, git clone 명령어로 연결 + 소스코드 받아오기 한방에 가능

git clone

git clone 원격저장소url

연결된 것 확인 가능

소스코드 받아온 것 확인 가능

4. pull 하다 안되어서 git remote remove origin

받아올 소스코드가 변경되었는데, 현재 깃허브로부터 로컬에 받아온 소스코드는 이전 버전임

이럴 때, pull을 사용해서 수정된 소스코드 받아올 수 있음

git pull 명령어를 사용하니, 깃이 아니라는 오류 메시지가 발생하게 됨

이런 경우는 어떻게 해결할까?

cd devcourse

  1. 안쪽 폴더로 이동할 것 (gittestclone안에 pull해온 firstrepository(내건, devcourse)가 있음
  2. git remote remove origin으로 연결 끊기
  3. 다시 gittestclone 폴더에서 init
  4. init 후 git clone으로 연결해주기
  5. 그런데, git remote -v로 확인해보면, 연결된 레포가 없음…
  6. 왜 그 자체에는 연동 불가하고 하위 폴더로 만들어도 연동되는 걸까…?

5. GUI로 clone하면 사실 맞게 했다는 것을 알게 됨…

왜 GUI로?

폴더 생성 후, 오픈한 상태에서 cli로 클론하게 되면, 상위 폴더와 하위폴더(클론된 폴더) 둘 다 한번에 보이게 됨. 포커싱이 클론된 폴더에만 있는 게 아님.

gui로 하게 되면, 클론한 폴더의 상위폴더는 vscode에 바로 나오는게 아니라서(물론 cli처럼, 폴더 안에 하위폴더로 클론된 거 맞음) 하위폴더(클론 폴더)에 포커싱이 되는 이점이 존재

GUI로 클론해보기

웰컴란에 clone git repository 존재(혹은 왼쪽 바의 소스 컨트롤 란에서)

버튼 누르면 화면 상당에 Clone from github 나옴

클론하기 원하는 레파지토리 url 입력하기

입력하고 나면, 로컬에서 원하는 폴더 선택하게 됨

-> CLI로 한 결과 (상위폴더까지 보임)

-> GUI로 한 결과 (하위폴더(=클론된 폴더)만 보임)

이 두 방법 알아야 하는 이유?

협업 시, 내 방법뿐만 아니라 팀원의 방법도 이해해야 하기 때문

6. 깃허브에 올린 프로젝트 내려받기

gittest, gittestclone 두 폴더 생성해서 깃허브 실습해보기

전자는 코드 업로드, 수정하는 폴더

후자는 깃헙에 올라간 폴더 다운받아보는 폴더

전자에서는 test.txt 파일 생성 후

git status #상태 체크
git add test.txt
git commit -m "first commit"
git remote -v #레포랑 연결 체크
git remote add origin 레포url
git push origin main

다음의 순서로 test.txt 파일을 first commit이라는 커밋 메시지와 함께 레포에 업로드

후자에서는 레포에 올라간 gittest폴더를 내려받기 위해서

git status
git clone 레포url

확인하면, 클론된 걸 볼 수 있음

로컬 폴더 안에서 깃헙 폴더가 클론되어 내려받으면, 클론된 폴더의 상위폴더는 git init도 안되어있기에, 상위폴더에서 깃작업하면 오류 발생

따라서, 추가적인 깃작업은 클론한 하위폴더로 이동 후 진행

7. 브랜치란?

branch == 가지

프로젝트가 한 개가 있었다면, 복사해서 사용하게 됨

용도에 따라서 프로젝트 따로따로 복사해 분리한 게 브랜치

브랜치 생성 및 이동 명령어

  • git status로 현재 깃 상태 확인
git status
  • git branch로 브랜치 목록을 확인 가능
git branch
(*)가 붙은 브랜치가 내가 현재 있는 브랜치
  • 브랜치 생성
git branch 브랜치명
  • 브랜치 이동
git checkout 브랜치명
지금 현재 브랜치에서 체크아웃해서 나가서 브랜치명으로 간다의 의미임

0개의 댓글