date/ 24.08.13.
깃 기본 이론
1. 깃은 분산식 버전 관리 시스템
깃은 로컬 시스템입니다
- 그냥 설치해서 사용하는 일종의 프로그램이라고 생각하며 됩니다.
- 그림을 그리기 위해 포토샵, 일러스트레이터를 이용하는 것과 같습니다.
- 어디에 설치할까요? ➡️ 로컬 시스템, 즉 나의 컴퓨터에!
- (깃허브는 원격으로 중앙에서 우리 프로젝트를 백업, 버전 관리, 협업이 가능하게 하는 시스템입니다)
- 깃을 통해서 각자의 컴퓨터를 깃허브로 모이게 하는 것이라고 생각하면 됩니다.
프로젝트 버전 관리는 어떻게 이루어지나요?
- 굳이 내 컴퓨터에 다양한 버전의 프로젝트를 남겨둘 필요가 없습니다. '나 지금 버전 1.1 만들 거니까 버전 1.0은 네가 갖고 있어~' 하고 깃허브에 올려 두면 되겠죠?
- 그렇다면 진짜 깃과 깃허브가 동작하는 방식은?
- 버전 업그레이드 없이도 깃허브에 백업 가능합니다: 현재 작업하고 있는 프로젝트의 동기화를 하는 것
- 내 컴퓨터에서 버전 관리 하던 파일을 깃허브에도 똑같이 백업 가능합니다
- 다만 동기화를 해주지 않으면 자동으로 올라가진 않습니다.
- 내 컴퓨터에 깃이 깔려 있으면, 버전 관리를 로컬로 할 수 있을뿐 아니라 깃허브와 소통(백업, 복구 등)할 수 있습니다.
- 덕분에 다른 컴퓨터에도 깃이 깔려 있으면 깃허브를 통해서 소통 가능합니다.
- 즉, 깃허브 덕분에 우리는 협업할 수 있습니다.
2. 내 컴퓨터에 깃 설치하기
- 공식 홈페이지에서 설치할 수 있습니다.
https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98
위 링크의 도움말을 차근차근 따라간다면 큰 어려움은 없습니다. 저는 애초에 설치해 두었기에 따로 실습하진 않았습니다. 성공적으로 설치가 되었다면 PC의 터미널에서 git --version 명령어를 통해 확인할 수 있습니다.
깃과 친해지기
1. CLI vs. GUI
CLI와 GUI는 명령을 하는 방법의 차이가 있다고 생각할 수 있습니다.
- CLI: 커맨드 라인 인터페이스; 명령 줄 인터페이스
- 글자를 입력하여 컴퓨터에게 명령을 내리는 것입니다.
- 명령 프롬프트, 내지는 셸이라고 부르는 곳에서 명령을 내립니다.
- 셸: 창을 통해 컴퓨터와 대화하는 것 - MS DOS, cmd, 파워셸, 배쉬 등
- GUI: 그래픽 유저 인터페이스
- 그래픽으로 컴퓨터에게 명령을 내릴 수 있도록 사용자에게 화면을 제공합니다.
깃에서 자주 사용되는 명령어는 CLI 기반입니다.
2. 자주 쓰는 명령어
명령어 | 기능 |
ls | list segmentation, 폴더 안에 어떤 파일이 있는지 목록을 보여줌 |
mkdir | 폴더 안에 디렉토리를 새로 생성 |
cd | change directory, 위치를 이동하는 명령어 + cd.. 이전 폴더로 돌아가는 명령어 |
git init | 깃에 포함시키기. 버전 관리는 되지 않는 상태임을 주의. |
git status | 깃의 상태 확인 |
git add (파일명) | (파일명)파일을 트래킹할 수 있도록 함 + git add -a |
git commit | 지금까지 트래킹된 파일로 버전을 생성 |
git log | 커밋 히스토리를 조회하는 명령어 |
3. 깃 히스토리 설치하기
- extensions ➡️ git history 검색, install 클릭
- source control 좌측 상단, 기존에는 없던 시계 모양이 아이콘이 생성된 것을 볼 수 있습니다.
- 클릭하면 로그를 볼 수 있습니다.
실습
제 닉네임(romi)으로 된 텍스트 파일을 생성하고, git 명령어를 몇 가지 사용해 보겠습니다.
romi.txt를 생성했습니다.
ls 명령어를 사용했더니 해당 폴더에 어떤 파일이 있는지 보여줍니다. 여기는 first, lecture.html, romi.txt가 있네요.
git init을 사용하여 initialize 했습니다.
commit을 진행했습니다.
git log로 확인 결과 두 번의 커밋 히스토리를 볼 수 있었습니다.
'학습 기록 > 데브코스 웹 풀스택 4기' 카테고리의 다른 글
웹 서비스의 이해 (1) - 웹 이해와 프론트엔드 입문 (0) | 2024.08.20 |
---|---|
포트폴리오 / 협업 환경 구성 (5) (0) | 2024.08.19 |
포트폴리오 / 협업 환경 구성 (4) (0) | 2024.08.16 |
포트폴리오 / 협업 환경 구성 (3) (0) | 2024.08.14 |
포트폴리오 / 협업 환경 구성 (1) (0) | 2024.08.12 |