[TIL / 25.03.04] 팀원분들을 위한 Git, Github 튜토리얼

2025. 3. 4. 09:43·Git, Github

1. Git

Git이란 컴퓨터 파일의 변경 사항을 추적하고 파일들의 작업을 조율하는 분산 버전 관리 시스템입니다.

변경 관리, 브랜치, 머지 등 다양한 기능을 제공하여 소스 코드를 관리하는 데에 주로 사용됩니다.

 

2. Github

Github는 Git 저장소를 호스팅하는 클라우드 서비스를 말합니다.

Pull Request, Issue, Projects 등 협업 기능을 제공하고, 이 깃허브를 통해 코드 리뷰 및 문서화 기능을 이용할 수 있습니다.

 

3. 자주 쓰는 용어

  • Repository 레포지토리: 저장소로, 프로젝트 파일과 해당 파일의 변경 이력이 저장되는 곳이다.
    • 로컬 저장소, 원격 저장소 두 종류가 있다.
  • Commit 커밋: 파일 또는 디렉토리의 변경 사항을 로컬 저장소에 기록한다. 
    • 커밋은 변경 내용, 작성자, 날짜 같은 정보와 함께 고유한 ID를 가진다.
    • ID를 통해 특정 시점의 프로젝트 상태로 돌아갈 수 있다.
    • 깃의 커밋은 새롭게 변경된 부분만 추출해서 저장해 시간에 따라 변화된 것만 영구적으로 저장한다. 
      • 이러한 저장 방식을 '스냅샷' 방식이라고 한다.
  • Branch 브랜치: 작업을 분리하기 위한 수단
    • 주로 master 또는 main 브랜치가 주 브랜치로 사용된다.
    • 기능 추가, 버그 수정 등을 위해서 새로운 브랜치로 생성하여 작업한다.
  • Merge 머지: 병합으로, 두 브랜치의 변경 사항을 하나로 합치는 과정이다.
  • Conflict 충돌: 두 브랜치를 병합할 때, 같은 파일의 같은 부분이 다르게 수정되어 Git이 병합할 수 없는 상황이다.
  • Pull 풀: 원격 저장소의 변경 사항을 로컬 저장소로 가져오고 자동으로 현재 브랜치와 병합하는 과정이다.
  • Push 푸시: 로컬 저장소의 변경 사항을 원격 저장소로 업로드하는 과정이다.
  • Fetch 패치: 원격 저장소의 최신 history를 로컬 저장소로 가져오지만, 현재 작업 중인 브랜치와는 병합하지 않는다.
  • Staging 스태이징: 커밋 전 변경 사항을 준비하는 단계이다.
  • Tag 태그: 특정 커밋을 참조하기 위한 레이블이다.
  • Checkout 체크아웃: 다른 브랜치로 전환하거나 특정 버전의 파일을 작업 디렉토리로 가져오는 과정이다.
  • Clone 클론: 원격 저장소의 복사본을 로컬 저장소에 생성한다.
  • Fork 포크: 다른 사용자의 원격 저장소를 자신의 원격 저장소로 복사하는 과정이다.
  • Pull Request 풀 리퀘스트: PR은 하나의 브랜치에서 다른 브랜치로 변경사항을 병합하기 위한 요청이다.

4. 팀원분들이 해주시면 되는 작업

일단 다들 처음이라 브랜치를 따로 따서 진행하진 않고 그냥 메인으로 계속 PR하는 방식으로 생각 중입니다.

 

깃허브 팀 레포에 제가 프로젝트를 하나 올려두면 그 레포를 각자 깃허브 레포지토리에 포크해오고 그 레포지토리를 클론해 로컬에 연동하는 방식으로 진행하겠습니다.

 

텍스트로만 우선 정리하자면

 

  1. 팀 리포지토리 포크하기:
    1. 팀 Github 리포지토리 페이지로 이동
    2. 우측 상단의 "Fork" 버튼 클릭
    3. 본인의 GitHub 계정 선택
    4. 이렇게 하시면 본인 github.com/계정명/프로젝트명 에 포크된 리포지토리가 생성됩니다.
  2. Fork 앱으로 클론하기:
    1. Fork 앱 실행
    2. "File" > "Clone" 메뉴 선택
    3. 포크한 리포지토리 URL 입력 (https://~~.git) <-- 이 부분은 제가 주소 따는 방법 알려드릴게요
    4.  

요거 보시면 됩니다!

로컬 저장 경로 지정: 어느 폴더에 프로젝트 저장할지 선택하시고 Clone 버튼 클릭하면 클론까지 완료됩니다.

 

 

3. 원격 저장소 설정: 클론 후 Fork 앱에서 Remote > Add 메뉴로 원본 팀 리포지토리를 "upstream"으로 추가

    - 이렇게 하시면 팀 리포지토리의 변경사항을 쉽게 가져올 수 있음

    - 아마 이 앞단계까지 완료됐으면 origin이라는 이름으로 본인 GitHub 상에 아까 포크했던 리포지토리에 연결되어있을겁니다.

 


 

실습해보고 사소한 컨플릭트 해결도 정말 오랜만에 겪어보는지라 좀 헤맸는데, 결국 나중에 필요한 역량이니 차라리 지금 더 맞닥뜨리면 좋겠다는 생각이다. 나중에 시간없을때 충돌이 난다고 상상하니 아찔,,

'Git, Github' 카테고리의 다른 글

[TIL / 25.03.25] 제목은 gitignore 트러블슈팅으로 하겠습니다,, 근데 이제 cherry-pick, rebase를 곁들인  (0) 2025.03.25
[TIL / 25.03.06] 컨플릭트 지옥에 갇히게 되,,, (feat. project.pbxproj)  (0) 2025.03.06
'Git, Github' 카테고리의 다른 글
  • [TIL / 25.03.25] 제목은 gitignore 트러블슈팅으로 하겠습니다,, 근데 이제 cherry-pick, rebase를 곁들인
  • [TIL / 25.03.06] 컨플릭트 지옥에 갇히게 되,,, (feat. project.pbxproj)
subkyu-ios
subkyu-ios
subkyu-ios 님의 블로그 입니다.
  • subkyu-ios
    subkyu-ios 님의 블로그
    subkyu-ios
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • iOS (38)
        • Swift (38)
      • 내일배움캠프 (7)
      • Git, Github (3)
      • Algorithm (6)
      • 회고 (1)
      • 면접 질문 정리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Wil
    프로그래머스
    회고
    사전캠프
    tabman
    KPT
    stackview
    내일배움캠프
    github
    TableView
    algorithm
    til
    트러블슈팅
    Swift
    의존성 주입
    본캠프
    알고리즘
    UIKit
    ios
    RxSwift
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
subkyu-ios
[TIL / 25.03.04] 팀원분들을 위한 Git, Github 튜토리얼
상단으로

티스토리툴바