github 란

2019. 9. 27. 23:35 from Tools with server

git 관련 웹 기반 솔루션


GIT의 원격 저장소를 가장 효율적으로 관리하는 방법은 바로 웹 기반 GIT 솔루션을 사용하는 것이다.

이들 솔루션에서는 원격 저장소 관리 기능 뿐만 아니라 위키, 이슈 관리, 머지 요청 관리, 팀원 관리 등 전반적인 프로젝트 관리 기능도 함께 제공한다. 웹 기반으로 동작하므로 브라우저만 있으면 접근이 가능하기 때문에 코드리뷰 등의 작업도 한층 수월하게 할 수 있다.

이러한 솔루션의 대표적인 예로 GitHubGitLab을 들 수 있다.




이 둘의 가장 큰 차이점은 폐쇄성 여부이다. GitHub은 오픈소스 프로젝트에서 많이 사용되고, GitLab은 기업체 등에서 인트라넷에 설치하여 많이 사용한다.

github


git의 원격저장소를 웹에서 관리해주는 것. 즉, git을 호스팅해주는 웹 서비스이며,  git 저장소 서버를 대신 유지 및 관리해주는 서비스이다. 


오픈소스 프로젝트는 무료이며, private 프로젝트는 유료이다. 다른 유저들과 함께 온라인으로 하나의 프로그램을 제작하는 것도 가능하여, 많은 오픈소스 프로그램들이 github을 통해서 전세계 유저들에 의해 제작되고 있다.

'Tools with server' 카테고리의 다른 글

git 구조  (0) 2019.09.27
git 이란  (0) 2019.09.27
웹 호스팅  (0) 2019.09.26
웹(Web) 이란?  (0) 2019.09.26
SVN 이란  (0) 2019.09.26
Posted by 나무길 :

git 구조

2019. 9. 27. 23:23 from Tools with server

git 구조


Git은 저장소가 내 컴퓨터에 존재한다. 그렇기 때문에 속도가 빠르다. 그리고 다른 사람과의 작업을 원한다면 내 컴퓨터의 저장소를 원격 저장소에 연결하면 된다. Commit내 컴퓨터의 저장소에 작업 내용을 올리는 것이고 원격 저장소에 작업 내용을 올리는 것Push라고 한다. 결과적으로 Git은 밑의 그림처럼 보여진다.




위와 같은 구조로 인하여 Git이 갖는 장점은 무엇보다 빠르다는 것이다. Commit을 로컬 저장소에 하기 때문에 네트워크를 거치지 않고 당연히 빠를 수 밖에 없다. 네트워크가 불가한 상황에서도 작업을 계속할 수 있다. 로컬 저장소를 이용하기 때문이다.





또 하나 알아두어야 할 것은 Stage(index라고도 부름)라고 부르는 영역이다. 이는 로컬 저장소에 Commit하기 전에 거치는 또 하나의 영역이다. Commit할 파일들은 먼저 Stage에 추가된다. Stage를 이용함으로써 SVN과 다르게 수정된 파일을 모두 Commit해야하는 상황을 피할 수 있다. Stage에 추가한 다음에 Commit하는 방식이 번거롭다면 아래 명령어를 이용해서 한번에 처리할 수 있다.


git commit -a


Commit한 파일을 원격저장소에 Push하기 위해서 아래의 명령어를 사용한다.


git push



지금까지 알아본 내용을 모두 정리하면 밑에와 같은 그림이 그려지게 된다.





git Pull


내 작업들이 오류가 발생 했을 때는 Pull을 이용하여 다른 사람들이 한 작업을 내려 받으면 된다. 원격 저장소에서 로컬 저장소로 내려받는 것Fetch라고 하고 내려받은 데이터를 병합하는 것은 Merge라고 한다. 그리고 위의 둘을 모두 하는 것은 Pull이다.



전체 structure 정리





'Tools with server' 카테고리의 다른 글

github 란  (0) 2019.09.27
git 이란  (0) 2019.09.27
웹 호스팅  (0) 2019.09.26
웹(Web) 이란?  (0) 2019.09.26
SVN 이란  (0) 2019.09.26
Posted by 나무길 :

git 이란

2019. 9. 27. 23:04 from Tools with server

git 이란


프로젝트를 관리하는 '분산 프로젝트 버전관리 소프트웨어' (Distributed Version Control Systems(DVCS))


버전관리 소프트웨어란?

개발 중 변경 내역을 추적할 있도록 개발된 소프트웨어를 말한다. 즉, 버전별로 저장되어 변경된 사항을 알 수 있게 한다. 이전 버전과 차이를 알 수 있고, 이전 버전을 볼 수 있다.


작은 규모의 프로젝트면 모르겠지만 많은 개발자가 함께 개발해 나가는 프로젝트에서 많은 파일, 많은 소스코드가 변경되고 추가된다면 이 '버전관리 프로그램'은 굉장한 힘을 발휘한다.


오늘날 많이 사용되는 형상 관리 도구의 두 축이 있는데, 바로 SVNGIT이다. 한때 SVN이 널리 사용되었지만, 근래에 들어 GIT이 등장하고 나서부터 SVN을 사용하던 많은 기업들이 GIT으로 갈아타고 있는 추세라고 한다.


SVN과 GIT은 모두 소스코드의 효율적인 관리를 위한 형상 관리 도구이지만, 비슷하면서도 많은 점이 다르다. SVN과 GIT의 가장 큰 차이점을 나타내는 한 단어가 있는데, 바로 '분산'입니다. SVN은 중앙 집중식 소스코드 관리 방식인데 반해, GIT은 분산 소스코드 관리 방식이다. 즉, GIT을 사용할 경우 중앙 저장소가 폭파되더라도 분산되어 있는 로컬 저장소를 이용해 중앙 저장소를 복원할 수 있습니다.


저장소 (Repository)


소스코드가 저장되어 있는 여러 개의 브랜치(Branch)들이 모여 있는 디스크상의 물리적 공간을 의미한다.


원격 저장소만 있는 SVN과 달리, GIT에서는 저장소가 로컬 저장소(Local Repository)와 원격 저장소(Remote Repository)로 나뉜다.


작업을 시작할 때 원격 저장소에서 로컬 저장소로 소스코드를 복사해서 가져오고(Clone), 이후 소스코드를 변경한 다음 커밋(Commit)을 한다. 이 때, 커밋한 소스는 로컬 저장소에 저장되며, 푸시를 하기 전에는 원격 저장소에 반영되지 않는다.


오픈소스코드 등을 구하려고 사이트에 방문하면 다음과 같이 git 이나 http 프로토콜로 시작하는 저장소 주소만 달랑 써져 있는 경우를 자주 접할 수 있다.





이전에는 오픈소스 코드를 배포할 때 버전별 압축파일 형태로 배포했으나, GIT이 등장한 이후 위와 같이 저장소를 통해 배포하는 경우가 많아졌다.


위와 같이 임의의 사용자가 마음대로 다운받을 수 있도록 공개된 저장소가 있는 반면, 인증된 사용자만 접근할 수 있는 비공개 저장소도 있다. 단, 공개된 저장소일지라도 저장소의 다운로드만 가능하며, 수정된 코드를 저장소에 반영하기 위해서는 저장소 관리자의 허가를 받고 SSH 키를 등록해야 한다.

'Tools with server' 카테고리의 다른 글

github 란  (0) 2019.09.27
git 구조  (0) 2019.09.27
웹 호스팅  (0) 2019.09.26
웹(Web) 이란?  (0) 2019.09.26
SVN 이란  (0) 2019.09.26
Posted by 나무길 :