일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발자부트캠프
- K디지털크레딧
- 국비지원코딩
- 유데미
- Flutter
- 스나이퍼팩토리
- 인사이드아웃
- 앱개발
- 러닝핏습관챌린지
- 국비코딩
- 부트캠프
- 고용노동부국비지원
- Udemy
- 러닝핏
- IT개발캠프
- 러닝핏인강
- 플러터
- 코딩국비지원
- 개발
- 웹개발
- 내일배움투어
- 안드로이드
- ios
- 내일배움카드사용처
- 습관챌린지
- 웅진씽크빅
- K디지털기초역량훈련
- 0원코딩인강
- 내일배움카드인강
- 국비지원파이썬
- Today
- Total
매일 땡기는 마라 코딩
[9주 완성 프로젝트 캠프 : 플러터(유데미x스나이퍼팩토리)] #0-2. Git 본문
요즘 프로젝트를 하면서 깃허브에 대해 좀 제대로 배워야겠다고 생각하던 차, 이게 웬 떡이야 하고 들은 강의들.
VSCode에 Git을 연결하면 굉장히 편리하게 사용할 수 있는데 그 내용에 대해 학습할 수 있었다.
이게 인터넷에 검색하면 생각보다 잘 안 나오거등. 거기다 뭐만 하면 오류 천지.
이번 기회에 확실히 배워 보기로.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/016.gif)
Git과 Github란
"Git"
Git은 파일의 히스토리를 관리해 주는 시스템이다.
- 서비스 장애 발생 시 이전 코드로 복구가 가능하게 해 준다.
- 파일의 변경 사항을 날짜, 수정자 등의 정보와 함께 기록해 준다.
- Git 설치 링크: https://git-scm.com/downloads
"Github"
클라우드 기반의 Git 저장소 호스팅 서비스
- 컴퓨터 고장 시에 백업이 가능하다.
- 여러 명과 소스코드 공유가 가능하다.
- 로컬 Git 소스코드를 클라우드 서비스에 업로드해 준다.
- Github 가입 링크: https://github.com/
추가로 VSCode Extensions인 git graph를 설치해 준다.
Repository
"Repository"
저장소라는 뜻으로, Git으로 관리하는 프로젝트 폴더를 말한다.
- 단순 폴더 생성으로는 Git이 변경사항을 추척해 주지 않는다. -> 초기화 과정 필요
- 초기화 과정을 거친 프로젝트 폴더를 repository라고 한다.
Repository를 만드는 방법
1. 프로젝트 폴더를 생성 후, VSCode로 열어 준다.
2. 프로젝트 파일을 생성한다.
3. Source Control 탭에 접속한다. (왼쪽에 위치한 Bar 확인)
4. 다음과 같은 화면이 뜨면 Publish to GitHub를 선택해 준다.
- Initialize Repository는 컴퓨터에만 reopository 생성
- Publish to GitHub는 컴퓨터에 reopository 생성 및 GitHub에 reopository 업로드
5. 상단 탭에 repository명을 작성해 준다. 보통 폴더와 같은 이름으로 작성.
- private: 나와 내가 허용한 사람만 접근할 수 있도록 한다. 회사에서는 이거 많이 사용함.
- public: 누구나 접근할 수 있도록 한다.
6. repository 생성 확인을 위해 프로젝트 파일에 문장을 추가 및 저장해 준다.
7. Source Control 탭 Changes에 파일이 보이는 것을 확인.
- 클릭하면 변경된 내용을 기존 repository의 내용과 비교하여 보여 준다.
repository 생성이 완료되면, Git이 프로젝트 파일의 변화를 추적할 수 있게 된다.
commit
"commit"
Git이 코드의 변화를 기록하는 것.
- repository를 initialize할 때 자동으로 첫 commit이 생긴다.
- git graph를 통해 commit과 git 동작을 보기 쉽게 확인할 수 있다.
- commit을 할 때는 commit message를 작성해 줘야 하는데, 작업을 요약한 내용이면 좋다.
- 소스코드의 변경사항을 한 묶음으로 묶어 기록한다.
- ex) 여러 파일을 수정하고 한 번에 커밋.
- 타임라인을 만든다고 생각하면 된다.
commit 하는 방법
1. 프로젝트 파일을 수정 및 저장하여 Changes 부분에 파일이 보여지도록 한다.
2. commit message를 작성해 준다. (3번 후에 해도 됨!)
3. 2번 사진의 + 버튼을 눌러 파일이 Staged Changes에 등록되도록 한다.
4. Commit 버튼을 눌러 commit한다.
-> Staged Changes에 등록된 수정 사항만 commit 된다.
변경사항의 세 가지 상태
- Working directory: 수정 및 저장했지만, commit 되지 않은 상태
- Staging Area: 수정 사항을 다음 commit에 포함할 것을 표시한 상태
- Repository: commit된 상태
push, pull
"Origin(=Remote Repository)"
Github에 업로드 된 레포지토리
컴퓨터와 Github 모두 Repository가 존재하게 된다.
서로 변경 사항을 올리고 가져올 수 있는(동기화) 수단이 필요하다.
-> push, pull
- 여기서 master는 컴퓨터의 사항
- origin/master는 Github에 반영된 사항
"push"
local의 변경 사항을 Github의 origin에 업로드해 주는 것.
local의 앞선 변경사항을 origin에 반영해 준다.
push하는 방법
- Sync Changes는 pull&push
- Push만 하려면 사진과 같은 방법 사용
"pull"
origin의 변경 사항을 다운로드 받아 오는 것.
origin의 앞선 변경사항을 local에 반영해 준다.
pull하는 방법
origin의 수정 사항이 있으면 origin/master가 master보다 앞서게 된다.
branch
"branch"
특정 지점에서, 새로운 버전으로 분기하는 것.
- 소스코드의 복사본을 만드는 것이라고 생각.
- branch는 완전히 독립된 공간이다.
- 복사한 원본 branch에 영향을 주지 않고 commit&pull&push가 가능하다.
branch 만드는 방법
1. 해당 버튼으로 create branch해 준다.
2. 상단 탭에서 branch명을 지정해 준다.
3. (선택) commit을 해서 branch의 변경 사항을 확인한다.
4. (선택) branch 이동
5. (선택) 이동된 branch에서 commit을 추가한다.
merge, conflict
"Merge"
하나의 branch를 다른 branch에 합치는 것.
- merge를 하면 branch가 사라지는 것이 아닌, 합쳐지는 것이다.
- 공통의 코드 베이스를 공유하면서, 효율적이고 독립적인 작업 환경이 필요할 때 주로 사용한다.
merge하는 방법
0. new를 master에 합치는 것을 기준으로 진행.
1. master에서 merge를 진행하기 위해, master branch로 이동해 준다.
2. 합치려는 branch, 즉 new branch 부분에서 우클릭을 하여 Mergeinto current branch를 클릭해 준다.
3. CONFLICT 오류가 뜰 경우 남길 수정 사항을 결정해 준다.
"Conflict"
같은 파일의 같은 라인 코드를 수정한 branch끼리 marge할 때 발생하는 오류
둘 중 어떤 branch의 수정 사항을 남길지 결정해야 한다.
Conflict 오류가 날 경우 해당 파일에 이런 부분이 생긴다.
- Accept Current Change: 현재 위치하고 있는 브랜치의 변경 사항을 유지(master)
- Accept Incoming Change: marge할 브랜치의 변경 사항을 유지(new)
- Accept Both Change: 두 브랜치의 변경 사항 모두 유지
- Compare Change: 두 브랜치의 change된 사항을 비교하는 화면 출력
원하는 부분을 클릭하면 자동적으로 파일 내용을 바꿔 준다.
필요하지 않은 부분을 직접 지울 수도 있다.
4. 수정한 파일을 commit&push해 준다.
Merge without Conflict하려면?
같은 라인의 소스 코드를 건들이지 않고 merge를 하면 된다.
최근에 marge의 방법을 모르는 상태에서 gitbash를 사용하다 marge 관련 명령어를 사용한 적이 있는데, Conflict 오류가 나서 파일들이 죄다 수정사항 선택 부분이 생긴 적이 있다.
당황해서 몇 개의 파일은 그 부분을 다 지워 버리거나, 아무 버튼이나 클릭했었는데 이 강의를 먼저 들었으면 좋았을걸...
하마터면 프로젝트 날릴 뻔했다. 이제는 배운 대로 가능하다는 것!
본 후기는 유데미-스나이퍼팩토리 9주 완성 프로젝트캠프 학습 일지 후기로 작성 되었습니다.
#유데미 #udemy #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #웹개발 #앱개발 #플러터 #flutter #개발 #안드로이드 #ios #단기캠프
'Flutter' 카테고리의 다른 글
[9주 완성 프로젝트 캠프 : 플러터(유데미x스나이퍼팩토리)] 3일차 과제 - 유튜브 뮤직 클론코딩 (5) | 2023.10.22 |
---|---|
[9주 완성 프로젝트 캠프 : 플러터(유데미x스나이퍼팩토리)] 3일차 과제 - 스타벅스 클론코딩 (0) | 2023.09.21 |
[9주 완성 프로젝트 캠프 : 플러터(유데미x스나이퍼팩토리)] 2일차 과제 (0) | 2023.09.21 |
[9주 완성 프로젝트 캠프 : 플러터(유데미x스나이퍼팩토리)] 1일차 과제 (0) | 2023.09.20 |
[9주 완성 프로젝트 캠프 : 플러터(유데미x스나이퍼팩토리)] #0-1. 사전 준비 (0) | 2023.09.18 |