📍 개요
◾ Git을 활용한 버전별 소스코드를 관리하는 법 및 중요성에 대한 내용을 다루었습니다.
◾ 브랜치를 사용하여 하나의 프로젝트를 가지고 협업할 때 독립적으로 작업할 수 있다는 내용을 학습하였습니다.
📁 리눅스 명령어(파일이동)
✅한 단계 상위디렉토리 이동
◾cd ..
✅ 해당 파일로 이동
◾cd 폴더명
⭐ 자주 쓰는 기본 명령어
✅ 현재 상태 확인
git status
✅전체 히스토리 보기
git log
1️⃣ Git 초기설정(config, clone, romote ··· )
1. config 설정하기
◾git config --global user.email "깃허브메일주소@example.com"
◾git config --global user.name "이름"
2. config 설정 여부 확인
◾git config --global user.email
◾git config --global user.name
3. git 저장소 생성(.git파일)
◾git intit
4. 로컬 ↔ Github 주소 연결
◾git remote add origin 깃허브저장주소
5. 로컬에 저장소 복사(다운로드)
◾git clone 깃허브저장소주소
2️⃣ Commit 하기(Push하기 전까지의 커밋 과정)
✅ 저장소에 파일 추가(commit 할 수 있는 상태로 만듦)
◾git add .
✅ 커밋과 동시에 메시지 입력
◾git commit -m "변경내용"
❗[show history]에서 커밋 완료된 히스토리 확인 가능Alt
+9
+4
3️⃣ 브랜치 설정
✅ 브랜치 목록 확인
◾git branch
✅ 브랜치 생성
◾ git branch 브랜치명
✅브랜치 제거
◾ git branch -D 브랜치명
✅ 브랜치명 수정
◾git branch -m 기존브랜치명 새브랜치명
✅ 브랜치 이동
◾git checkout 브랜치명
◾git switch 브랜치명
✅ 브랜치 생성과 동시에 이동
◾git switch -c 브랜치명
🧷 브랜치 merge와 rebase
✅ merge👉🏻 두 개의 브랜치를 하나로 병합할 때
◾ git merge 합칠브랜치명
❗ Git에서 브랜치를 merge할 때, 현재 위치한 브랜치가 합쳐질(병합될) 브랜치여야 합니다.
ex) add 브랜치를 main 브랜치로 merge 하려면 main 브랜치로 이동
✅ rebase
👉🏻 브랜치를 다른 브랜치에 이어붙일 때
◾git rebase 브랜치명
❗ Git에서 브랜치를 rebase할 때, 현재 위치한 브랜치가 다른 브랜치로 옮겨집니다.
ex) add 브랜치를 main 브랜치로 rebase 하려면 add 브랜치로 이동
4️⃣ Push와 Pull
👉🏻 Commit 후 원격저장소에 반영하기 위해 push를 해야한다.
✅ 로컬(내컴퓨터) → GitHub로 전송
git push origin 브랜치명
✅ GitHub → 로컬(내컴퓨터)로 가져오기
git pull
❓main, master, origin 브랜치 차이점
ChatGPT가 처음 나왔을 때부터 거의 매일 사용하는 데 개발 관련해서 물어봐도 잘 대답해준다! 평소 너무 궁금했던 부분인데 main=master는 로컬저장소로 주로 배포 직전 코드를 유지하는 브랜치이고, origin은 원격저장소(GitHub) 브랜치를 의미한다.
💭 그 외로 궁금했던 사항들!
📝 2일차 부트캠프 회고
1️⃣ 잘했던 점
이전에는 개발 공부를 하면서 GitHub를 사용할 때 단순히 저장과 불러오기로만 이해했었다. 부트 캠프를 통해 Git의 구조들부터 하나씩 공부해 보니 내가 쓴 코드가 로컬에서 원격 저장소까지 관리되는 로직들이 머릿속에 그려졌다. 이러한 개념들을 정확히 알고 깃허브를 다루어보니 시간 가는 줄 모르고 공부에 집중할 수 있었다. 역시 알고 개발하는 것과 모르고 개발하는 것의 차이는 분명히 있다는 것을 깨달았다.2️⃣ 부족했던 점
사실 Git에 대해 정확히 알고 있지 않았기 때문에 "브랜치"가 어떤 역할을 하는지 전혀 인지하지 못하고 있었다. 처음에는 터미널에 적혀있는 사용자 이름과 같은 무언가라고 생각하고 있었는데 main과 origin 등도 무엇인지 아예 몰랐다. 이런 상태에서 기본 브랜치들도 여러 개 있고 사용자가 직접 만들 수 있는 브랜치도 있다는 걸 알고나니 머리는 더 복잡해졌다. 추가적으로 merge와 rebase도 처음 접해본 명령어여서 수업시간에 살짝 놓칠 뻔 했다!
3️⃣ 향후 개선 방향
적어도 수업 시간에 배웠던 내용들은 그 날에 완벽히 이해하고 넘어가야겠다고 다짐했다. 챗지피티도 적극적으로 활용하면 도움이 될 것 같다.
우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그
안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합니다. ‘배
techblog.woowahan.com