Git 과 Github
1)Git
- 로컬에서 관리되는 버전 관리 시스템 (시간에 따라 파일의 변경사항을 추적하고 기록)
- 로컬 저장소를 사용하기 때문에, 다른 사람이 나의 작업 내용을 알 수 없음
2)Github
- 개인의 로컬 서버 밖에서 Git 버전 프로젝트를 공유하고 기록하는 온라인 데이터 베이스
- 원격저장소(서버에 있는 저장)를 깃허브에서 제공해주는 클라우드 서버를 이용
- 클라우드 서비스기 때문에 다른 사람들과 협업 시 소스코드 공유가 가능하다.
Github 기본 용어
Repository
프로젝트가 존재하는 저장 공간
Branch
master branch에서 각 개발자나 기점 별로 새로운 branch를 만들어서 분업하는 기능 혹은 공간
서로 다른 branch에 영향을 주지 않아 Repo에서 독립적인 작업이 가능하다.
틈틈히 merge해주는 게 좋다.
/*
특정 branch나 특정 commit 으로 이동 시 git checkout을 사용한다.
*/
/*
Staginng Area 는 커밋할 변경사항을 선택하고 준비하는 임시 공간
예를 들어 로그인기능을 추가한 파일과 버그를 수정한 파일 2개가 있을 때
필요한 파일만 Staging Area에 올려 선택적으로 커밋할 수 있음.
별도의 커밋으로 기록되어 이후에 디버깅이나 코드 리뷰가 쉬워진다.
*/
add
변경사항(새 파일, 파일에서의 수정내용) 을 추가하는 것
git add {file name}
git add . => 해당 디렉토리 내의 변경사항을 모두 추가할 수 있다. (많은 변경사항 추가 시 편리)
commit
변경사항을 로컬에 저장한다. 원격 저장소에는 아직 반영되지 않는다. (=> push 해야 원격에 반영.)
git commit -m "{message}" 커밋에 대한 부가 설명 적을 수 있음.
Push ( Local - > Remote )
Commit한 변경사항을 원격 저장소에 저장, 업로드
원격 저장소의 내용을 로컬저장소에서 끌어오는 것
git push origin {branch_name}
Pull ( Remote - > Local)
원격 저장소에서 변경된 내용을 로컬 저장소로 가져오는 것
최신 버전으로 덮어 쓰는 것 이 과정에서 merge도 자동적으로 된다.
( Pull = 1. fetch + 2. merge => 1. 변경 사항 only 가져오고 2. 가져온 것을 로컬 저장소에 통합적용. )
작업을 뒤죽박죽 하면 충돌 일어날 가능성이 크다.
git pull {원격저장소명} {branch_name}
/*
git fetch는 원격 레포에서 커밋 혹은 브랜치 같은 최신 데이터를 가져올 뿐 로컬 브랜치에는 적용하지 않아 로컬 브랜치와 원격 리포지토리 상태를 비교할 수 있다.
push의 경우 개인 저장소에서의 사용법이다.
*/
Github Repository 만들기
1) Git 을 먼저 다운로드 https://git-scm.com/downloads
2) Create repository
Public :저장소 공개 (다른 사람 해당 저장소 접근 가능)
Private : 저장소 비공개 ( 본인만 해당 저장소 접근 가능)
Add a README file: 프로젝트를 설명하는 문서인 추가 정보(README) 파일을 추가
Add .gitignore: GitHub에 체크 인하지 않으려는 파일을 무시하도록 Git을 구성
Choose a license: license가 있다면 License 칸을 체크
Github 사용법
# 해당 폴더 (로컬 저장소)의 git 초기화 (필수)
1. git init
# git remote add <remote-name : 원격 저장소 별칭> <git address : 레퍼지토리 주소> => git remote add origin 뒤에 복사한 링크 넣기
2. git remote add origin https://github.com/{nickname}/testRepo.git
#참고 : 연결된 원격 저장소 확인
git remote --verbose
#참고 : 원격저장소 이름 변경
git remote rename <old-remote-name> <new-remote-name>
#참고 : 원격 연결 삭제
git remote remove <remote-name>
#한번에 staging area에 올린다.
3. git add .
git add --all
# 참고 : staging area에 파일 올리기
git add <filename>
# 참고 : 특정 디렉토리 안에 있는 문서나 py파일만 올리기
git add /new/*
git add *.py
# 참고 : 한 파일 내에서 수정 사항만 준비 영역에 넣고 싶으면 입력 후 옵션 선택
git add --patch git_test.ipynb
# staging area에 있는 파일 commit하기, 메세지는 넣고 싶은 메세지 됨.
4. git commit -m "first commit"
# 참고 : 커밋 메세지 수정하고 싶다
git commit --amend
//i를 눌러 수정한 후, ESC (에디터 모드에서 명령 모드로 변경) -> :wq (저장 및 종료 모드 입력) -> Enter순으로 클릭
# commit한 파일 push에서 remote repo로 보내기 git push <remote_name> <branch_name>
5. git push -u origin main // -u는 로컬 브랜치(main)과 원격 origin/main 연결,즉 입력한 후엔 git push만 해도 올라감
# 참고 : 다른 사람의 코드를 로컬로 가져오는 Clone
git clone <git-address>
# 참고 : 원격 저장소의 수정사항을 로컬로 가져오기 Pull & Fetch
git pull <remote_name> <branch_name>
// fetch 수행 후 Pull 실행 시 더욱 안전하다. Fetch는 원격 저장소에 변경사항이 있는지 확인만 하고, 변경된 데이터를 로컬 Git에 실제로 가져오지는 않음
참고
https://sseozytank.tistory.com/41
git 설치
'basic > tutorial' 카테고리의 다른 글
Python Flask 웹 서버 실행 (0) | 2024.08.26 |
---|