git commit 명령어
명령어 | 용도 | 기타 | |
git에 파일저장 | git add 파일명 | commit 전 commit할 파일들을 골라놓기(작업폴더-> staging area) | 여러 파일 동시에 스테이징 가능 git add. 하면 전부 스테이징 |
git commit -m '메시지' | add한 파일들을 repository에 저장하는 용도 | ||
상태 | git status | 지금 변경된 파일, 스테이징된 파일 알려줌 | |
취소 | git restore | 스테이징된 파일 취소 | 외울필요 없음 |
기록 | git log | commit 기록 파악 | |
차이점 | git diff | 바로 전 commit 과 현재 비교 | 뒤에 커밋ID명시하면 과거의 특정 commit과 현재 파일 비교 가능(ex git diff --online) 과거의 2개 간의 차이점 비교도 가능함 |
git difftool | diff와 유사하지만 비주얼정 차이점 분석해줌 | diff와 유사 | |
시작 | git init | 처음에 이렇게 시작해야됨 |
+VSCode Extensions 메뉴에서 git graph 깔아서 써도 됨.
git branch 하기
명령어 | 용도 | 기타 | |
브랜치 생성 | git branch 브랜치이름 | 프로젝트 사본 생성 | |
브랜치 이동 | git switch 브랜치이름 | 이동하고 싶은 브랜치명 | |
merge 브랜치 합치기 | git switch main/master git merge 브랜치명 |
합치기 | 두 파일에서 같은 줄, 같은 파일 수정하면 merge conflict 생김 -> 파일열어서 수정하고 git add, git commit 하기 |
필요없는 브랜치 삭제 | git branch -d 브랜치이름 | 병합 완료된 브랜치 삭제 | |
git branch -D 브랜치이름 | 병합하지 않은 브랜치 삭제 | ||
rebase and merge | git switch 새로운브랜치 git rebase main |
강제로 fast-forward | |
squash&merge | git switch main git merge --squash 브랜치명 git commit -m '메세지' |
다양한 merge 방법
1. 3-way merge
브랜치에 각각 신규 commit이 1회 이상 있으면 새로운 commit 자동 생성해 주는 것
2. fast-forward merge
새로운 branch에만 commit이 있으면 새로운 branch를 main 브랜치라고 하는 것
3.rebase and merge
신규브랜치의 시작점을 main 브랜치의 최근 commit(다음 commit)으로 옮기고
fast-forward merge하는 것
4. squash and merge
새 브랜치에 있던 코드변경사항들이 main 브랜치로 teleport
commit 이전 파일 수정하기
명령어 | 용도 | 기타 | |
git log --oneline | commit 내역 보여줌 | commit 고유 아이디 확인가능 | |
git restore | git restore 파일명 | 최근 commit 상태로 되돌리기 가능 | |
git restore --source 커밋아이디 파일명 | 특정 커밋아이디 시점으로 복구 | ||
git revert | git revert 커밋아이디 | 해당 커밋을 삭제한 새로운 file commit됨 | 최근 commit 한 개만 revert 하고싶으면 git revert HEAD |
git reset | git reset --hard 커밋아이디 | 커밋 생성될 때로 시간 돌려줌 | 해당 커밋 이후의 미래 기억 모두 잃는다 |
깃허브
온라인 repository: 내가 컴퓨터에 만들어 놓은 git repository를 온라인으로 저장해 두는 것
로컬저장소 -> 원격저장소
git push -u 원격저장소주소 main
git remote add origin 주소 => 변수저장
이후에는 git push 만 해도 됨
(git push 에 문제가 생기면 git pull 후 git push)
원격저장소 -> 내려받기
git clone 주소
원격저장소에 올리지 않을 파일: .gitignore
이중 폴더 내부에 있을 때에는
git add foldername/filename.py