깃과 깃허브
Git: 내 것. 개인 버전 관리 툴
Github: 공동 저장소(Remote Repository)
깃허브의 용도
1. 백업
2. 버전 관리
3. 협업
깃의 논리적인 3개의 차원(물리적으로는 하나)
1. Working Directory: 깃이 추적하지 않는다(버전 추적 X)
2. Staging Area: 깃이 추적하는 공간
3. Local Repository: Remote Repository에 올리기 전 공간
Working Directory -> Staging Area -> Local Repository -> Remote Repository
git add git commit git push
현재 디렉토리 기준 git 저장소 생성(.git 폴더 생성)
git init
git 환경에서 사용할 사용자 이름, 이메일 지정
git config user.name "이름"
git config user.email "이메일"
현재 git 폴더에서만 사용 가능
--global 옵션
현재 git 폴더에서 뿐만 아니라 다른 곳에서도 사용할 수 있음
git 상태 확인(Working Directory와 Staging Area)
git status
빨간색: Working Directory
초록색: Staging Area (add 하면)
Working Directory -> Staging Area
git add [파일 이름]
Working Directory에 있는 거 모두 Staging Area로 올리겠다
git add .
Staging Area -> Working Directory
git restore --staged [파일명]
Staging Area -> Local Repository
git commit -m "메세지"
커밋 내역 확인
git log
(커밋 내역은 git status에서 확인 불가)
--oneline 옵션
한 줄로 확인
Remote Repository에 연결
git remote add [별칭] [깃허브 주소]
별칭은 origin으로 한다
원격 저장소에 연결 되었는지 확인
git remote -v
Local Repository -> Remote Repository
git push -u [별칭] [브랜치]
Remote Repository의 변경 사항을 push 하기 전에 받아 온다(코드 충돌을 대비하여)
변경 사항이 현재 브런치에 반영되지 않는다
git fetch
변경 사항이 현재 브런치에 반영된다
git pull [별칭] [브랜치 이름]
충돌했다면 어느 것을 사용할 것인지 판단 -> 다시 Local Repository까지 올려서 push
https://velog.io/@yena1025/git-fetch%EC%99%80-git-pull%EC%9D%98-%EC%B0%A8%EC%9D%B4
이전 시점으로 되돌리기(버전 관리)
git revert [commit 주소]
git log를 통해 commit 주소를 알아낸다
브랜치들을 보여주고 현재 브랜치 표시
git branch
한 번도 커밋을 하지 않았다면 보여주지 않음
브랜치 생성
git branch [브랜치 이름]
브랜치 삭제
git branch -d [브랜치 이름]
브랜치 이름 변경
git branch -m [브랜치 이름(없으면 현재 브랜치)] [변경할 브랜치 이름]
브랜치 이동
git checkout [브랜치 이름]
git switch [브랜치 이름]
브랜치 생성하면서 이동
git checkout -b [브랜치 이름]
브랜치 병합
git merge [브랜치 이름]
지정한 브랜치의 변경 내역을 현재 HEAD 포인터가 가리키는 브랜치에 반영
다른 사람의 깃허브 주소로 Local에 다운 받기
git clone [깃허브 주소]