웹개발기초

[웹 개발 기초] Git, Git Hub란?

코딩하는 공부방 2022. 6. 13. 15:46

개발자의 필수인 Git, Git Hub에 대해서 알아볼 건데요

저는 혼자서 프로젝트를 할 때도 Git, Git Hub를 활용을 하여서 

개발을 합니다.

그리고 프로젝트를 팀원들과 함께 할 때도 Organization 화 해서

협업을 같이 합니다.

오늘은 간단하게 Git, Git Hub의 개념과 사용방법에 대해서

간단하게 설명하도록 하겠습니다.


여러분들은 친구들하고 같이 보고서를 작성할 때 위에 같이 보고서를 작성을 해본 적이 있나요. 위에 경우에 비슷하게 앞에 수정한 날짜를 앞에 붙어주는 방식이 있습니다. 하지만 매번 복사하는 일은 번거롭기도 하고 실수할 가능성도 많습니다.

 그리고 위에 그림처럼 특별한 규칙 없이 마음대로 이름을 붙어놓는 경우 어느 파일이 최신인지, 또 파일의 어떤 부분이 변경된 것인지 파악하기 어렵습니다.

 바로 개발에서도 이런 문제를 해결하기 위해 만들어지는 것이 Git과 같은 버전 관리 시스템입니다.

Git 이란?

리누스 토발즈(똑똑한 사람)이 2005년에 만든 분산 버전 관리 시스템입니다. 수많은 회사에서 수많은 소스가 GIt으로 관리되고 개발자라면 반드시 알아야 하는 기술 중에 하나입니다.

Git은 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료, 공개 소프트웨어이다. 형상 관리 도구를 사용하면 변경을 쉽게 되돌릴 수 있다. 소스코드를 과거의 특정 시점으로 되돌리거나, 특정 시점의 변경 사항을 취소하거나, 두 버전의 소스 코드를 비교하는 등의 일이 가능하다.

SVN보다 여러 장점이 있어 SVN을 쓰던 개발 조직들은 하나둘씩 Git으로 갈아타고 있다.

 

SVN과 Git 차이점

  • Git이 SVN과 다른 점은 분산형 관리 시스템이라는 것이다.
  • SVN : 중앙 서버에 소스코드와 히스토리를 저장하는 중앙 집중식 코드 관리 방식
  • Git : 소스코드를 여러 개발 PC와 저장소에 분산해서 저장
    그렇기 때문에 중앙 서버에 장애가 발생해도 로컬 저장소에 커밋을 할 수 있으며, 로컬 저장소들을 이용하여 중앙 저장소의 복원도 가능하다.
  • 사본을 로컬에서 관리하기 때문에 Git이 SVN에 비해 훨씬 빠르다.(SVN은 변경 로그 하나 보는 것도 인터넷을 경유해야 한다.)

공식 사이트에서 나온 Git 특징

Distributed development

  • 전체 개발 이력을 각 개발자의 로컬로 복사본을 제공하고 변경된 이력을 다시 하나의 저장소로 복사한다.
  • 이러한 변경은 추가 개발 지점을 가져와, 로컬 개발 지점과 동일하게 병합(merge)할 수 있다. 저장소는 Git protocol 및 HTTP로 쉽고 효율적(특별한 웹서버 구성없이)으로 접근할 수 있다.

Strong support for non-linear development

  • 신속하고 편리항 branch 및 merge 지원, 비선형(여러 갈래) 개발 이력을 시각화하고 탐색할 수 있는 강력한 도구를 제공한다.

Efficient handling of large projects

  • Git은 매우 빠르고, 대형 프로젝트나 이력이 많은 작업에 매우 합리적이다. Git의 대부분의 다른 버전 관리시스템보다 빠르게 요청한다. 그리고 일부 작업에서는 더 빠르게 진행한다.
  • 또한, 최근의 정상급 오픈소스 버전 관리 시스템보다 장기간의 수정내역을 매우 효율적인 압축방법을 사용한다.

