Git 으로 하는 협업 (2)

김강민·2024년 8월 18일
0

개발

목록 보기
8/16

0. Remote와 Local 연결하기

Type 1. Github에 이미 Repository가 존재할때

  • git clone 레포주소

Type 2. Local에서만 작업중일때

1. 작업중인 local 환경을 Git 저장소로 지정합니다.

  • git init

2. Github에 Repository를 생성하고, local 저장소와 remote 저장소를 연결합니다.

  • git remote add origin 레포주소

3. local - remote 저장소가 잘 연결되었는지 확인합니다.

  • git remote -v

1. 프로젝트의 변경사항들을 타임캡슐(버전)에 담기

변경사항을 확인합니다.

  • git status

  • 추적하지 않는(untracked) 파일: Git의 관리에 들어간 적 없는 파일


Staging Area가 뭐야?

Commit을 할 때, 총 3가지 영역을 바탕으로 작동합니다.

  • Working Directory : 내가 작업하고 있는 프로젝트의 디렉토리
  • Staging Area : 커밋을 하기 위해 $ git add 명령어로 추가한 파일들이 모여있는 공간
  • Repository : 커밋들이 모여있는 저장소

열심히 코드를 작성하다가 커밋을 해야하는 순간이 오면 git add . 를 통해 커밋할 파일들을 추가합니다.

이 파일은 바로 Repository에 올라가지 않고, Staging Area에 올라가게 됩니다.

Staging Area에 추가한 파일들을 Commit을 한다면 최종적으로 저장소(Repository)로  저장되게 됩니다.

git 상태 정리

  1. Add the file
    untraked 상태의 파일을 처음으로 $git add 해주면 Staged 상태가 된다.

  2. Edit the file
    최신 커밋과 비교했을 때 차이가 없는 unmodified 상태의 파일의 내용을 수정하면 modified 상태가 된다.

  3. remove the file
    파일을 삭제하면 당연히 Git 에서 더이상 인식하지 않는다.

  4. Stage the file
    modified 상태의 파일을 $git add 해주면 staged 상태가 된다.

  5. Commit
    commit을 하면 staging area에 있던 파일들이 커밋에 반영되고, 이제 모든 파일들은 최신 커밋과 차이가 없게 되니까 unmodified 상태가 된다.

파일 add 하기

  1. 파일 하나만 담기
  • git add 파일이름
  • git status 로 확인
  1. 모든 파일 담기
  • git add .
  • git status 로 확인

2. 타임캡슐 묻기

  1. 아래 명령어로 commit
    커밋 메시지까지 함께 작성하기
  • git commit -m "FIRST COMMIT"
  1. 아래 명령어로 log 확인
  • git log
  • 종료는 :wq

3. local에서 remote로 밀어넣기

아래 명령어로 push
git push
github에 잘 올라갔는지 확인하기

4. 과거로 돌아가 보기

git log로 커밋 코드 보기

  • git reset 커밋코드 --hard 로 과거로 돌아가기
  • 이후 git push origin +브랜치이름 으로 push하기

4. 여러가지 브랜치를 파고 merge하기

Branch: 분기된 가지 (다른 차원)

  1. 프로젝트를 하나 이상의 모습으로 관리해야 할 때
  • 예) 실배포용, 테스트서버용, 새로운 시도용
  1. 여러 작업들이 각각 독립되어 진행될 때
  • 예) 신기능 1, 신기능 2, 코드개선, 긴급수정...
  • 각각의 차원에서 작업한 뒤 확정된 것을 메인 차원에 통합

이 모든 것을 하나의 프로젝트 폴더에서 진행할 수 있도록 합니다!


1. 브랜치 생성 / 이동 / 삭제하기

  1. KDW 이름의 브랜치 생성
    git branch KDW

  2. 브랜치 목록 확인
    git branch

  3. KDW 브랜치로 이동
    git switch KDW

  • checkout 명령어가 Git 2.23 버전부터 switch, restore 로 분리되었습니다!
    (그래서 저는 switch를 주로 사용합니다!)

🗑 브랜치 삭제하기

git branch -d (삭제할 브랜치명)

  • to-delete 란 브랜치 만들고 삭제해보기

✏️ 브랜치 이름 바꾸기

git branch -m (기존 브랜치명) (새 브랜치명)

2. 각각의 브랜치에서 서로 다른 작업해보기

A. main 브랜치

test.txt 에서 내용 입력

커밋 후 푸쉬하기

  • git add .
  • git commit -m “test”
  • git push

⭐️ KDW 브랜치로 이동하여 해당 코드들 확인

B. KDW 브랜치

KDW.txt 만들고 내용 입력후 커밋 후 푸쉬

git add .
git commit -m “test”
git push

3. 머지 해보기

1. 그냥 main에 직접 merge하기

  1. git switch main 으로 main브랜치로 이동하기
  2. git merge KDW 로 main 브랜치에 KDW브랜치를 머지하기

2. PR(pull-request)날리고 merge하기

  1. KDWbranch 에서 push하면 github repo사이트로 돌아가면 상단에 pr날리라고 떠있습니다!

    여기서 view all branches 로 들어가면

    이런 창이 뜹니다!
    이후 PR을 요청하고 팀원들이 코드에 대한 리뷰도 달아줄 수 있습니다!

이후 merge 버튼을 눌러서 머지가 가능합니다.

3. 결과 살펴보기

git log: 위치한 브랜치에서의 내역만 볼 수 있음

여러 브랜치의 내역 편리하게 보기

git log --all --decorate --oneline --graph

충돌이 발생했다면?

  1. 메인을 최신버전으로 바꾸기
  • git switch main
  • git pull
  1. 브랜치 위치 바꾸고 메인 머지해오기
  • git switch (브랜치 이름)
  • git merge main
  1. 충돌난거 고치고 push
profile
인생은 프레임워크처럼, 공부는 라이브러리처럼

0개의 댓글

관련 채용 정보