iOS 개발 기록

[Git] CLI 기본 명령어 본문

Git

[Git] CLI 기본 명령어

택꽁이 2022. 5. 13. 14:28
728x90

 

파일 및 커밋 추가

git status
 

· 변경 사항 확인

 

 

git add "(파일 이름)" 

// 변경된 모든 파일을 담을 경우
git add .
 

· 변경된 파일 하나 담기.

· 모든 파일 담기

 

 

 

git commit -m "(커밋 메세지)"

// vi로 커밋을 편집할 경우
git commit 

// 커밋 내용 확인
git commit log

// add와 commit을 한번에 할 경우
git commit -am "(메세지)"

// 마지막 commit 취소
git reset HEAD^
 

· add와 commit을 한번에 하는 경우는 새로 추가된 파일이 없을 때 한정

 

 

 

 

 

버전 되돌리기 (reset, revert)

// 커밋 내역 확인
git log 

//돌아갈 특정 버전이 있는 경우 
git reset --hard (돌아갈 커밋 해시)

// 마지막으로 커밋한 내역으로 돌아갈 경우
git reset --hard
 

· reset은 돌아갈 버전의 해시를 구함

· reset 한 경우 그 뒤의 커밋 내역은 삭제됨.

 

git revert (되돌릴 커밋 해시)
 

· revert는 되돌린다는 커밋 내역을 추가해 되돌림.

· 협업할 경우 reset이 아니라 revert를 써야 함

 

 

 

 

 

Branch 관련 기능 (생성 및 이동)

// add-coach 라는 이름의 브랜치 생성.
git branch add-coach

// 생성된 브랜치 목록 확인 
git branch

// add-coach라는 브랜치로 이동
git switch add-coach 

// new-teams 생성과 동시에 이동
git switch -c new-teams

// 브랜치 삭제
git branch -d (삭제할 브랜치명)

// 브랜치 이름 바꾸기
git branch -m (기존 브랜치명) (새 브랜치명)
 

· 지울 브랜치에 다른 브랜치로 적용되지 않는 내용의 커밋이 있을 시에는 -D로 강제 삭제

 

 

 

// 여러 브랜치의 관리 내역 편리하게 보기 
git log --all --decorate --oneline --graph
 

· source tree에서 더 편하게 확인 가능

 

 

 

 

Branch 관련 기능 (합치는 기능 : merge, rebase)

// add-coach 브랜치를 main 브랜치로 merge
git merge add-coach 

// 합친 브랜치는 삭제하면 됨.
git branch -d add coach
 

· merge : 합쳐지며 main 브랜치로 이동

· merge는 하나의 커밋이기 때문에 reset으로 merge하기 전으로 돌릴 수 있음.

 

 

// new-teams 브랜치를 main 브랜치로 rebase
git rebase main

// main 브랜치로 이동 후 new-teams merge
git merge new-teams

// new-teams 삭제
git branch -d new-teams
 

· rebase : 협업 시 사용하지는 않는다.(pull은 사용) new-teams로 이동. 합칠 브랜치 이름을 입력 (merge와 반대)

· 그 후 main 브랜치로 이동해 new-teams의 시점으로 merge 해주어야 함

 

 

 

 

 

Branch 관련 기능 (충돌 해결)

// 충돌이 많아 merge를 중단할 경우
git merge --abort 

// 합친 내용과 커밋을 추가 
git add .
git commit 
 

· merge의 경우

 

// 충돌이 많아 중단할 경우
git rebase --abort


// 해결 가능시 (충돌할걸 모두 추가 한 후)
git add .
git rebase --continue
 

· rebase의 경우 : 문제 해결 후 rebase, 한 후 merge 하면 된다.

 

 

 

 

GitHub 연동

git remote add origin "(원격 저장 주소)" 
 

· 로컬의 git 저장소에 원격 저장소로 연결 추가.

· 원격 저장소 이름은 흔히 origin을 사용. 다른 것으로 수정 가능

 

git branch -M main
 

· GitHub 권장 - 기본 브랜치 명을 main으로

 

 

git push -u origin main 

// 원격으로 커밋 밀어 올리기(push)
git push

// 원격의 커밋 가져오기 (pull) 
git pull
 

· 로컬 저장소의 커밋 내역을 원격으로 push (업로드)

· -u 또는 -set -upstream : 현재 브랜치와 명시된 원격 브랜치 깁곤 연결

· 원격으로 커밋 밀어올리기 : 이미 git push -u origin main으로

 

 

 

 

 

 

GitHub 연동 (pull 할 내역이 있는데 push해야 할 경우 )

// 1. merge 방식
git pull --no-rebase 

// 2. rebase 방식
git pull --rebase

// 그 후 push
git push
 

· merge방식 : local의 버전과 원격의 버전의 시간선을 나눈 후 브랜치가 나뉘어진 후 합쳐짐.

· rebase 방식 : local 버전의 시간선을 원격의 시간선 뒤로 맞춤.

 

// 강제 push.
git push --force
 

· 원격에 있는 코드들에 뭔가 문제가 있어 local로 덮어쓸 때 사용. 협업 시 사전 논의 없이는 사용하지 않음.

 

 

 

 

GitHub 연동 (local과 원격의 브랜치 관리)

// 원격으로 브랜치 push
git push -u origin "(브랜치 이름)"

// 로컬의 브랜치 확인 
git branch

// 로컬과 원격의 브랜치 모두 확인
git branch --all  또는 git branch -a
 

· 로컬에서 만든 브랜치 원격으로 Push

· 그냥 push를 사용할 경우 어디에 push 할지 모른다는 에러가 뜸. origin으로 push한다는걸 지정.

 

 

// 원격의 변경사항 확인
git fetch

// 로컬에 같은 이름의 브런치를 생성하여 연결하고 switch
git switch -t origin/"(원격 브랜치 이름)"

// 원격의 브랜치 삭제
git push "(원격 이름)" --delete "(원격의 브랜치 이름)"
 

· 원격의 브랜치 로컬에 받아오기

 

 

 

 

계정 비밀번호 변경 후 입력시

// 기존 계정 정보 삭제 
git config --unset credential.helper

// 삭제 후 Push 하려고 하면 다시 아이디와 비밀번호를 입력하라고 나온다. 
git push
 
 

 

 

'Git' 카테고리의 다른 글

[Git] git 기본  (0) 2023.02.14
[Git] 100MB 이상의 파일이 담긴 커밋을 푸쉬해야할 때  (0) 2022.05.02