오늘 한 일
- 깃허브에 구글 클론코딩 커밋함
- git 사용법 배움
공부한 내용
git이란?
버전 관리 시스템
-
Centralized Version Control
: 서버에서 히스토리를 관리하며 각각의 개발자들이 원하는 내용을 서버에 업데이트해서 즉각적으로 동기화가 이루어지는 시스템 → 서버에 문제가 생기거나 오프라인 상태에서 작업 불가함
- CVS, SUBVERSION, PERFORCE 등
-
Version Control System
: CVC의 문제점을 개선함 → 모든 개발자들이 동일한 히스토리 정보를 가지고 있음(분산)
서버에 문제가 발생해도 각각의 개발자들이 동일한 히스토리를 가지고 있기 때문에 서로의 정보를 이용하여 서버를 보안하고 작업을 이어 나갈 수 있음, 오프라인 가능
- git, mercurial, darce 등
- 서버는 회사의 Private Server를 이용하거나 github나 Bitbucket 같은 클라우드를 이용함
git의 장점
프로젝트의 전체적인 내용을 가지고 있어 버전들 사이로 이동이 가능하고 브랜치들 사이에서도 이동이 오류 없이 빠르게 적용됨
- 가장 많이 사용
- 오픈 소스
- 오프라인 가능
- 실수를 고치기 쉬움
- 쉽고 빠른 브랜치 → 협업에 효율적
Git Workflow

working directory
- tracked : git이 트래킹 하고 있는 파일, 트래킹 시점에서 수정의 유무에 따라 나뉜다.
- modified : 수정 됨 → staging area로 옮겨 갈 수 있음
- unmodified : 이전 버전과 비교해서 수정 되지 않음
- untracked : 새로 만들어진 파일, 기존에 존재하던 프로젝트에서 깃 초기화
→ 깃이 파일에 관한 정보가 없기 때문에 트래킹이 되지 않음
staging area
버전 히스토리에 저장할 준비가 되어 있는 파일들을 옮겨 놓음
git directory
버전 히스토리를 가지고 있음
git 명령어
기본 명령어
- git init : git 초기화
- rm -rf .git : git 삭제
- git status : 깃의 상태를 볼 수 있음
- git diff : 파일의 수정된 내용 확인
git commit
staging area에 있는 변경사항을 git repository에 옮겨주는 역할
- git directory의 커밋들은 히스토리의 창고 이며, 작업들을 버전 별로 관리할 수 있음
- 히스토리에 전체적인 어플리케이션을 만들어서 하나의 커밋으로 저장하게 되면 의미가 없음
→ 세분화 해서 기능별로 작은 단위로 의미 있는 이름을 지정해서 만드는 것이 중요
git branch
현 시점에서 여러 미래로 분기하는 방법
- 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있음
git merge
branch 병합
GitHub
git을 사용해서 클라우드를 쓰듯이 소스를 업로드해서 저장하고 다른 개발자들과 공유할 수 있는 git 저장소
git remote
원격 저장소를 관리할 수 있는 명령어
git remote add origin https://github.com/user-repository
해당 github 레파지토리를 이 폴더의 'origin'이란 이름의 원격 저장소로 설정함
git push
git push -u origin main
브랜치에 커밋된 내용들을 origin의 레파지토리의 main 브랜치에 저장함
gitignore
프로젝트 중 깃에 포함하고 싶지 않은 파일들은 .gitignore이라는 파일에 추가할 수 있음
해야 할 일
- 클론코딩 수정

나름 꼼꼼하게 했다고 생각했는데 모바일에서 툴팁박스가 저 상태다..
- git 추가 공부 하기 , 아직 모르는 게 너무 많다..