Git/GitHub 정리
Git: 코드의 변경점을 기록, 버전을 관리해주는 도구 (형상 관리 도구)
🛠 소프트웨어의 변경사항을 체계적으로 추적 통제 하는 것
Git은 여러 사람이 동시에 코드를 작업할 때 변경 이력을 관리하고 충돌을 방지하는 버전 관리 시스템
필요한 이유
- 여러 사람이 같은 파일 수정시 누군가의 작업이 덮어쓰여질 수 있음
- 실수로 잘못된 코드 작성시 되돌리기
- 언제, 누가, 어떤 변경을 했는지 기록 필수
→ Git 사용시 코드의 모든 변경 내역을 기록하고 원하는 시점으로 되돌릴 수 있음
Github: 백업과 공유가 가능한 온라인 코드 저장소
☁️ Github로 백업, 공유, 협업 가능
👉 Git은 도구 / Github는 공유할 수 있는 장소
Mac에서 Git 설치하기
1. Terminal 에서 brew install git 작성 후 엔터
2. git -v 작성 후 엔터 → git 버전 확인
Git 관련 용어
1. Repository: git으로 관리하는 프로젝트 저장소
2. git commit: 프로젝트의 변경사항을 git 저장소에 저장
3. git push: commit된 파일을 원격 레포지토리에 반영
4. git pull: 레포지토리에 있는 코드를 가져오고 현재 내 로컬 환경에 자동으로 병합(merge)
Git Graph plug-in 설치
GitHub 가입 후 계정 생성
Git 사용자 정보 등록 (처음 한번만 하면 됨)
ㄴ 터미널 (또는 Git Bash, CMD)에서 아래 명령어 입력
- 깃허브 아이디 저장: git config --global user.name (github아이디) 작성 후 엔터
// 깃허브 아이디 저장 예시
git config --global user.name chungi
- 깃허브 이메일 저장: git config --global user.email (github 이메일) 작성 후 엔터
//깃허브 이메일 저장 예시
git config --global user.email chungiID@gmail.com
- 반영된 계정 정보 확인
// 반영된 계정 정보 확인
git config --list
프로젝트 폴더로 이동
cd ~/폴더명 작성 후 엔터
로컬 저장소 초기화
//로컬 저장소 초기화
git init
//원격 저장소 추가
git remote add origin https://github.com/사용자이름/저장소이름.git
파일 추가
git add .
Commit
- 로컬저장소에 작업 내용을 저장
git commit -m "initial commit"
//커밋할 때는 항상 "이 작업이 무엇인지" 설명하는 메시지 함께 작성
git push
- 로컬저장소에서 만든 커밋을 Github 같은 원격 저장소에 올리는 행위로
이렇게 해야 작업한 내용이 원격 서버에 저장되어 다른 사람도 볼 수 있고, 백업도 가능
- push를 해야 내 커밋이 깃허브 저장소에 반영됨
git push
403권한 거부 에러
- The requested URL returned error: 403 > Github 저장소에 접근 권한이 없어서 발생
1. HTTPS 인증 문제
- PAT(Personal Access Token) 인증만 지원 > 기존 비밀번호 대신 PAT 사용
- repo 권한 포함한 토큰 생성
- 이후 git 명령어 실행 시 비밀번호 대신 이 토큰 입력
2. 토큰 또는 인증 정보가 캐시되어 잘못된 인증 시도
- 로컬에 저장된 이전 자격증명 때문에 오류가 계속 발생할 수 있음
- macOS - Keychain Access 앱에서 Github 관련 자격증명삭제
- 터미널에서 자격증명 삭제
git credential-osxkeychain erase //입력 후 엔터
host=github.com //입력 후 엔터
protocol=https //입력 후 엔터
//빈 줄에서 한번 더 엔터
- 다시 push, clone 등을 할 때 사용자명과 패스워드 대신 토큰 입력!
3. 저장소 권한 확인
- 해당 저장소에 대해 읽기/쓰기 권한이 있는지 확인
- 권한이 없으면 소유자에게 권한 요청 필요
4. 자격증명 지운 후 원격 저장소 권한 인증
git push -u origin master //또는 git push -u origin main
- 명령어 입력 후, 사용자 이름(Github ID) / Personal Access Token(PAT) 입력
사용/업데이트
//새로운 프로젝트 시작
#현재 폴더를 git 저장소로 만들기
git init
#기존 Github 저장소를 내 컴퓨터로 복사
git clone [원격저장소 URL]
//파일 변경 사항 저장하기
#변경된 모든 파일을 커밋 준비 상태로 추가
git add .
#해당 파일만 커밋 준비 상태로 추가 (스테이지에 올림)
git add 파일명
#변경 사항을 기록 (메시지는 수정 내용을 간단히 설명)
git commit -m "변경 내용"
//Github와 동기화하기
#로컬 커밋을 원격 저장소(Github)로 보냄
git push
#변경 사항을 원격 저장소로 업로드
git push origin main # (또는 master)
#원격 저장소에서 최신 변경 사항 가져오기
git pull origin main # (또는 master)
//브랜치(새로운 작업 공간 만들기)
#새로운 브랜치 만들기
git branch [브랜치명]
#특정 브랜치로 이동
git checkout [브랜치명]
#브랜치 목록 확인
git branch