git은 단순히 개인용 워크스페이스, 혹은 오픈 소스를 무료로 공유하는 단순한 플랫폼으로만 알고있었지만 훨씬 다양한 기능들이 존재했다!
shell, git, bash, github의 차이를 알아보고 시작해보자!
git을 이해하기 전 shell이라는 것의 개념을 알아보자!
그렇다면 kernnel은 무엇일까?
커널은 하드웨어와 응용프로그램을 이어주는 운영체제의 '핵심 시스템소프트 웨어'라고 간략히 이해할 수 있다.
예를들면, 디바이스 내의 프로그램이나 어플리케이션과 디바이스 사이에서 작동하는 운영체제 내의 가장 핵심적인 시스템소프트웨어라고 생각하면 쉽다.
cpu, memory, device 모두 운영체제 내 시스템 소프트웨어를 제어하는 커널을 통해 프로그램과 어플리케이션을 실행할 수 있게 해준다.
다시 shell로 돌아와보자.
즉, 사용자의 디바이스 조작 - shell - kennel - 프로그램의 순서로 제어가 이루어지고, shell은 kennel의 조작을 손쉽게 하기 위한 소프트웨어임을 확인할 수 있다!
bash는 다양한 운영체제와 사용자 편의, 기능을 고려해 생겨난 shell 중 하나라고 생각하면 쉽다.
현재는 LINUX와 MAC OS 등 다양한 운영체제의 기본 shell로 자리잡고있다.
그렇다면, git은 정확히 어떤 개념을 가지고 있을까?
이는 git의 개발 스토리를 이해하면 쉽게 접근할 수 있다.
git은 LINUX의 커널을 관리하는 기존 툴이 엉망인 것을 개선하는 것에서 부터 시작됐다. 오픈 소스계의 영원한 아이돌인 리누스 토르발스가 커널 관리를 용이하기 위해 개발한 것이 바로 이 git이다.
즉, 사용이 용이한 shell의 한 종류라고 생각하면 쉽다.
그렇다면 git bash라는 것은 무엇일까?
기존의 bash는 다양한 운영체제 내의 kernnel을 사용자가 접근하기 쉽게 만든 환경이었다. 따라서 운영체제에 따라 그 기능과 성능, 편의성이 상이할 수밖에 없다.
git bash는 widnows 운영체제에서 unix bash의 호환성을 위한 목적성도 가지고 있다.
등을 개선해 개발된 bash라고 생각하면 접근하기 쉽다!