IT

[git] 깃허브 사용법

e냥냥 2023. 1. 11. 14:43
728x90

자료를 깃허브에 업로드하여 관리해보고자 사용해보았으며 업무 특성상 자주 사용할 것 같진 않지만 나중에 다시 참고하기 위하여 정리해 보았습니다. 

 

 

1. Git(깃) 이란?

로컬에서 관리되는 버전 관리 시스템으로 원격저장소(Remote Repository)에 영구적인 백업과 다양한 협업이 가능하도록 지원하는 기능을 가리킨다. 

 

git의 대표적인 서비스를 지원하는 서비스로 github와 gitlab이 있다. 

 

git hub vs git lab

클라우드 방식으로 관리되는 무로 시스템으로 대신 자신의 소스 코드가 오픈되어 수많은 사람들이 보며 활용 가능하고, 서로 다른 위치에 있는 개발자와 함께 작업할 수 있도록 하여 프로그래밍을 더욱 확산시켜주는 환경으로 자리하고 있다. 

 

깃랩은 깃허브와 가장 큰 차이점은 데브옵스 요소에 있다. 기업에서 보안성을 중시하는 프로그램 코드를 올려 함께 협업하는 툴로 애요하므로 사용자가 기업들이 되며, 자신의 서버에 설치하여 서버 내 프라이빗한 git 원격 저장소를 만들 수 있는 서비스이다. 

 

2. Git(깃) 구조

git은 자신의 local에 있는 소스 코드를 관리할 때도 사용하고, Remote하여 gitlab이나 github 계정에 할당된 서버 공간에 저장하며 헙업하기 위해서도 사용한다. 

출처 just do it.log

 

3. Git Bash 명령어

   1) 최초설정(필수) - 저장소
   
   git init
  • 저장소로 할당할 폴더에 git을 사용할 것을 알림
  • git init을 입력하면 master branch가 생성되고 git bash 현재 폴더명에 branch 이름(master)이 추가됨
  • master가 보인다면(혹은 다른 branch이름이 보인다면) 해당 폴더는 git 저장소가 설정된 폴더임
 
 
   2) 원격 저장소 연결
     
   git remote add origin url주소
  • 원격 저장소 삭제 git remote rm origin
  • 연결 설정 확인 git remote -v

 

 

   3) Github에서 저장소 내려받기
     
   git clone url주소
  • clone을 하고나면 저장소 이름으로 하위폴더가 생성되고 원격 저장소의 모든 파일을 그대로 가져와 로컬 저장소의 내용과 동일해짐
  • git clone은 git init의 효과까지 있음
  • 저장소 안에 들어가면 폴더 주소 오른쪽에 branch이름(master)이 표시됨
  • git log --oneline 옵션을 붙이면 한줄에 한커밋씩 보여줌
   
 
   git fetch
  • 협업하다보면 원격 저장소를 클론한 다른 사용자가 코드를 먼저 push했었고 본인이 다시 push 한다면 에러가 발생함
  • 로컬 저장소와 합쳐지진 않으므로 확인 후 병합하는 과정을 거쳐야함
  • 혼자 작업하는 경우 fetch와 아래 pull을 사용할 일이 거의 없음
   
 
   git pull origin master
  • 가져온 변경사항을 현재 브랜치와 병합하려면 pull 명령어 사용(git getch + git merge)
  • 기존 작업했던 내용은 유지하면서 최신 코드로 업데이트할 수 있음
  • 기존 작업에 대해 commit을 미리 해두고 pull을 수행해야 에러가 발생하지 않음
 
 
   4) 파일 커밋하기
   
   git add test.txt
  • test.txt 파일을 commit하기 위해 추가하는 작업
  • add 뒤에 .을 붙이면 변경된 전체 파일을 추가한다는 의미
  • add를 취소 하고 싶은 경우 git rm --cached test.txt 
     
 
   git status
  • add 명령어가 잘 적용되었는지 확인 할 수 있음
   
 
   git commit -m "커밋 메세지"
  • 변경 사항을 확정하는 작업으로 -m 뒤에 커밋 메세지로 변경 내용을 적음
  • 커밋 메세지를 잘못 작성하여 수정할 경우 git commit --amend -m "수정된메세지"

 

   5) 로그 확인하기(필수아님)
     
    git log
  • 가장 최근 commit 로그를 확인 할 수 있고, 각 커밋을 식별할 수 있는 커밋 해쉬값이 나오고, 작성자와 작성일자, 변경내용등을 확인할 수 있음

   

   git show

  • 가장 최근 commit의 로그와 변경사항을 같이 보여줌
  • 특정 커밋의 변경 사항을 보고 싶다면 커밋 해쉬로 지정 git show commit Id
 
 
    6) 브랜치
     
   git branch
  • 현재 하고 있는 작업과 성격이 다른 독립적인 작업을 할 때 사용
  • A 기능을 만들다가 B기능을 만들어야 한다면 브랜치를 새로 만들어 B를 개발하는 방식
  • git branch로 브랜치 목록 확인(기본적으로 master 생성)
 
 
   git branch feature
  • feature라는 이름의 브랜치 생성
  • git branch 명령어를 통해 생성된 것을 확인
 
 
   git checkout feature
  • 기본적으로 master 브랜치에서 다른 feature 브랜치로 이동할 경우 checkout 사용
 
 
   git merge feature
  • feature 브랜치에서 개발하고 커밋을 한 후 다시 원래 브랜치인 master에 반영함
  • merge가 성공하면 master 브랜치에서도 feature 브랜치에서 수정한 내용을 볼 수 있음
 

 

    7) 원격저장소에 업로드
   
   git push 브랜치이름 
  • 로컬 저장소에서 커밋 한 내용을 원격 저장소로 업로드
 
 
    8) 원격저장소 여러개 관리
   
   git remote -v
  • 원격 저장소 목록 확인 가능

   

 

   git remote add [remote_name] [remote_url주소]

  • 하나의 git 저장소는 다수의 원격 git 저장소를 등록할 수 있음
  • 일반적으로 원격 저장소의 이름으로 origin을 사용
   
 
   git remote add upstream url 주소
  • upstream이란 별칭으로 두번째 원격저장소를 추가
  • 원격 저장소에 각각 push할 수 있음
    • git push origin 브랜치명
    • git push upstream  브랜치명
  • upstream이 아닌 origin 하나로 두 원격 저장소를 다 add 한다면 git push origin master로 한번에 업로드 가능
  • upstream을 사용하는 것을 권함
   
 
   git remote rename origin destination
  • orgin 이름을 destination으로 변경

 

 

 

 

 

 

 

 

참고자료

방구의 개발냄새

just do it.log

velog()

 

 

728x90
loading