basic/tutorial

Github 기본

NOG 2024. 9. 25. 06:22

Git 과 Github

 

1)Git 
로컬에서 관리되는 버전 관리 시스템 (시간에 따라 파일의 변경사항을 추적하고 기록) 
- 로컬 저장소를 사용하기 때문에, 다른 사람이 나의 작업 내용을 알 수 없음 
 

2)Github
- 개인의 로컬 서버 밖에서 Git 버전 프로젝트를 공유하고 기록하는 온라인 데이터 베이스 
- 원격저장소(서버에 있는 저장)를 깃허브에서 제공해주는 클라우드 서버를 이용
- 클라우드 서비스기 때문에 다른 사람들과 협업 시 소스코드 공유가 가능하다. 

 

 

Github  기본 용어

 

Repository

프로젝트가 존재하는 저장 공간

 

Branch

master branch에서 개발자나 기점 별로 새로운 branch를 만들어서 분업하는 기능 혹은 공간

서로 다른 branch에 영향을 주지 않아 Repo에서 독립적인 작업이 가능하다.

틈틈히 merge해주는 게 좋다.

 

 

/*

특정 branch나 특정 commit 으로 이동 시 git checkout을 사용한다.

*/

 

 

 

Github 프로세스

 

/*

Staginng Area 는 커밋할 변경사항을 선택하고 준비하는 임시 공간

예를 들어 로그인기능을 추가한 파일과 버그를 수정한 파일 2개가 있을 때

필요한 파일만 Staging Area에 올려 선택적으로 커밋할 수 있음.

별도의 커밋으로 기록되어 이후에 디버깅이나 코드 리뷰가 쉬워진다.

*/

 

 

add

변경사항(새 파일, 파일에서의 수정내용) 을 추가하는 것

git add {file name}

git add . => 해당 디렉토리 내의 변경사항을 모두 추가할 수 있다. (많은 변경사항 추가 시 편리)

 

 

commit

변경사항을 로컬에 저장한다. 원격 저장소에는 아직 반영되지 않는다. (=> push 해야 원격에 반영.)

git commit -m "{message}"  커밋에 대한 부가 설명 적을 수 있음.

 

commit 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

https://velog.io/@m2nja201/Git-Hub-%EC%99%95-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95-1-%EC%A0%80%EC%9E%A5%EC%86%8C-%EB%A7%8C%EB%93%A4%EA%B8%B0%ED%8E%B8

 

https://www.lainyzine.com/ko/article/how-to-create-a-new-remote-git-repository-on-github/#readme-%ED%8C%8C%EC%9D%BC-%EC%B6%94%EA%B0%80

 

git 설치

https://resultofeffort.tistory.com/98

'basic > tutorial' 카테고리의 다른 글

Python Flask 웹 서버 실행  (0) 2024.08.26