git은 폴더의 모든 파일을 트레킹할 수 있다. 원하는 폴더에서 git 초기화 명령어부터 git 사용은 시작된다.
git init
git 연결 확인 명령어
git remote -v
원격 저장소와 연결하는 명령어
git remote add [저장소 이름][저장소url]
ex) git remote add origin https://github.com/sloools/springBootPracticeApp.git
기존 원격 저장소 해제
git remote remove origin
staging은 임시로 로컬에서 변경된 내용을 임시로 저장하는 공간이다.
staging 단계로 저장하고 싶으면 add 명령어를 사용하면 된다.
git add [file name]
디렉토리 전체를 올리고 싶으면 아래 명령어를 사용.
git add .
수정된 파일을 hunk(변경 사항의 단위) 별로 보여주면서(diff) staging에 올릴 지 말 지 체크
git add -p
staging에 올리지 않은 파일들은 untracked files로 분류된다. staging 단계로 올라가야 git이 파일을 트레킹할 수 있다는 것이다.
디렉토리에서 변경된 파일을 local repo에 저장하는 과정을 commit 이라고 한다.
git commit -m [commit message]
staging 단계를 뛰어넘어 바로 commit을 하고 싶다면 -a 옵션을 사용한다.
git commit -am [commit message]
이전 단계의 커밋에 변경사항을 추가하고 싶으면 --amend 명령어를 사용한다.
git commit --amend
브랜치는 git에서 작업을 하는 가지라고 생각하면 된다. git은 기본적으로 가장 중심이 되는 master라는 브랜치를 가지고 있고, 이 브랜치에서 다른 기능을 만들어야 하는 작업이 있을 때 다른 브랜치를 따서 개발하면 된다.
앞에 별표(*)가 있는 것이 현재 브랜치이다
git branch
브랜치를 추가할 땐 [생성할 브랜치 명] + [기준 브랜치명] 순서로 만든다.
git branch b1 master
새로 만든 브랜치로 이동해서 작업하려면 checkout 명령어를 사용하면 된다.
git checkout b1
특정 파일 수정 중에 최근 커밋 버전으로 돌리고 싶을 때도 checkout을 사용한다
git checkout - 수정파일이름
git branch -d [branch name]
새로 만든 브랜치에서 다시 기준 브랜치에 반영하려면 merge 명령어를 사용한다.
git checkout master // 기준 브랜치 선택
git merge b1 // 새로 만든 브랜치를 기준 브랜치에 병합
원격저장소에 있는 최신 소스를 로컬 저장소로 가져오는 명령어이다
git fetch origin
pull은 원격 저장소에 있는 소스와 내 소스가 다르다면 가져와서 업데이트 해준다. 즉 fetch + merge 라고 생각하면 된다. 명령어는 [원격저장소 이름] + [브랜치이름]이다.
git pull origin master
헤드는 현재 작업중인 커밋을 말한다.
즉, 내가 현재 어떤 작업공간에 있는지 나타내는 것이다. 보통 헤드는 브랜치의 이름을 가리킨다.
헤드는 브랜치별로 존재한다
add 명령어와 clone 명령어를 사용할 때 origin이라는 단어를 많이 봤을 것이다. origin은 원격 저장소의 이름을 뜻한다. git remote add origin [url] 형식으로 원격저장소를 추가할 때 자동으로 origin이라는 이름의 원격 저장소가 등록이 된다.
master가 브랜치의 기본 이름인 것처럼 origin은 원격 저장소의 기본 이름이다.
log 명령어로 간단한 커밋 정보를 볼 수 있고, show 명령어는 더 자세한 내용을 조회할 수 있다.
git log
git show
push 하지 않은 커밋 확인
git log --branches --not --remotes
상황별 git 명령어 : https://jeonghwan-kim.github.io/dev/2020/02/10/git-usage.html
push, pull 에러 : https://jobc.tistory.com/177