Git은 버전 관리 시스템, 영어로 Version Control System(VCS)
클라이언트-서버 모델 | 분산 모델 |
하나의 중앙 서버가 존재하며, 여러 클라이언트들은 중앙 서버에서 각자 맡은 파트만 가져와서 작업하고, 다시 중앙으로 통합하는 것을 의미합니다. | 하나의 중앙 서버가 존재하지만, 여러 클라이언트들은 각자의 컴퓨터 저장소에 중앙 서버의 전체 사본을 가지고 작업을 하는 것을 의미합니다. |
대표적 시스템 : CVS, Subversion 등 | 대표적 시스템 : Git(가장 많이 사용) |
Git이 생겨난 배경
리눅스는 '리누스 토발즈'라는 핀란드인이 개발한 컴퓨터 운영체제로써, 자유 소프트웨어와 오픈 소스 개발의 표본
'리누스 토발즈'가 리눅스라는 운영체제의 커널 버전을 관리하기 위해 2002년에 BitKeeper라는 분산 버전 시스템을 도입
하지만 2005년, 도중에 무료로 사용을 못하게 되자, Git(무료 오픈소스 시스템)을 만듦
Git은 무엇이고 Github란 무엇인가?
$ cd (폴더 디렉토리) | 앱이든 웹사이트든 게임이든 소프트웨어를 만들기 시작하면 파일들이 다 담기는 프로젝트 폴더가 있음 | |
$ git init | 그 폴더에서 git을 시작하면 지금부터 이 폴더의 모든 수정내역들이 저장되는 .git이란 폴더가 생김 | |
$ git add-A | 어느정도 프로그램을 짜고 파일들을 다 저장한 후 백업 시작 백업에 포함할 파일들을 일단 모두로 설정 |
|
$ git commit -m "(작업수행 내용)" |
이 시점까지는 이러이러한 작업을 진행하겠다고 기록한다음 'commit'이란 명령어를 실행 | |
$ git logs | 이 폴더의 전체의 내용들(각 버전의 변경사항들만 기록)이 박제됨 프로젝트를 진행하다가 과거상태로 되돌려야하는 상황이 올때 |
|
$ git branch "(브랜치명)" |
이제까지의 박제 내역들을 확인한 다음 그 박제되었던 과거의 상태로 복원이 됨 수정된 내역들이 복원이 되고, 새로 만든 파일들은 삭제되고, 지웟던 파일들은 복원이 됨 가지치기 분기가 가능-'브랜치를 딴다'라고도 함 |
|
$git merge "(브랜치명)" |
다른 브랜치와 메인 브랜치 합칠 때 | |
협업할 때 : 회사 서버에 깃이 설치되어 있거나 있다 깃헙같은 서비스를 이용하면 깃으로 박제한 내용들을 원격으로 전송해서 공용 공간에 저장가능. 1. 먼저 다른 구성원들이 작업해서 올린 내용들을 다운 2. 거기에 내가 진행할 작업들을 전수하는 식으로 협업 이 모든 과정들이 순서대로 체계적으로 기록되고 관리되기 때문에 나중에 문제가 생기더라도 이 코드를 누가 건드렸는지 다 확인해 볼 수 있게 되고 얼마든 코드들을 과거로 되돌려서 문제를 해결할 수가 있음. 이런 버전 관리 시스템은 깃 말고도 여러가지가 있는데, 각각 특징이 있고 장,단점은 검색하면 알 수 있음. 이 기술을 실무에서 쓸 수 있을 만큼 자유자재로 다루기 위해서는 어느 정도의 연습이 필요함. |
깃은 버전 관리를 위한 소프트웨어
깃헙은 이 깃으로 저장 되서 원격전송된 파일들이 저장되는 공간을 제공하는 서비스
깃은 영상을 찍는 앱 깃헙 유튜브
전 세계 모든 오픈 소스 프로젝트들이 공유되고 수많은 자발적 참가자들에 의해서 발전은 공간으로 작용.
오픈소스란 말 그대로 코드가 다 공개된 소프트웨어
전세계 사람들이 깃헙에 올려진 그 프로젝트들을 다 볼 수 있기 때문에
잘못된 부분을 수정하거나 더 좋은 기능을 구현한 코드를 지구 반대편에
있는 프로그래머에게 제안 받을 수도 있고 또 내가 다른
누군가의 혹은 회사의 프로젝트의 기여할 수도 있는것.
잘 알려진 오픈 소스 프로젝트에 내 코드가 기여한 기록이 있으면 취업할 때 강력한 플러스 요인.
이런 과정 속에 모든 프로젝트들이 만들어지고 발전해 나가는 것이기 때문에
깃헙은 자유 소프트웨어 또는 오픈소스의 성지
git 사용할 때 다운로드할 것
1. git 다운로드
2. IDE(Integrated Development Environment)프로그램 : vs code 다운로드
3. sourcetree 다운로드
[참고자료]
https://opentutorials.org/module/3963/24442