목차(클릭하세요)
0. 핵심 요약
① git 설치
② GitHub 접속 repository(저장소) 만들기
③ 로컬의 프로젝트파일과 깃허브 연결하기
참고로 GUI로 사용하는 방식과 CLI로 사용하는 방식이 있음
[GUI]방식으로 사용하기
1.
해당 레파지토리 사이트에서 키보드 .을 누르게 되면 .dev주소가 열림
•
GitHub 저장소의 코드를 웹 브라우저에서 직접 수정 가능(VS Code 웹 버전이라 생각하면 편함)
•
•
•
•
예를 들어 레파지토리 주소가
◦
https://github.com/roughkyo/test_AI 라면
◦
https://github.dev/roughkyo/test_AI 가 되는 방식임
2.
여기서 수정 후 commit + push 할수도 있음
1. Git설치
1.
git과 git hub의 개념, 차이
•
버전 관리를 가능하게 해주는 것이 ’git’이라는 프로그램
•
. git은 로컬(사용자 PC)에 있는 파일들에 변동사항이 생길 때마다 github라는 임의의 저장소에 업로드 시켜줌
•
git은 형상 관리(Configuration Management) 툴이라고 함
•
github는 git(=버젼관리 도구)으로 관리된 정보를 백업하는 저장소(일종의 웹하드)
공식 문서: https://git-scm.com/docs
a.
Git 설치방법 참고
b.
설치후 사용자 이름/이메일 등록(최초 1회)
•
•
git config --global user.email "이메일@abc.com"
2-1. git bash화면 복&붙 “단축키”
•
복사하기: Ctrl + Insert
•
붙여넣기: Shift + Insert
c.
등록된 사용자 확인
•
git config --list
•
•
git config --get user.email : 유저 이메일만 확인
•
공식 문서: https://git-scm.com/docs
2. 저장소 만들기
1.
레포지토리?
•
깃허브라는 저장공간 내 카테고리를 구분하는 하위 공간
•
보통 프로젝트 단위로 많이 생성
2.
레포짓 생성 후 해당 레포짓의 주소를 복사
•
레포짓 생성하기
•
생성된 레포짓 확인
•
레포짓 주소 복사: 하늘색 박스 안에 있는 주소(*저장소 주소)를 복사(나중에 필요)
3. 로컬의 프로젝트파일과 깃허브 연결하기
[vscode기준 설명]
1.
vscode 실행 후 terminal 탭 → new terminal을 클릭
2.
기초 git코드를 순서대로 실행(예시코드)
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/roughkyo/test_AI.git
git push -u origin main
Bash
복사
•
[깃 명령어 핵심설명]
◦
2-1.git init: 맨 처음 프로젝트를 올릴때(버전관리 시작)
▪
git init을 명령받은 순간부터 git은 변경사항을 추적할 준비 완료
▪
.git은 버전관리를 하는 로컬 저장소라고 생각
▪
현재 디렉토리를 Git 로컬 저장소로 초기화함(숨겨진 .git폴더 생성)
◦
2-2. git add README.md
▪
git add: 어떤 파일을 깃에 올릴지 함보자
▪
[Tip] git . 을 주로사용
▪
만약 git . 라고 하면 모든 파일을 올리게 됨(띄어쓰기 주의)
▪
이제 대기상태(=stage에 올라간 상태)가 된 것임
•
◦
2-3. git status: 현재 git 상태 확인하기
◦
2-4. git commit -m “first commit” : 나만의 버전(=히스토리)를 만드는 과정
▪
"first commit"이라는 메시지로 커밋(버전을 저장)
•
커밋 메시지 정의: 특정 작업 내역을 기록하는 설명 문구(메모)
▪
버전명(=히스토리명)은 한글도 사용가능
◦
2-5. git remote add origin https://github.com/roughkyo/test_AI.git
▪
원격 저장소(origin)를 GitHub의 URL과 연결
▪
여기서 origin은 git이 원격 저장소를 부르는 별칭 정도
▪
이후 연결고리를 확인할수도 있고, 생략할 수도 있고
◦
2-6. git remote -v : 연결고리 확인
◦
2-7. git branch -M main: 동기화
•
2020년 이후로 새 저장소를 만들면 기본 브랜치 이름은 main
[main] -----------A---B---C----------------------→
\
[feature/login] D---E
Bash
복사
[예시]
•
main은 정식 배포용
•
feature/login은 새 로그인 기능 개발용
•
실험이 끝나면 main에 merge해서 반영함
▪
현재 브랜치 이름을 main으로 강제 변경함
▪
기본 브랜치를 main으로 통일하는 관례를 따름
▪
만약 로컬 git의 기본 브랜치 이름도 main으로 만들놓으면 생략 가능
▪
로컬 git 브랜치 이름 변경
•
2-7-1. git config –global init.defaultBranch main
•
2-7-2. git config –get init.defaultBranch 으로 변경되었는지
확인
◦
2-8. git push -u origin main: 마스터로 보내기
▪
main 브랜치를 원격 저장소(origin)에 업로드(push)
▪
-u는 이후 push/pull 시 브랜치 연결 자동화 설정
◦
2-9. git pull: 원격 저장소의 내용을 로컬 컴퓨터로 다운로드 하기
[Tip] vsc에서 사용하기
[VSC에서 git bash 사용하는 방법]
1.
터미널에서 +버튼 옆 화살표 클릭하여 git bash 열기
[Tip] 클라우드 저장소의 프로젝파일 연결
[주의] 클라우드 드라이브의 경우 git init명령어를 안먹을 수 있음
1.
이럴 경우, 해당 폴더로 가서 git Bash here 실행후, git init 실행
2.
vscode의 소스제어로 가서 ’안전하지 않은 저장소 관리’를 클릭
4.pull과 commit, push의 의미
1.
pull
•
원격저장소의 업데이트 된 코드를 로컬 컴퓨터로 가져오기
•
원격 저장소에 업데이트 된 데이터를 가져오고 병합할 때 사용
2.
add
•
로컬 컴퓨터의 소스코드를 원격저장소로 보내도록 히스토리에 담기
3.
commit
•
로컬 컴퓨터의 히스토리를 원격저장소로 보낼 준비
4.
push
•
로컬 컴퓨터의 히스토리를 원격저장소로 보내기
5.로컬 저장소와 원격저장소의 상태
5-1.상태 확인 명령어
1.
status : 파일의 상태 확인
a.
Untracked(관리 대상이 아님) : 파일 생성 후 한번도git add하지 않은 상태
b.
Tracked(관리 대상임) : git이 관리하는 파일임을 의미
•
Unmodified : 최근의 커밋과 비교했을 때 바뀐 내용이 없는 상태
•
Modified : 최근 커밋과 비교했을 때 바뀐 내용이 있는 상태
•
Staged : 파일이 수정되고 나서 스테이지 공간에 올라와 있는 상태이며, git add 후의 상태
2.
diff : 변경사항 확인
3.
log: 커밋(commit) 히스토리 조회
•
git log –oneline –all –grahp : 그래프 형태로 히스토리 조회 가능
6.브렌치(branch)
1.
브렌치란?
•
A 작업이 다 끝난 뒤에 B 작업을 수행하는 경우 vs A작업도 하면서 B작업도 동시에 진행하는 경우
•
이런 경우는 A작업, B작업을 각각 별도 작업하여 합치는 방안이 필요
•
Git에서는 브렌치와 머지(merge)라는 명령으로 이것을 가능하게 함
[브렌치]는 독립적인 작업을 할 수 있는 공간
2.
기본 브렌치
•
로컬 git에서의 기본 브랜치를 main으로 설정하기 위한 방법
git config --global init.defaultBranch main
Bash
복사
•
GitHub은 main
•
git버전이 Git 2.35 이하라면?
저장소를 초기화할 때 로컬의 기본 브랜치가 master로 셋팅됨
•
따라서, git의 기본 브랜치를 main으로 변경하는 것이 편함!!
3.
이후 과정은 여기를 참고
•
https://paullabworkspace.notion.site/4-Branch-7552c2a8c2b340ce9622a8a6364dc47a
4.
브랜치 관련 에러 해결 방법
git push를 할 때, 아래와 같은 에러가 나는 경우
•
4-1. 기본 브랜치를 설정
git branch --set-upstream-to=origin/main main
Bash
복사
•
4-2. 로컬과 원격저장소의 브랜치명 통일
git config –global init.defaultBranch main
Bash
복사
7.포크(fork), clone
1.
원격저장소의 깃을 가져오기 위한 개념이 fork와 git clone
2.
git clone
•
원격 저장소의 코드를 컴퓨터에 받아올 수 있음
•
새로운 작업 폴더를 생성한 다음, 해당 폴더로 이동해서
git clone https://github.com/id/복사하고 싶은 깃 주소.git .
•
클론 시 점(.)을 찍는 이유는 현재 폴더에 클론 받기 위함
•
만약, 점(.)을 찍지 않을 경우 새 폴더를 생성
3.
fork
•
원본 저장소를 복사해 내 저장소에서 commit > push 할 수 있음
•
2-1. 깃허브에서 fork 클릭
•
2-2. 내 깃허브 레포지토리가 생성됨
•
2-3. 내 깃허브 레포지토리안의 깃 주소를 복사
•
2-4. 복사하고 싶은 폴더로 이동한 다음, 해당폴더에서 git bash 실행
git clone https://github.com/id/복사하고 싶은 깃 주소.git . 에) git
clone https://github.com/roughkyo/stopwar.git .
7-1.Pull Request
이 과정은 해당페이지에서 내용참고
https://paullabworkspace.notion.site/6-Pull-Request-fd958fd434fb41ea85d0a370654441ac
8.저장소에 무시할 파일 생성하기
1.
API키, 비밀번호 등은 절대 저장소에 올라가면 안됨
•
해당폴더에서 .gitignore 파일을 만듦
2.
.gitignore 자동 생성기 활용하기
•
https://www.toptal.com/developers/gitignore 로 접속
[참고 주소]
1.
Notion 링크 :
•
https://paullabworkspace.notion.site/GitHub-435ec8074bcf4353afb947f601a030df
•
단축 링크 : https://bit.ly/3vErAt7
2.
기초 설명:
•
https://spartacodingclub.kr/blog/how-to-start-github