Mac에서 프로그래밍할 때 사용하는 패키지,라이브러리 설치할 때 씀
Mac에는 기본적으로 설치되어 있다
터미널 명령어
버전 확인 : git --version
설치 : brew install git
최신버전 확인: https://git-scm.com/
👉 최신버전 2.38.0이라길래 다시 설치해봤는데 여전히 2.37.0이란다 왜?
git을 gui로 다룰 수 있게 하는 툴
설치: https://www.sourcetreeapp.com/
ctrl
+ shift
+ ` 를 입력하면 터미널을 열 수 있음
설치: https://iterm2.com/
권장 설정: https://www.yalco.kr/_03_mac_terminal/
터미널 꾸미기 관련
단축키 정리
ITerm2
- Preference 열기 :
cmd
+ ,Vscode
- 환경설정 열기:
cmd
+ ,- 터미널 열기:
Ctrl
+Shift
+ `Mac
- 숨김파일 보기/해제:
cmd
+Shift
+ .
Command Line Interface vs Graphical User Interface
git init
.git
에 관리 내역이 저장됨(시간과 차원을 넘나들기 위함)cmd
+ Shift
+ .git status
.gitignore
파일을 생성git status
로 결과 확인 - (secrets.yaml이 git관리에서 배제됨)파일명.확장자
/파일명.확장자
/(특정 폴더)/파일명.확장자
*.확장자
!not_ignore_this.확장자
특정이름
특정이름/
특정이름/파일명.확장자
특정이름/**/파일명.확장자
git add 파일명.확장자
👉 버전별로 지정해서 추가하기 위함!git add .
git commit
i
ESC
:q
:q!
:wq
k
j
git commit -m "FIRST COMMIT"
git log
:q
(예제) FIRST COMMIT
입력, 저장 후 종료
git status
git diff
k
/ j
:q
git add .
& git status
git commit -m "Replace Lions with Leopards"
git add .
없이 바로 사용(예제) 결과:
: 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다.
git log
git reset --hard (돌아갈 커밋 해시)
HEAD ?
git status
: git관리 중이 아니라고 인식된다.git reset --hard
: 해시가 없으면 마지막 commit상태로 되돌림. (lions.yaml은 삭제한다): 되돌리기 원하는 시점의 커밋을 거꾸로 실행합니다.
해시 구하기: git log
revert: git revert (되돌릴 커밋 해시)
저장 & 닫기: :wq
소스트리
(예제) Replace Lions with Leopards 로 되돌리기
git rm leopards.yaml
👉 git revert --continue
👉 :wq
(예제) revert하기 전으로 reset하시오
git log
👉 해시
git reset --hard (해시)
(예제) 커밋하지 않고 "Add George to Tigers"로 revert하시오
git log
👉 해시
git revert --no-commit (되돌릴 커밋 해시)
git reset --hard
브랜치 생성: git branch (브랜치 이름)
브랜치 목록 확인: git branch
👉 닫기 q
브랜치 이동: git switch (브랜치 이름)
checkout
명령어가 Git 2.23 버전부터switch
,restore
로 분리
브랜치 생성 & 이동: git switch -c (브랜치 이름)
브랜치 삭제: git branch -d (삭제할 브랜치 이름)
지울 브랜치에 다른 브랜치에 적용되지 않는 내용의 커밋이 있을 시 강제 삭제
:git branch -D (삭제할 브랜치 이름)
브랜치 이름 수정: git branch -m (수정 전 브랜치 이름) (수정 후 브랜치 이름)
전체 브랜치 로그 확인: git log --all --decorate --oneline --graph
Merge: 두 브랜치를 한 커밋에 이어붙입니다.
main브랜치로 이동: git switch main
병합: git merge add-coach
자동입력된 커밋 메시지 저장 & 닫기: :wq
소스트리 확인
* merge 전 해당 브랜치 마지막 시점으로 리셋:
* 병합된 브랜치 삭제: git branch -d add-coach
: 브랜치를 다른 브랜치에 이어붙입니다.
new-teams브랜치로 이동: git switch new-teams
병합: git rebase main
소스트리 확인
main브랜치로 이동: git switch main
main브랜치의 시점을 new-teams브랜치 시점으로 fast-forward: git merge new-teams
new-teams브랜치 삭제: git branch -d new-teams
git merge --abort
git add .
👉 git commit
👉 :wq
git rebase --abort
git add .
👉 git rebase --continue
반복 👉 :wq
git switch main
👉 git merge conflict-2
git branch -d conflict-2
참조: https://www.yalco.kr/@git-github/3-5/
https://www.yalco.kr/@git-github/4-2/
문제점: 키체인 접근 앱에서 github.com을 찾을 수 없음
해결: 👉참조링크
1. github cli 설치: brew install gh
👉https(엔터)
👉 Y
2. GCM 설치: brew tap microsoft/git
👉 brew install --cask git-credential-manager-core
👉 맥북 로그인 password 입력
3. 키체인 접근 앱에서 github.com 더블클릭 👉 암호보기 체크 👉 맥북 로그인 password 입력 👉 복사해둔 토큰 입력
소스트리 설정: cmd + ,
👉 추가 👉 github, 베이직, (계정명), (토큰), https 👉 저장
협업할 팀원 추가: repository 생성 👉 settings 👉 collaborators 👉 add people
https 선택 👉 push ...(아래) 을 복사 👉 터미널 입력
git remote add origin (원격저장소 주소)
: 로컬의 Git 저장소에 원격 저장소로의 연결 추가(origin은 다른 걸로 수정 가능)git branch -M main
: 기본 브랜치명을 main으로git push -u origin main
: 로컬 저장소의 커밋 내역들 원격으로 push(업로드)
( -u 또는 --set-upstream : 현재 브랜치와 명시된 원격 브랜치 기본 연결)
원격 목록보기: git remote
자세히 보기: git remote -v
원격 지우기(로컬 프로젝트와의 연결만 없앰. GitHub의 레포지토리는 지워지지 않음)
: git remote remove (origin 등 원격 이름)
git 프로젝트 다운받기(협업): Code 👉 https copy 👉 vscode: Ctrl
+ Shift
+ `, paste
원격으로 커밋 밀어올리기: git push
원격으로 커밋 당겨오기: git pull
pull할 것이 있을 때 push하면?
push 해보기
push 할 것이 있을 시 pull 하는 두 가지 방법
유튜브 링크
git pull --no-rebase
👉 :wq
git pull --rebase
협업중 충돌 상황 해결하기
git pull --no-rebase
👉 선택, git add .
👉 git commit
👉 :wq
git pull --rebase
로컬의 내역 강제 push해보기(팀원과 합의 하에)
1. 로컬의 내역 충돌 전으로 reset
2. 원격에 강제 적용: git push --force
git branch (브랜치명)
git push -u origin (브랜치명)
git branch --all
git branch -a
git fetch
👉 확인: git branch -a
git switch -t origin/(브랜치명)
git push (원격 이름) --delete (원격의 브랜치명)