Git/Github

윤수민·2022년 10월 30일
0

git&github

목록 보기
1/2
post-thumbnail

#1 Git이란?

git : 형상 관리 도구(Configuration Management Tool) 중 하나

참고로 형상 관리 도구는 버전 관리 시스템이라고도 한다. Git은 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료, 공개소프트웨어이다. SVN보다 여러 장점이 있어 SVN을 쓰던 개발 조직들은 하나둘씩 Git으로 갈아타고 있다.

#2 SVN과 Git의 차이점

SVN : 중앙 서버에 소스코드와 히스토리를 저장
Git :  소스코드를 여러 개발 PC와 저장소에 분산해서 저장

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

#3 Git의 장점

 소스코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능하다. 즉 브랜치를 통해 개발한 뒤, 본 프로그램에 합치는 방식(Merge)으로 개발을 진행할 수 있다. 분산 버전관리이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있으며, 중앙 저장소가 날라가버려도 다시 원상복구할 수 있습니다. 팀 프로젝트가 아닌, 개인 프로젝트일지라도 GIT을 통해 버전 관리를 하면 체계적인 개발이 가능해지고, 프로그램이나 패치를 배포하는 과정도 간단해집니다. (pull을 통한 업데이트, patch 파일 배포) 

#4 Git? Github?

Git : 형상 관리 도구(버전 관리 시스템)
Github : 형상 관리 도구(버전 관리) 웹호스팅 서비스

Git : (형상 관리 도구) - 프로젝트를 진행하면서 소스 코드를 USB나 메일로 주고받는 건 엄청난 낭비 임과 동시에 보안성 위험이 있다.   그렇기 때문에 프로젝트를 진행 함에 있어 형상 관리 도구를 사용 한다.  - 형상 관리 도구를 사용하면 변경을 쉽게 되돌릴 수 있다. 소스코드를 과거의 특정 시점으로 되돌리거나, 특정 시점의 변경 사항을 취소하거나, 두 버전의 소스 코드를 비교하는 등의 일이 가능하다.

Git 웹 호스팅 시스템 : 협업하고 있는 코드를 저장할 서버가 필요하다. - 버전 관리 시스템을 지원하는 웹호스팅 서비스의 기능을 통해, push, pull request같은 이벤트에 반응하여 자동으로 작업(배포 등)을 실행하게 할 수 있다.ex) GitHub, GitLab, BitBucket

Git GUI : 너무 많은 git 명령어를 자유자재로 외울 자신이 없을 땐 GUI를 사용할 수도 있다.ex) GitHub Desktop, SourceTree, GitKraken

#5 관련 용어들

 Repository : 저장소를 의미하며, 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 히스토리를 확인 할 수 있다. -

Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점. 

Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치. 

Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.

Head : 현재 작업중인 Branch를 가리킨다. 

Branch : 가지 또는 분기점을 의미하며, 작업을 할때에 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을때 Merge를 하여 작업을 한다. 

Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.

#6 Git 사용하기 기초 용어

git init : 버전관리 하고싶은 폴더에서 초기화를 하는 준비

git branch : 독립적인 공간을 만든다. 

  • 새로 만든 branch lab1은 master와 완전히 동일한 상태를 가진 공간.
  • 브랜치에서 수정을 한 후 커밋하면 lab1에만 기록되며 master 브랜치에는 어떤 영향도 주지 않는다.
  • 원하는 만큼 빠르게 branch를 만들 수 있다.

checkout : 독립된 작업 공간인 브랜치를 자유롭게 이동할 수 있다.

git commit : 의미있는 수정 작업이 끝났을 때 마침을 알리는 작업

pull : 리모트 저장소의 변경된 내용을 로컬(내 컴퓨터) 저장소에 적용하는 작업을 pull이라 한다.

master : git init을 했을 때, default로 만들어지는 가지가 'master'이다.

git init : git 저장소 생성 / 버전 관리를 위한 정보 생성 버전 관리를 하고싶은 디렉토리에서 실행

git status : git 상태확인 디렉토리에서 일어나고 있는 상태를 확인할수있음

git add : 파일 수정 이력 기록 준비 수정한 파일의 이력을 남길 준비를 하는 명령어
-특정 파일만 이력을 남기고 싶을때 : git add [파일이름]

git commit : 파일 수정 이력 기록 수정한 파일의 이력을 남기는 명령어
-한 줄로 커밋 메세지를 남기고 싶을 때 : git commit -m "메세지"
-여러 줄의 커밋 메세지를 남기고 싶을때 : git commit

git log : 이력확인 남겨진 기록을 확인한는 명령

git push : 작성한 코드를 원격 저장소에 업로드 이력을 남긴 코드들을 github 에 업로드 할때 사용하는 명령어

git clone : 코드 복제, 기존 레파지토리를 내 로컬로 가져오는 명령어 : git clone [레파지토리 주소]

git branch : 독립된 공간 만들기, 독립적으로 개발할수있는 공간을 만드는 명령어 git branch [브랜치 이름]

git checkout : 브랜치 이동 : 현재 있는 브랜치에서 다른 브랜치로 이동할때 사용하는 명령어 git checkout [브랜치 이름]

git pull : 코드 가져오기 github에 있는 특정 브랜치이 코드를 로컬로 가져올때 사용하는 명령어 git puul origin [브랜치 이름]

git merge : 코드합치기 로컬에서 현재 브랜치의 코등하 특정 브랜치의 코드를 합칠때 사용 git merge [브랜치 이름]

출처: https://goddaehee.tistory.com/91 [갓대희의 작은공간:티스토리]

profile
안녕하세요!

0개의 댓글