Cryptographic authentication of history

  • Git의 이력은 성공한 개발 이력의 commit에 의해 개정명으로 저장된다. 일단 그것이 배포되면, 그것을 모르고 예전 버전으로 변경하는 것은 불가능한다. 또한, 그것들을 암호화할 수 있다.

Toolkit design

  • UNIX 전통에 따라, Git은 C로 작성된 많은 소규모 도구 모음이다. 그리고 많은 스크립드들이 기능 보강을 제공한다. Git은 새로운 기발한 작업을 위한 손쉬운 사용과 쉬운 스크립팅을 UI 도구를 제공한다.

 

 

Git Hub

 

대표적인 무료 Git 저장소이다. 2008년에 처음 공개되었습니다. 원래는 공개 프로젝트만 무료였고 비공개 프로젝트는 결제를 해야 했으나, MS 인수된 이후 2019년 1월 초부터 비공개 저장소를 무료로 제공하기 시작했고. 2020년 4월 중순부터 비

공개 저장소 공동 작업 자수 제한도 풀렸다.

 

 

Git Hub 사용방법

Git Hub 페이지를 들어가서 회원가입이 안되어있으면 회원가입을 하고 로그인을 해줍니다.

그런 다음에 저장소를 한 개 생성해주는데요

 

New Repository 버튼을 누르면 위에 화면처럼 나오는데요. 저는 Repository name을  test로 만들어주고 공개 설정을 'public'으로 설정을 해줍니다. 그리고 'Add a README file' 버튼을 체크를 해줍니다.

readme.md 파일은 이 저장소의 flow랑 내용 설명을 정리해주는 마크다운 파일입니다.

밑에. gitignore 선택을 지정을 해주면 git 올리면 안 되는 폴더를 지정을 해서 commit 할 때 못하게 합니다.

 

그러면 이렇게 github repository에 생성되는 것을 알 수가 있습니다.

이  reposity를 자기 자신의 local PC 가져와보도록 해보겠습니다.

 

저는 idle 'VS Code'를 사용해서 실습을 해보도록 하겠습니다.

소스 코드 파일을 Git으로 관리하기 위해서는 먼저 Git 저장소를 초기화해야 합니다. 이때 저장소를 초기화하기 위해 사용하는 명령어가 git init입니다. 반면에 GitHub 상의 오픈소스를 개발하거나, 이미 만들어져 있는 프로젝트 개발에 참여할 때 git clone으로 원격 저장소를 로컬에 복제해와서 사용합니다.

저는 아까 GitHub 저장소 test를 복사를 해서 클론 해보도록 합시다.

 

그러고 난 뒤에 local 저장소에 복사가 되는 것을 확인을 할 수가 있습니다. 그런 다음에 아무 파일이나 만들어서 git hub repository에 보내는 것을 연습해봅시다. 저는 'test.html'파일에 hello world가 출력되는 것을 보냅니다.

vs code에서 GUI 환경을 보내도 상관없지만, 저는 CLI 커맨드 환경에서 보내보겠습니다.

git add 명령어를 활용하여서 'test.html'을 담아보도록 하겠습니다.

변경된 내용을 로컬 저장소에 저장을 해줍니다. commit을 할 때는 "git commit -m 'commit 내용"을 추가해줍니다. 그러면 새로운 파일이 추가되었습니다.

'git status' 명령으로 git commit을 한 상태를 확인을 할 수가 있습니다.

그런 다음에 'git push' 명령어를 이용해서 git hub 저장소로 보내보도록 하겠습니다. 위에 그림처럼 명령어를 써서 main 브랜치에 보내겠습니다.

github 저장소에 'test.html' 파일이 저장된 것을 확인을 할 수가 있습니다.

 

 


오늘 이 시간에 git, github의 개념과

git의 기초적인 명령을 사용해서 github repository에서 로컬 저장소로 복제를 해서 사용을 해보고

그런 다음에 로컬 저장소를 파일을 한 개 만들어서 로컬에서 github으로 보내는 것을 해보았습니다.

다음 시간에는 브랜치 활용법 및 pull request 하는 법에 대해서 알아보겠습니다.