본문 바로가기
💻CODING/etc.

git, github 사용법 (ft. 깃허브, commit, push, pull 버전 관리)

by 코딩하는 갓디노 2021. 6. 13.

git, github 사용방법

 

git, github를 이용한 프로젝트 
버전관리 방법입니다. 

 

- 목차 -


git과 github의 차이점

  • git은 로컬(나의 컴퓨터)에서 관리되는 버전 관리 시스템
  • github는저장소를 깃허브에서 제공해주는 클라우드 서버(원격 저장소) 방식으로 관리되는 버전 관리 시스템
  • 팀을 통한 협업이 필요할 경우,  소스 공유가 필요하거나, 원격 저장소에 관리하여 로컬이외 다른 곳에서 사용하기를 원한다면 github에 업로드를 합니다. 
  • 따라서 git으로 먼저 로컬 저장소에 프로젝트 코드를 저장한 뒤 -> commit
  • 이 내용을 github에 업로드하는 형식으로 관리합니다. -> push
  • github에 있는 컨텐츠를 내려받아 사용합니다. -> pull

깃 로컬 버전 관리 방법

git 설치 유무 확인

git이 이미 설치되었는지 설치된 버전 정보 확인

git --version

 

git 버전 관리 선언

git init

 

사용자 정보 등록

커밋(버전 생성)을 위한 사용자 정보 등록, 처음에 한 번만 입력하면 됩니다. 

//개행문자 설정(mac용, window용 다름)
git config --global core.autocrlf true //윈도우 사용자
git config --global core.autocrlf input //맥 사용자

git config --global user.name 'github 사용자 이름'
git config --global user.email 'github 등록된 이메일 주소'
git config --global --list //내가 등록한 정보 확인, Q키를 눌러서 종료

 


git 버전 관리 등록(로컬: 사용자 컴퓨터)

현재 프로젝트에서 변경사항 추척(버전 관리)을 시작

git status //프로젝트의 버전 관리 상태 확인, 빨간 글씨로 프로젝트 구조 출력됨
git add . //add 한칸 띄고 마침표 주의, 모든 파일의 변경사항을 추적하도록 지정
git status //초록색으로 프로젝트 구조 출력됨 
git commit -m '메시지' //메시지와 함께 버전을 생성
git log //commit 한 버전 확인


github repository 버전 관리 업로드


여기까지는 현재 로컬에만 버전 관리 등록이 된 상태이고,
깃허브 서비스에 프로젝트를 업로드 시켜야 합니다. 

 

깃허브 레포지토리(리포지토리) 생성

  • 깃허브 로그인
  • Your repositories 선택
  • 프로젝트 이름, 설명 삽입 후, github repository 생성

 

깃허브 원격저장소 저장소에 업로드

  • github repository 원격 주소 복사 후, vscode와 같은 웹에디터, 터미널에서 아래의 코드를 입력합니다.
  • remote는 원격이라는 뜻이고, 깃허브 저장소를 의미합니다.
  • 원격 저장소의 주소 이름을 통상적으로 origin을 사용합니다. 
  • git push를 이용하여 원격 저장소 master라는 branch에 업로드(push) 합니다.
//origin이란 별칭으로 원격 저장소를 연결
git remote add origin https://github.com/.../react-table.git(원격주소)
//origin 원격 저장소로 버전 내역 전송
git push origin master

 

깃허브 저장소에 업로드 완료

 

fatal: remote origin already exists 오류

git remote add origin 원격주소 입력시 fatal: remote origin already exists.(error: origin 리모트가 이미 있습니다.)의 errorr 발생 시에는 remote를 삭제하고 다시 add시켜 줍니다.

아래의 코드를 실행하고 다시 git remote add ..를 실행하면 잘 작동합니다.

git remote rm origin //기존의 remote 삭제

 git, github 수정사항 버전 관리

소스를 수정한 후 로컬에서 새로운 버전을 생성한 후, 깃허브에 업로드, 즉 push 하는 방법입니다.

 

깃허브 수정사항 버전 관리 예제

문구 변경을 위해 아래와 같이 고객 정보 리스트에서 고객 정보 목록으로 수정하였습니다.

 

  • 터미널을 열어 아래와 같이 수정사항을 업로드 합니다. 
  • commit은 버전을 의미합니다. git commit -m '수정사항 메시지"를 이용하여 개인 로컬 환경에 버전을 생성합니다.
  • git push를 이용해 원격저장소로 업로드합니다.
  • origin은 원격저장소의 이름을 의미하고, master는 브랜치입니다.
