[Git] 깃 & 깃허브 스터디 3일차!

soyoung·2025년 1월 28일
0

3장 깃과 브랜치

3-1 브랜치 알아보기

  • 브랜치의 필요성
    메인 코드는 main 브랜치에 그냥 둔 상태로 새로 추가하는 기능이나 코드 수정 사항은 새 브랜치로 만들어서 작업할 수 있다. 브랜치 안에서 해결되면 그때 main 브랜치에 병합한다.

  • 브랜치의 기능
    • branch(분기)
    • merge(병합)

3-2 브랜치 만들기 및 이동하기

  • 현재는 work3 커밋이 최신 커밋

1. 새 브랜치 만들기 - git branch

  • git branch (만들려는 브랜치 이름)
    • main 브랜치 위에 apple 브랜치 생성
    • 현재 작업 중인 브랜치는 main

2. 새 커밋 추가

  • 새로 만든 커밋은 현재 브랜치(main)에만 적용되고 나머지 브랜치에는 적용X

3. 브랜치 전환 - git switch

  • 브랜치마다 서로 다른 커밋을 만들 수 있다. 브랜치를 오가면서 작업하기 위해서는 전환이 가능해야 한다.
  • 브랜치를 전환하다 = 브랜치를 체크아웃하다.(checkout)

3-3 브랜치에서 커밋하기

전환한 브랜치에서 커밋하기

  • apple 브랜치로 전환한 후 커밋한 상태

브랜치와 커밋의 관계 알아보기

  • git log --oneline --branches: 브랜치마다 최신 커밋을 살펴볼 수 있다.

  • git log --oneline --branches --graph: 그래프까지 표시

    • apple 브랜치: apple work 4(최신 커밋) <- work 3(부모 커밋)
    • main 브랜치: main work 4(최신 커밋) <- work 3(부모 커밋)

브랜치 간의 차이점

  • git log (apple)..(main): apple 브랜치에는 없고 main 브랜치에만 있는 커밋을 보여준다.

3-4 브랜치 병합하기 - git merge

1. 서로 다른 파일 병합하기

  1. main 브랜치에서 작업: main에서 커밋-> o2 만들고-> main에서 커밋 추가
    • HEAD는 체크아웃한 브랜치와 해당 브랜치의 최신 커밋을 카리키는 포인터
  2. o2 브랜치에서 작업: o2 브랜치로 전환 후 커밋
    git switch o2 -> git add o2.txt -> git commit -m "o2 work 2"


  3. o2 브랜치의 내용을 main 브랜치로 병합
    • git switch main
    • git merge o2

2. 서로 다른 브랜치에서 한 문서의 다른 부분을 수정했을 때 병합하기

3. 서로 다른 브랜치에서 한 문서의 같은 부분을 수정했을 때 병합하기

  • 충돌
  • 병합
    • 왼쪽은 o2 브랜치(수신)에서 수정한 내용 | 오른쪽은 main 브랜치(현재)에서 수정한 내용
    • Accept Incoming, Accept Current 클릭에 따라 병합 적용

병합이 끝난 브랜치 삭제하기 - git branch -d

  • git branch -d (삭제할 브랜치): delete

cherry-pick으로 병합하기

  • main 브랜치와 topic 브랜치 병합 시에, 브랜치 전체가 아닌 브랜치 중 특정 버전의 변경 내용만 합칠 때 사용
  • 버전 여러 개 만들기: touch t1; git add t1; git commit -m "t1"
  • 병합: git switch main -> git cherry-pick <복사한 커밋 해시>

4장 깃허브 시작하기

4-1 원격 저장소와 깃허브

  • 원격 저장소: 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소, 백업 + 협업
  • 깃허브
    • 원격 저장소에서 깃을 사용할 수 있다.
    • 지역 저장소를 백업할 수 있다.
    • 온라인 개발 툴을 사용할 수 있다.
    • 협업에 사용한다.
    • 개발 이력을 남길 수 있다.
    • 다른 사람들의 코드를 살펴볼 수 있고, 오픈 소스에 참여할 수 있다.

4-2 깃허브 가입하기

이미 가입된 상태이므로 생략

  • 지역 저장소와 원격 저장소

    • 지역 저장소: 사용자 컴퓨터에 있는 저장소
    • 원격 저장소: 깃허브에 있는 저장소
    • push: 지역 --commit--> 원격
    • pull: 지역을 거치지 않고 원격 저장소에서 커밋을 만들 수도 있는데, 원격 -> 지역
    • 동기화: 지역 <-> 원격 같게끔
  • https://github.com/gitchlthdud/git_study.git

4-3 지역 저장소를 원격 저장소에 연결하기

4-4 지역 저장소와 원격 저장소 동기화하기

1. 원격 저장소에 커밋 처음으로 올리기

  • git push -u origin main
    • -u: 지역 저장소의 브랜치를 원격 저장소의 브랜치에 연결
    • origin main: 원격 저장소의 main 브랜치로 push

2. 원격 저장소에 파일 올리기 - git push

3. 원격 저장소에서 직접 커밋하기

  • 깃허브에서 파일 새로 만들고, 커밋을 풀할 때는 git pull
  • git pull origin main: 원격 저장소 origin을 지역 저장소의 main 브랜치로 가져오기

4-5 깃허브에 SSH 원격 접속하기

  • 4-3~4-4: HTTPS
  • SSH 원격 접속: (secure shell) 보안이 강화된 안전한 방법, private key+public key

1. SSH 키 생성하기

  • ssh-keygen -t ed25519 -C "이메일 주소"
    • id_ed25519는 프라이빗 키: 사용자 시스템에 보관 | id_ed25519.pub는 퍼블릭 키: 깃허브에 등록

2. 깃허브에 퍼블릭 키 전송하기

3. SSH 주소로 원격 저장소 연결하기

이후부터는 HTTPS 방식과 같다.

0개의 댓글