일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- xcode
- concurrency
- network
- regex
- xcodecloud
- SWIFT
- SWIFTUI
- 모바일
- TCA
- UI
- test
- uikit
- IOS
- iOS 13.0+
- ObjC
- navigationsplitview
- Navigation
- Firebase
- Alamofire
- composablearchitecture
- ios18
- 개발
- Git
- iOS 개발자
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- 정규표현식
- Tuist
- swiftdata
- github
- combine
- Today
- Total
iOS 개발 기록
[Git] CLI 기본 명령어 본문
파일 및 커밋 추가
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 |