깃 시작하기
→ 이 명령어를 실행하면 폴더 안에 숨겨진 .git 폴더가 생김,
상태 확인
- 변경된 것이 있는지, 지금 브랜치가 어딘지 등 보여줌
커밋하기(현시점 저장하기)
→ 현재 폴더 및 하위폴더 안의 모든 파일을 커밋 대상으로 추가 (스테이징)
(특정 파일만 하고 싶으면 git add 파일명)
* 스테이징이 파일이 올라간 시점부터 추적 시작
- 여기서 -m은 --message의 축약형
- 즉, 커밋에 붙일 메시지를 바로 입력하겠다는 뜻
깃허브에 올리기 : git push
깃허브에서 내려받기 : git pull
- git log
- git log --oneline (한줄요약)
- git log --oneline --graph --all --decorate (브랜치 흐름까지)
- git log -n 3 (최근 2개만)
- git log --graph (브랜치 시각화)
깃허브에 있는거 로컬로 내려받기 : git clone [저장소 주소]
수정된 내용 확인(커밋 전) : git diff
도움말 : git help [명령어]
<브랜치 관리>
- git branch : 브랜치 목록 보기
- git branch [브랜치명] : 브랜치 만들기
- git checkout [브랜치명] : 해당 브랜치로 전환
상황 | 명령어 |
현재 브랜치만 푸시 | git push |
특정 브랜치 푸시 | git push origin 브랜치명 |
새 브랜치 푸시 | git push -u origin 브랜치명 → 이 후엔 git push만 써도 연결됨 |
* 새 브랜치 만든 이후엔 push 하기 위해 다시 < git push -u origin 브랜치명 > 해줘야 함 (저장소에 공간 생성 및 연결)
<깃허브에 올리기>
GitHub에 새 저장소 생성
- GitHub 접속 → 우측 상단 ‘+’ → New repository
- Repository 이름 입력 (예: my-project)
- Initialize this repository with a README 체크하지 마세요.
- Create repository 클릭
git remote add origin https://github.com/john-doe/my-project.git
git branch -M main
git push -u origin main
* origin은 원격 저장소(프로젝트 폴더) URL에 붙인 별명(원하는 걸로 입력 가능)
* 저장소 별명 바꾸기 : git remote rename 기존이름 새이름
연결된 원격 저장소 확인 : git remote -v
* git fetch origin: 가져오기만 하기 (병합은 안함). pull은 가져와서 병합까지 함
git branch -M main
- 현재 브랜치 이름을 main으로 바꿈
- 설령 main이라는 브랜치가 이미 있더라도 덮어씀
- -M은 --move --force의 약자. 즉, 브랜치 이름을 "강제로" 바꾸는 명령어
git push -u origin main
로컬의 main 브랜치를 원격(origin)의 main 브랜치에 업로드하는 명령
-u는 앞으로 git push 명령만으로도 이 브랜치에 푸시할 수 있도록 연결을 설정하는 옵션입니다.
-u는 --set-upstream의 약자.
* 업스트림 및 브랜치 확인 : git branch -vv
* vv: 아주 자세히 ; verbose verbose
* vs code 또는 cursor ai 좌측 하단에 현재 브랜치 표시됨
vs code에서는 기본적으로 좌측 창에 별도로 git을 gui로 쓸 수 있는 기능을 넣어놓음
메시지 창에 커밋할 이름을 적고 커밋을 누르면 된다. add 안해도 물어볼때 yes 누르면 된다.
push 까지 클릭으로 된다.
커서에선 변경내용 자동요약도 됨
*VS code 와 github 모두
- 지금 내 로컬과 깃허브의 차이점 확인하기( push가 필요한지 검토): git status (마지막 커밋 이후 수정된 내용도 확인 가능)
- 브랜치별로 add, commit, push는 각각 해야 함
<stash - 커밋 전 작업 임시 저장>
상황예시 - 커밋하고 싶진 않은데 저장해놓고 다른 브랜치로 가서 작업할 경우
git stash save "브랜치 1 작업 내용 임시 저장"
git stash : 이런 식으로 이름 안붙이고도 가능
브랜치2로 이동 : git checkout 브랜치2
브랜치2에서도 커밋하긴 그렇고 임시저장 : git stash save "브랜치 2 작업 내용 임시 저장"
브랜치 1로 돌아오기 : git checkout 브랜치1
저장된 stash 리스트 보기 : git stash list (stash는 브랜치와 상관없이 통합사용)
git stash list 출력 예시:
stash@{0}: On 브랜치2: 브랜치 2 작업 내용 임시 저장
stash@{1}: On 브랜치1: 브랜치 1 작업 내용 임시 저장
stash@{2}: On main: 초기 작업 내용 임시 저장
git stash apply: 가장 최근 stash 적용(불러오기)
특정 stash 적용하기 : git stash apply stash@{0} (0에 해당 숫자)
특정 stash 제거하기 : git stash drop stash@{0}
적용하면서 바로 제거하기 : git stash pop stash@{0}
* Untracked 파일(새로 생성했는데 아직 add로 스테이징 영역에 올리지 않은 것)까지 stash에 포함하려면
git stash -u 또는 git stash --include-untracked
커밋 되돌리기 (최근 커밋 지우기)
git reset --soft HEAD~1 # 커밋만 삭제, 변경 내용은 스테이징 상태로 유지
# 또는
git reset --mixed HEAD~1 # 커밋 삭제 + 스테이징 해제
# 또는
git reset --hard HEAD~1 # 커밋과 변경 내용 완전 삭제 (주의!)
* HEAD는 현재 체크아웃(작업 중)한 브랜치의 가장 마지막 커밋을 의미
표현 | 의미 |
HEAD | 현재 커밋 |
HEAD~1 | 1단계 이전 커밋 (한 칸 뒤로 가기) |
HEAD~2 | 2단계 이전 커밋 |
HEAD~3 | 3단계 이전 커밋 ... |
댓글