--------------로컬 환경 수정사항 버전 생성----------------------
git status //수정사항 빨간 글자로 보임
git add . //수정사항 업로드
git status //수정사항 초록색 글자로 보임
git commit -m '메시지' //수정사항 버전 생성 메시지 작성
git log //commit 내역 확인
q //exit
--------------깃허브 원격저장소에 업로드----------------------
git push origin master

 

깃허브에서 변경 사항이 반영된 것을 확인할 수 있습니다. 


git, github branch 생성, 병합

팀 작업을 할 때 master가 아닌 별도의 branch를 만들어 버전 관리를 할 때 사용합니다. 
즉, 별도의 branch를 만들어 작업한 후 나중에 master로 merge라는 합치는 작업을 합니다. 

 

branch 생성, 접근

git brach //프로젝트에서 관리되고 있는 branch 목록, 처음은 master만 나와있음
git branch branch 이름 //새로운 branch 생성
git branch //새로운 branch 추가된 목록
git checkout branch 이름 //새로운 branch로 접속
git checkout master //master로 다시 이동(원할 경우)

 

branch 코드 수정 push

git status  //git 상태
git add . //수정한 코드 추적, 반영 준비
git stautus  //git 상태
git commit -m '...' //버전 생성
git push origin branch 이름 //github에 push

 

branch 병합(pull requests)

github 사이트에가서 작업합니다. signin이라는 branch를 병합할 경우, 아래와 작업을 거쳐 merged가 완료됩니다. 

 

git branch 삭제

branch 삭제를 원할 경우, brach가 아닌, master로 체크아웃 한 후 가능합니다.

 git branch -d branch 이름
 git branch //리스트에 없어졌는지 확인

git clone

git clone은 서버의 프로젝트를 다운로드 하는 명령어이고, 새로운 환경에서 github에 업로드한 프로젝트를 복제할 경우사용 합니다.

깃허브에 로그인하여 your repositories로 이동하여 해당 프로젝트로 접근하여 clone box에 주소를 copy 합니다. 

 

다운로드 할 폴더 경로 접근

터미널에서 프로젝트를 다운로드를 원하는 폴더의 위치로 접근합니다. 
터미널에서 맥은 ls, 윈도우는 cd(change directory)를 입력하여 경로를 접근합니다.
그 폴더 위치에서 맥은 ls, 윈도우는 dir을 입력하면 해당 폴더 내 위치한 폴더 목록이 나옵니다.

여기서 cd .. 를 입력시 한단계 밖으로 나감
tab 키를 누르면 자동완성 기능이 적용됩니다. 


git clone

해당 폴더 경로에 위치한 후 github에서 복사한 url 코드를 삽입합니다. 

git clone {URL}

 

git  특정 브랜치만 clone

git clone -b {branch 이름} --single-branch {url}

 

터미널에서 vscode에 해당 프로젝트 띄우기

해당 폴더 접근 후 아래 코드를 입력합니다. 

code . -r 을 입력할 경우, 기존의 창이 있을 경우, 추가 창이 띄우는 것이 아니고, 현재창 내용이 해당 프로젝트로 바뀌게 됩니다. 

code . //vs code 새창에서 열기
code . -r //vs code 현재창에서 열기

 


reset(push 되돌리기)

바로 이전 버전으로 되돌리기

git reset --hard HEAD~1
git log //버전 상태 확인

 

2개의 버전 이전으로 되돌리기

git reset --hard HEAD~2
git log //버전 상태 확인

 

원하는 시점으로 되돌리기

git reset --hard [원하는 시점의 커밋 해시 값]

 

강제로 해당 주소로 되돌리기

git push -f

 

잘못 되돌렸을 경우, 원상복귀

git reset --hard ORIG_HEAD

git pull

git push는 로컬 저장소의 내용을 원격저장소로 보내지만,
git pull은 원격저장소의 내용을 로컬로 가져옵니다. 

작업자가 많을 경우, 자주 로컬 컴퓨터로 원격저장소에 마지막으로 push된 내용을 가져옵니다. 

git pull origin master //원격저장소의 내용을 당겨옴
반응형

댓글