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 commitiESC:q:q!:wqkjgit commit -m "FIRST COMMIT"git log :q(예제) FIRST COMMIT입력, 저장 후 종료


git statusgit diffk / j:q
git add . & git statusgit commit -m "Replace Lions with Leopards"git add . 없이 바로 사용
(예제) 결과:

: 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다.

git loggit 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 --abortgit add . 👉 git commit 👉 :wq

git rebase --abortgit add . 👉 git rebase --continue 반복 👉 :wqgit 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 --allgit branch -agit fetch 👉 확인: git branch -agit switch -t origin/(브랜치명)git push (원격 이름) --delete (원격의 브랜치명)