Git 설치과정은 생략, 그냥 새로운 프로젝트 시작했을 때 어떻게 Git 시작하는지 매번 까먹는 초보라 정리해둠
내 컴에 Git 설치확인하려면, 사용할 폴더 터미널에서 열고
git --version
git version 어쩌고 나오면 성공
Git 사용 시작하려면, 사용할 폴더 터미널에서 열고
git init
폴더 어쩌고 안의 빈 깃 저장소를 다시 초기화했습니다.라고 나옴
기본 브랜치 이름을 Master에서 Main으로 바꾸기
git branch -M main
add, commit 하는 방법
파일 아무거나 폴더 안에 만들고, 기록 테스트해보기 (터미널에 아래처럼 입력)
git add 파일이름1 파일이름2
git add . //모든 파일 추가하기
git commit -m '업데이트 내역 설명하기'
add : 스테이징, 모든 파일이 커밋되는 건 아님. 커밋 후보군
commit : repository에 저장
변경 이력 확인
폴더 안의 .git 확인해보거나
git status
git log --all --oneline
git log --all --oneline --graph
head라고 써있는게 현재 위치
스테이징 취소
git restore --staged 파일이름
git restore --staged . //모든 파일
직전 commit과 현재 코드의 차이
git diff commitId //방금 커밋한거 말고, 그 직전에 커밋한 거 id
git diff commitId1 commitId2
커밋 아이디는 git log --all --oneline해서 왼쪽에 나오는 ID 복붙하면 됨
git log 또는 git log --all만 했더니 vim 에디터로 들어가서 당황 ㅋ
:q 누르면 나올 수 있음
Branch 만들기
git branch Branchname
ex.
git branch feature/coupon
다른 Branch로 이동하기
git switch Branchname
git switch main // 기존 브랜치로 돌아가기
git status // 현재 어느 브랜치인지 확인
Merge로 합치기
git switch main
git merge BranchName
같은 파일, 같은 행을 수정하면 충돌이 일어남
에디터에서 고치고 add, commit
3 way merge
브랜치에 각각 신규 커밋이 있는 경우
합치면서 새로운 커밋 자동으로 해줌
fast-forward merge
새로 만든 브랜치에만 커밋이 있는 경우
합치면 그냥 신규 브랜치 이름만 main으로 바뀌는 셈
fast-forward되는 거 강제로 안하고 싶으면
git merge --no-ff BranchName
이렇게 하면 그냥 3 way merge됨
Branch 삭제
git branch -d BranchName //병합이 완료된 브랜치 삭제
git branch -D BranchName //병합하지 않은 브랜치 삭제
Rebase
브랜치 시작점을 다른 commit으로 옮기기
git switch BranchName
git rebase main
git switch main
git merge BranchName
뭔지 잘 모르겠음
하다보면 알듯
Squash & Merge
브랜치 내용을 main으로 옮기기
기존 커밋내용 출력안되서 깔끔하다고
git switch main
git merge --squash BranchName
git commit -m '메세지'
Revert
특정 커밋 내용 삭제하고, 삭제한 상태로 새로운 커밋 생성
git revert CommitId
git revert CommitId1 CommitId2 //여러개 삭제 가능
git revert HEAD //최근 커밋 1개만 삭제
Restore
마지막 commit상태로 파일 원복
(파일 열어놓은 상태에서는 안바뀐거 같지만, 다른 파일 눌렀다가 돌아오면 수정했던 내용 다 사라짐)
git restore Filename
git restore --source CommitID Filename //특정 커밋한 시점의 파일로 원복
git restore --staged Filename //스테이징 취소
Reset
선택한 commit 상태로 모두 되돌리기
이후에 커밋한 내용 다 날려버림
git reset --hard CommitID //선택한 커밋아이디 뒤의 커밋 내역 삭제
git reset --soft CommitID //선택한 커밋아이디 관련 파일을 staging 상태로 만듬
git reset --mixed CommitID //선택한 커밋아이디 관련 파일이 자연인 상태로 바뀜. add, commit 다시 하든가 해야함
clean
add 안해놓은 파일들 삭제
git clean -i //뒤에 i, n, f같은 옵션에 따라 달라지는 듯. i는 삭제하는 옵션이 나옴
push
깃헙 로그인하고 업로드됨
git push -u 깃헙주소 main //주소 저장
git push //주소 저장한 다음부터
주소 변수에 저장하고 쓸수도 있음
git remote add origin 주소 //주소를 origin에 저장
git push -u origin main //저장된 주소로 업로드
git remote -v //변수 목록
clone
github에서 다운받기
git clone 깃헙주소
.gitignore
깃헙에 올리기 싫은 파일, 올리면 안되는 파일 목록 작성해두기
git add .에도 포함되지 않음
pull
로컬에 없는 내용 깃헙에서 가져와서 merge하기
git pull 깃헙주소
stash
임시 보관
마지막 커밋 상태로 돌아감
git stash save '메모'
git stash list //stash된 목록
git stash pop //보관한 거 불러오기 (최신순으로 불러옴)
git stash drop StashID //삭제
git stash clear //모든 stash 삭제
git stash -p //일부 코드만 선택해서 stash
'코드, 노코드 > Git' 카테고리의 다른 글
[git] VScode에서 git 사용하기 (0) | 2024.12.26 |
---|
댓글