Notice
Recent Posts
Recent Comments
Link
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

Goru

Github 실습1 . git 강의 내용 정리 본문

TIL

Github 실습1 . git 강의 내용 정리

gorusair 2025. 8. 14. 10:01

git, github

git : 형상관리를 도와주는 도구로, 프로젝트 변경 사항을 저장하고, 히스토리 관리를 쉽게할 수 있게 도와줍니다.

 

git의 주요 기능

  • 버전관리 : 소스 코드의 변경 이력을 추적하고 관리, 이전 버전으로 쉽게 되돌아갈 수있다.
  • 협업지원: 여러 개발자가 동시에 작업을 할 수 있으며 합칠 수 있다, 코드 충돌을 감지하고 해결할 수 있게 해준다.
  • 브랜치 관리: 독립적인 브랜치를 만들어서 관리 할수 있음, 브랜치를 병합하여 하나의 브랜치로 합칠 수 있다.
  • 변경 이력 추적: 누가, 언제 어떤 내용을 변경 했는 지 확인할 수 있습니다.

* git 설치 후 버전확인 및 아이디 등록

// git 설치 버전확인

git --version

// 아이디 등록

git config --global user.name "Name"
git config --global user.email "email adress"

// 아이디 등록 확인
git config --list

 

github :git을 기반으로 한 원격 저장소 호스팅 서비스, 인터넷에 git 저장소를 올려 협업과 백업을 쉽게  할수 있도록 지원

 

로컬저장소 & 원격저장소

Repository(저장소)

  • git을 사용할 수 있는 폴더
  • git이 관리해주는 폴더

Local Repository : 내 컴퓨터에 git 폴더 (Repository) / Local 저장소에 코드를 작성하고, 변경사항을 Commit
                                 하여 기록합니다.

 

Remote Repository : 인터넷에 올라가 있는 git 폴더(원격), Local에서 작업한 변경내용(Commit내용) 을 Remote
                                      Repository 저장소에 변경사항을 업데이트 (협업, 공유) ->Push,Pull Request를 사용해 
                                     업데이트

 

※ 로컬저장소와 원격저장소가 자동으로 동기화 되지 않기 때문에 지속적인 동기화 작업이 필요합니다.

 

기본 사용법 

⊙ 시작하기 

     git init

  • 새로운 git repository를 생성
  • .git directory가 생성되고 , 해당 폴더에서 모든 변경 사항이 Git으로 관리되기 시작함
  • 원격저장소가 없고 원격저장소에 코드를 올리려면 동기화 작업이 필요

    git clone

  •  Remote Repository를 복제하여 로컬 저장소에 가져옴
  •  이미 존재하는 원격 저장소에서 프로젝트를 내려받아 로컬에서 작업을 시작할 떄 사용함
  •  push, pull등을 사용하여 원격저장소와 로컬저장소의 싱크를 맞춰야함

※ 변경사항 업데이트

  • git add : 변경사항을 스테이지로 올리는 명령어
  • git commit :스테이징 영역에 올리면 변경사항을 저장하는 명령어
  • git fetch 원격 저장소의 변경 사항을 로컬로 가져오지만, 병합하지 않음
  • git pull : 다른 브랜치의 변경사항을 가져옴
  • git push : 변경사항을 다른 저장소로 업로드
  • git ignore : .DS_Store  .xcuserstate 

브랜치(branch)

  • 독립적인 작업 흐름 관리
  • 처음 git repository를 만들면 main 또는 master 브랜치가 기본생성
  • git branch : 브랜치 목록확인
  • git branch 새로운 브랜치 이름 :브랜치 생성
  • git switch 브랜치이름 : 작업중인 브랜치 변경

브랜치 합치기

Pull Request

  •  브랜치의 작업물은 다른 브랜치에 병합하는데 확인을 받고 하기
  • 같이 관리하는 main 브랜치가 있는데 다른 사람의 브랜치를 임의로 병합한다면 main 브랜치
    오류 발생 확률이 높아짐
  • 이를 막고자 pull request 하고 확인 후 합치는 기능

conflict

  •  동일한 파일의 동일한 위치에서 개발자들이 코드를 각자 변경했다면, 
     git은 어떤 개발자의 코드를 사용해야 될지 결정을 못함 --> conflict 발생

브랜치를 병합하는 방법들  : Rebase / Merge / squash

현재 브랜치 상황

Rebase 

  • 다른 브랜치의 최근 커밋내용 뒤에 현재 브랜치의 커밋을 재정렬 하는 방식
  • 깔끔한 커밋 히스토리 유지
  • 불필요한 Merge Commit을 생성하지 않음
  • 단점은 충돌 발생 시 해결이 복잡해지며, 협업 브랜치에서 사용 주의
  • 작업했던 커밋을 복사 해서 붙이는 

Rebase

 

Merge

  • 기존 Commit 히스토리를 유지하면서 새로운 Merge Commit을 만들어서 병합
  • 기존 브랜치의 히스토리가 유지됨
  • 단점은 병합 후에도 원래 브랜치의 기록이 남아서 이력이 복잡해질 가능성이 있음
  • 장점은 협업 시 누가 어떤 작업을 했는지 명확하게 남길 수 있음

Merge

 

Squash

  • 여러개의 커밋을 하나로 합치는 방식
  • 작은 변경사항이 많은 경우 커밋을 정리할 수 있음
  • 깔끔한 커밋 히스토리 유지 가능
  • 협업 시 자잘한 커밋들을 하나로 합쳐서 유지
  • 하나의 큰 feature를 sub feature로 나누어서 작업하고 합치는데 유용함.

Squash