본문 바로가기
코드, 노코드/Git

[Git] 터미널에서 git 사용하기

by ✿ ☺ ☻ ☹ ☼ ☂ ☃ 2024. 12. 26.
반응형

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

댓글