K_blueprint

Git과 Github에 대해서 본문

도구 & 정보 정리

Git과 Github에 대해서

GODAGO 2023. 11. 9. 09:19
728x90
반응형

깃(Git)이란?

 

- '분산 버전 관리 시스템'으로 컴퓨터 파일의 변경 사항을 추적하고 여러 명의 사용자들 간에 파일에 대한 작업을 조율하는데 사용되는 무료 소프트웨어(버전 관리를 위한 소프트웨어)

- 즉, 주로 여러 명의 개발자가 하나의 소프트웨어 개발 프로젝트에 참여할 때 소스코드를 관리하는데 주로 사용된다.(체계적인 개발이 가능하다.) = '병렬 개발' 가능

 

- '버전 관리'가 필요한 이유는 버전이 업데이트 될 때 마다 효율적으로, 알아보기 쉽게 하기 위해서이며, 팀원이 여러 명인 경우 파일을 합친다고 했을 때 버전관리를 통해 각 파트별로 만든 파일을 본 버전에 합치는 과정을 돕기 위해 존재하는 시스템이다.(내가 원하는 시점(버전)으로 이동할 수 있게 해준다.

 

- 장점 : 인터넷이 연결되지 않은 곳에서도 개발 진행 가능 / 중앙 저장소가 삭제되어도 분산 버전 관리이기 때문에 원상복구 가능 / 각각의 개발자가 Branch에서 개발한 뒤, 본 프로그램에 합치는 merge방식을 통한 병렬 개발이 가능

 

- Git은 여러명이 동시에 작업하는 병렬 작업 방식을 지원한다. 여러 명이 동시에 작업을 하다보면 개발자 1과 개발자 2가 동시에 같은 코드를 작업하여 충돌하는 문제가 발생할 수도 있는데 GITCommit을 해서 코드를 올렸을 때 자연스럽게 version이 생성된다. 즉 문제 발생시 해당 시점으로 언제든지 돌아갈 수 있다.

 

(깃의 사용을 도와주는 GUI 프로그램인 '소스트리'라는 것이 있다.)

- 버튼을 클릭하는 방식으로 필요한 명령을 실행할 수 있게 해주며, Git의 핵심인 Commit, push, branch 등을 눈으로 쉽게 확인할 수 있게 해준다.

- 소스트리로 커밋을 만들고 푸시하고 그 커밋을 원격 저장소에 푸시하는 소스트리를 이용한 버전 관리가 가능하다.

 

+ git gui : Graphical User Interface 의 약자로 초보자가 명령이나 작업을 이해하기 쉽도록 프로젝트 히스토리를 시각화하여 도와주는 도구(ex.github Desktop, Source Tree )

 

 

● 깃 내에서 많이 사용되는 명령어 및 의미

  • git init : 깃 저장소를 초기화한다. (저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반 폴더이다. 이것을 입력한 후에야 추가적인 깃 명령어들을 줄 수 있다.)
  • git add : 이 명령이 저장소에 새 파일들을 추가하진 않는다. 대신, 깃이 파일들을 지켜보게 한다.(파일을 추가하면, 깃의 저장소 스냅샷에 포함된다.)
  • git commit : 깃의 의미있는 수정 작업이 끝났을 때 마침을 알리는 작업이다. 보통 “git commit m “Message hear.” 형식으로 사용한다. -m은 명령어의 다음 부분을 메세지로 남긴다는 뜻이다. 커밋을 한 내용들은 이제 깃이 추적하며 버전관리를 할 수 있도록 도와준다. 깃은 반영된 소스코드, 리소스 등을 24시간 내내 추적해준다.
  • git log : 커밋 내역을 확인해보고 싶을 때 사용하는 명령어이다. 이를 이용해서 이전 단계로 되돌리거나 버전관리를 할 수 있다.
  • git status : git 워킹 트리의 상태를 보는 명령(워킹 트리가 아닌 폴더에서 실행하면 에러 발생)
  • git diff : 커밋된 최근 버전과 작업 폴더의 수정 파일 사이의 차이를 출력, 작업 트리에 있는 파일과 스테이지에 있는 파일을 비교하거나, 스테이지에 있는 파일과 저장소에 있는 최신 커밋을 비교해서 수정한 파일을 커밋하기 전에 최종적으로 검토할 수 있다.
  • git rm cached : git rm <fileName>을 이용하면 로컬, 원격저장소 모두 파일이 바로 삭제되고--cached 옵션을 사용하면 로컬에는 파일이 남아있지만 commit하면 원격저장소에서 해당 파일이 삭제가 된다.(만일 원격저장소에 없는 새로만든 파일이라면 단순히 untracked 처리가 된다.)
  • .git ignore : ignore되는 파일을 만들어서 모듈로 관리하는 것이 효율적이다.(파일 제외)

 

 

 깃 허브(Github)란?

 

- Git을 언제나 어디서나 사용할 수 있도록 만들어 주는 것(Git으로 원격 전송된 프로젝트들이 저장되는 공간을 제공)

 

- 웹 기반 플랫폼으로 Git이라는 버전 관리 시스템을 사용해 소프트웨어 프로젝트의 변경 사항을 관리하고 추적하며 개발자에게 다양한 기능과 도구를 제공한다.

 

- 깃으로 관리하는 프로젝트를 지원하는 사이트, 깃을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스

 

- 깃의 히스토리(기록)을 가져와서 깃허브 웹사이트(클라우드)에 올릴 수 있고 변경된 히스토리를 확인할 수 있다.

 

- 많은 오픈 소스들을 열람할 수 있다.

 

 

● 깃 허브 내에서 많이 사용되는 기본 용어 정리

  • Repository(저장소) : 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장, 작업자가 변경한 모든 히스토리를 확인할 수 있다.
  • Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업
  • Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.
  • Branch : 가지 또는 분기점, 작업을 할 때에 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을 때 Merge를 하여 작업을 한다.
  • Push : 추가, 변경한 내용을 원격 저장소에 업로드하는 작업
  • Pull request : 깃허브 협업의 핵심, 풀 리퀘를 통해 자신의 변경사항을 요청하면, 프로젝트 소유자의 컨펌을 통해 그들의 branchpullrequestmerge할 수 있다.(branch의 차이점을 볼 수 있다.)

 

● 깃 허브 웹 호스팅의 정의 및 방법

- 정의 : 호스팅이란 웹사이트를 올려놀을 인터넷 상의 공간을 빌려주는 서비스, 웹 서버의 역할을 하는 컴퓨터는 24시간 가동되어야 하기 때문에 웹 서버를 대행해주는 웹 호스팅 업체들로부터 웹 호스팅 서비스를 받는다.

 

- 일반적 방법은 아래와 같다.

  1. 저장소(Repository) 생성
  2. 애드파일의 업로드파일을 통해 html파일 생성
  3. 설정 탭의 pages에서 branch를 메인으로 만들고 save
  4. 액션이 완료되면 발행된 호스팅 주소 확인
  5. 호스팅 주소/파일명.html로 접속시 호스팅된 웹사이트 확인

 

( 정 리 )

 

- 은 분산 버전 관리 시스템이고, 깃허브는 깃으로 관리하는 프로젝트를 업로드하고 관리하는 클라우드 기반 호스팅 서비스이다.

 

● Netlify

- 정의 : WebProject를 만들고 배포할 때 더욱 쉽게 할 수 있도록 도와주는 사이트, 보통 Project를 배포하고 여러 가지 변경사항이 존재할 때 그 변경사항들을 관리하는 일이 쉽지 않은데 Netlify는 쉽게 배포를 도와주면서 변경사항도 자동으로 적용해주어 웹사이트의 유지보수도 용이하게 도와준다.(정적 컨텐츠를 호스팅해주는 웹서비스)

728x90
반응형

'도구 & 정보 정리' 카테고리의 다른 글

Tomcat  (0) 2023.11.14
NginX & Apache  (0) 2023.11.14
Web Server & Web Application Server(WAS)  (0) 2023.11.12
Wordpress(워드 프레스란?)  (0) 2023.11.12
프로토타이핑 툴 소개(Figma & 카카오 오븐)  (0) 2023.11.11