본격적인 프로젝트가 시작되면서
채널도 많고 신경쓸 것도 많고 어렵고 민폐끼치기 싫어서 정신 똑바로! 차리는 중
깃을 협업에서 처음으로 써보는데 ..
사용하시는 말들이 생소해서 공부해보고 넘어가기
by 깃 초보...
기본 개념 설명
깃(Git)은?
여러 사람이 같은 코드를 함께 작업할 수 있게 도와주는 시스템
Pull / Push는 뭐야?
1. 📥 git pull
"다른 사람들이 서버에 올려놓은 최신 코드들을 내 컴퓨터로 가져오기"
예시:
너가 3일 전에 복사해온 문서를 계속 수정하고 있었는데, 그 사이에 팀원이 새로 내용을 많이 추가했어.
그런데 넌 그걸 모르고 있어.
pull을 하면 "최신 버전 가져오기!" 해서 네 문서를 업데이트해줘.
2. 📤 git push
"내가 수정한 코드들을 깃 서버(=GitHub)에 올리기"
예시:
너가 내 컴퓨터에서 열심히 코드 짰어.
이제 팀원들이 네 코드를 볼 수 있게 "공식 저장소"에 업로드해야 해.
그때 쓰는 게 push.
3. 브랜치(branch)
브랜치는 "코드의 평행세계"라고 생각하면 쉽다
- main은 진짜 서비스에 올라갈 준비가 된 코드들이 모여있는 곳.
- develop은 여러 개발자들이 개발 중인 기능을 합쳐서 테스트해보는 곳.
그래서 보통은 이렇게:
내 컴퓨터에 있는 develop 브랜치에서 작업 →
작업 끝나면 push 해서 GitHub에 올리기 →
나중에 팀이랑 merge 해서 main 브랜치에 합치기
4. PR(Pull Request)란?
"내가 만든 코드를 팀에 보여주고, 합쳐도 될지 물어보는 요청"
5. PR의 역할은?
“내가 develop 브랜치에서 만든 기능, main 브랜치에 넣어도 될까요?” 라고 팀에 요청하는 것!
전체 흐름을 차례차례 순서 설명
(🌱=내가 해야 하는 행동, 💡=개념 설명)
🚀 팀 프로젝트에서 Git 처음부터 끝까지 순서 정리
1단계. GitHub에서 프로젝트 받아오기
🌱 git clone 명령어로 팀 프로젝트 복제하기
git clone 저장소주소
- → 내 컴퓨터에 폴더가 하나 생겨! (그 안에 전체 프로젝트 있음)
💡 clone은 GitHub에 있는 코드 전체를 처음 내 컴퓨터에 복사하는 과정
2단계. 내 작업용 브랜치 만들기 (보통 develop)
🌱 먼저 develop 브랜치 만들고 이동:
git checkout -b develop
💡 checkout -b는 브랜치 만들고 그걸로 바로 이동하는 명령어
* 아래는 브랜치 만드는 명령어
git branch 브랜치명
3단계. 코드 수정 or 기능 개발
🌱 내가 할 작업 (코딩) 진행!
4단계. 변경사항 저장하기
(1) 스테이징 하기
git add .
💡 "내가 수정한 파일들 전부 깃에 올릴 준비 완료!"라는 뜻
깃은 CCTV가 아님. Commit전 최종 작성된 코드만 저장된다! 실시간으로 내가 친 모든 코드가 반영되는 것이 아님
git 공부하기 - 깃에 대해 오해 했던 것. CCTV가 아니다 !
나는 깃이 내가 치는 코드 모두 실시간 다 CCTV처럼 다 저장하는 줄 알았는데.. Git은 **"git add 하는 순간의 코드"**만 저장git commit은 git add된 코드의 스냅샷만 저장즉, 그 순간의 "확정된 코드"만 기
creamymood.tistory.com
(2) 커밋 남기기
git commit -m "설명 메시지 작성"
💡 "무슨 작업했는지 기록 남기기"야. (이력이 쌓여!)
* 줄 바꿈이 일어나기 전까지 제목(title)이다. 그 뒤부터가 contents임
* 커밋 메세지 템플릿 설정 하기
git 공부하기 - 템플릿 설정 및 사용
프로젝트 하면서 깃 사용할 일 정말 많고효과적이고 깔끔한 커밋을 위하여 템플릿을 설정해보고 사용해는 연습을 ! ✨더불어 깔끔한 커밋 작성하는 요령까지 공부해보자깃 커밋 템플릿 설정하
creamymood.tistory.com
5단계. GitHub에 올리기 (Push)
🌱 push 명령어로 서버에 올리기:
git push origin develop
💡 이제 나의 코드를 팀원들도 볼 수 있게 된다
6단계. PR(Pull Request) 만들기
🌱 GitHub 웹사이트에 가서
"develop → main으로 PR 만들기"
💡 "나 이거 develop 브랜치에서 완성했는데, main 브랜치에 넣어도 될까요?" 요청하는 것
7단계. 팀원이 코드 리뷰 → Merge
- 팀원이 OK 해주면 → main 브랜치에 합쳐진다! (merge)
8단계. 다른 사람이 작업한 최신 코드 받아오기 (pull)
🌱 pull 해서 최신 상태로 유지
git pull origin develop
💡 협업 중엔 무조건 작업 전에 pull 해야 함!
(안 그러면 충돌 날 수 있음)
♥︎ pull과 clone의 차이
두 명령어 모두 원격 저장소(Remote Repository)와 관련되어 있지만, 기능과 목적이 전혀 다릅니다.
git clone vs git pull 차이
clone | pull | |
용도 | 원격 저장소 전체를 처음부터 복제 | 최신 변경사항을 가져와 병합 |
언제 사용? | 프로젝트를 처음 받아올 때 | 기존에 작업 중인 로컬 저장소를 최신 상태로 유지할 때 |
작업 대상 | 로컬에 새로운 Git 저장소 생성 | 이미 존재하는 로컬 저장소 |
작동 방식 | 원격 저장소의 전체 이력과 파일을 새 디렉터리에 복제 | 원격 저장소의 변경 내용을 현재 브랜치에 병합 |
명령어 예시 | git clone https://github.com/user/repo.git | git pull origin main |
상황별 예시
git clone 사용 예
git clone https://github.com/openai/chatgpt.git
- GitHub에 있는 chatgpt 프로젝트를 내 컴퓨터에 처음으로 복제하는 상황.
- 이 명령은 chatgpt라는 폴더를 새로 만들고, 전체 프로젝트 이력을 함께 가져옵니다.
팁: clone은 보통 딱 한 번만 실행합니다. 그 이후엔 pull을 사용하세요.
git pull 사용 예
git pull origin main
- 로컬에서 작업 중인데, 팀원이 원격 main 브랜치에 새로운 커밋을 올렸다면 이 명령으로 변경사항을 가져와 병합합니다.
팁: pull은 사실 fetch + merge의 축약 명령입니다. 충돌이 생길 수 있으니 자주 사용하면서 병합 충돌 처리법도 익혀두세요.
부가 설명: git fetch와의 관계
- git fetch는 변경사항을 가져오기만 하고, 병합은 하지 않습니다.
- git pull은 fetch + merge를 한꺼번에 처리합니다.
git fetch origin
git merge origin/main
# 이 두 줄이 사실상 git pull origin main과 같음
팁: 충돌을 세밀하게 제어하고 싶다면 pull 대신 fetch와 merge를 분리해서 사용하는 것이 좋습니다.
♥︎
전체 요약 흐름
- git clone → 내 컴퓨터에 복사
- git checkout -b develop → 작업용 브랜치 만들기
- 작업 진행 (코딩)
- git add . → 변경한 파일들 저장 준비
- git commit -m "내용" → 기록 남기기
- git push origin develop → GitHub에 코드 올리기
- GitHub에서 PR → main에 합쳐도 되는지 요청
- 팀원 리뷰 OK → merge
- git pull origin develop → 최신 코드 받아오기
♥︎
git push → pull request
1. 깃 푸쉬 (push)
- 내가 내 컴퓨터에서 작업한 내용을 원격 저장소(예: GitHub)로 올리는 것
- 예를 들어, 새로운 기능을 만들고 로컬에서 커밋(commit) 한 후에 git push 명령어로 서버에 내 변경사항을 보낸 거야
2. 풀 리퀘스트 (Pull Request, PR)
- 원격 저장소에서 내가 작업한 브랜치(branch)를 다른 브랜치(보통 메인 브랜치)에 합쳐 달라고 요청하는 것
- 팀원들이 내 코드를 검토(review)하고 문제 없으면 메인 브랜치에 합쳐 줌
- 협업할 때, 내가 작업한 내용을 공유하고 팀에서 코드 품질을 관리하는 중요한 절차야
쉽게 말하면
- 푸쉬 = 내 작업 결과를 서버에 올리는 행동
- 풀 리퀘스트 = 올린 작업 결과를 검토받고 메인 프로젝트에 합치자고 요청하는 행동
궁금하면 더 쉽게 설명해 줄게!
♥︎
git pull과 git pull origin 차이
🔧 먼저, 용어부터 아주 쉽게!
origin | 서버(회사 저장소). 클론할 때 자동으로 생겨 |
git pull | 서버에서 최신 파일 가져오기 (내 로컬 업데이트하기) |
브랜치 | 여러 명이 따로 작업할 수 있게 만든 작업 공간 이름 (예: main, develop, feature/login) |
내 컴퓨터 vs 서버 구조
💻 내 컴퓨터 (로컬)
├── main 브랜치 ← 내가 작업 중인 곳
🌐 서버(origin)
├── main 브랜치 ← 다른 사람들과 공유되는 코드
명령어 차이
1. git pull
“내가 지금 작업 중인 브랜치와 연결된 서버에서 가져와줘”
- 예를 들어 내가 main 브랜치에서 작업 중이고,
- 이 브랜치는 이미 origin/main과 연결돼 있다면,
git pull
👉 알아서 origin 서버의 main 브랜치에서 가져와 줘
즉, 자동으로 대상이 정해져 있어.
2. git pull origin
“origin 서버에서 지금 브랜치 이름이랑 똑같은 걸 가져와줘”
- 예를 들어 내가 지금 feature/login 브랜치에 있다면,
git pull origin
👉 origin/feature/login에서 가져옴 (자동 연결은 안 봄, 그냥 이름 기준)
핵심 차이 정리 (초보자용)
git pull | “지금 작업 중인 브랜치에 맞춰 자동으로 가져와줘” | 브랜치가 잘 연결돼 있을 때 |
git pull origin | “origin 서버에서 지금 브랜치 이름으로 가져와줘” | 뭔가 연결이 안 돼 있을 때 직접 지정 |
결론
대부분의 경우 git pull이면 충분해!
근데 내가 정확하게 "어디에서 가져올지" 지정하고 싶으면 git pull origin 쓰면 돼.
'Studying > Git, GitHub' 카테고리의 다른 글
git 공부하기 - merge 후 pull 해온 뒤 /임시 저장 하는 stash 명령어 (0) | 2025.06.24 |
---|---|
git 공부하기 - rebase 개념 깃 초보.. (1) | 2025.06.22 |
git 공부하기 - 템플릿 설정 및 사용 (0) | 2025.06.22 |
git 공부하기 - 깃에 대해 오해 했던 것. CCTV가 아니다 ! (0) | 2025.06.22 |
git 공부하기 - (0) | 2025.04.01 |