1. 깃 기본 이론
깃은 분산식 버전관리 시스템
근데 깃이 뭐지?
-> 포토샵을 하려고 포토샵 프로그램을 설치하는 것처럼 깃도 그냥 버전관리를 위해 로컬(내 컴퓨터)에 설치해서 사용하는 시스템
-> 프로젝트를 복사해서 관리할 필요없이, 깃에게 기억해둘 버전을 기억하게 시키면 됨
-> 깃허브랑 소통해서 자신이 기억하고 있는 버전들을 깃허브에게 줄 수 있음
그럼 깃허브는 뭐지?
-> 깃이 기억하고 있는 버전들을 깃에게 받아서 가지고 있음
-> 깃들이 한 군데 허브처럼 모일 수 있도록 공간을 제공하는 시스템
-> 로컬(내 컴퓨터)이 아니라 원격으로 중앙에서 프로젝트를 백업/버전관리/협업을 가능하게 해주는 시스템
-> 로컬과 별도로 버전관리를 함
(별도로? 내가 이 버전을 가지고 있으라고 별도로 명령해야 함. 자동으로 버전관리해주는 것이 아님)

2. CLI vs GUI
CLI 와 GUI 는 명령을 하는 방법의 차이.
GUI (Graphic User Interface)
그래픽으로 컴퓨터에게 명령을 내릴 수 있도록, 사용자에게 화면을 제공하는 방식
CLI (Command Line Interface)
셸에 글자를 입력해서 컴퓨터에게 명령을 내리는 방식
(셸이라는 프로그램 창을 통해서 컴퓨터 운영체제와 대화하는 것)
※ 왜 셸(shell)인가요?
shell 은 조개(조개껍데기) -> 셸이라는 조개껍데기 안에 있는 컴퓨터의 운영체제와 대화한다해서 셸
참고로 셸의 종류로는 MS DOS, cmd, 파워셸, 배쉬, Terminal .. 등이 있음
3. 자주 쓰는 명령어
- 운영체제 기본 명령어
ls
listsegementation 의 약자, 리스트 목록 보여준다.
ls -a
디렉토리 내의 모든 파일과 디렉토리를 표시하는 명령어
파일이름이 점(.)으로 시작하는 파일/디렉토리는 숨김 파일/디렉토리로 간주되는데, 이를 포함해서 출력하려면 -a 옵션을 사용할 수 있다.
mkdir [폴더이름]
makedirectory 의 약자, 디렉토리를 만들 때 사용하는 명령어
cd [폴더 이름]
changedirectory 의 약자, 디렉토리를 이동할 때 사용하는 명령어
- git 기본 명령어
git init
git initialize 의 약자, 깃 폴더로 초기화 시키는 명령어
이 명령어를 사용해서 디렉토리를 깃 디렉토리로 초기화시켜줘야 깃이 디렉토리 안 파일들의 변화를 추적할 수 있다.
(추적을 할 수 있게 된 것이지 모든 파일을 자동으로 추적x, 추적을 원하는 파일을 깃에게 따로 말해줘야 함)
초기화가 제대로 이뤄지면, 폴더에 .git 이라는 디렉토리가 생기는데, 숨겨진 디렉토리이기 때문에 ls -a 명령어로 확인할 수 있다.
git add [파일명]
깃에게 파일을 추적해달라고 요청할 때 사용하는 명령어
이 명령어를 사용하고 나면 해당 파일의 변화를 깃이 추적하기 시작한다.
git status
지금 깃의 상태를 물어보는 명령어
git commit [commit message]
추적하던 파일들을 버전으로 저장하는 명령어
git commit 을 하면 commit 하는 그 시점의 코드를 .git 폴더에 저장한다.
(add 를 해서 대기열에 버전으로 만들 애들을 모았다가 commit 을 해서 버전으로 만든다고 생각하면 된다. commit 을 하고 나면 버전으로 만들었기 때문에 다시 빈대기열이 된다)
git log
commit 히스토리를 볼 수 있는 명령어
git remote -v
디렉토리에 연결된 원격 저장소를 확인하는 명령어
(연결된 깃허브 레파지토리=원격저장소 주소를 볼 수 있음, 아무것도 뜨지 않는다면 연결된 원격 저장소가 없는 것)
근데 사실 위의 git 명령어들은 CLI 방식이 아닌 GUI 방식으로도 처리 가능하다. vscode 에서 버튼을 눌러서 처리할 수 있는데, 어떻게 하는지 살펴보자.
git init
1. source control 탭 클릭
2. Initialize Repository 클릭

초기화 시키고 test2.txt 파일을 만들고 난 뒤 파일을 보면, 옆에 U 라는 글씨가 떠 있는 것을 볼 수 있다.
U 는 Untracked 로 아직 깃이 파일을 추적하고 있지 않은 상태라는 것을 알 수 있다.
(터미널에서 빈 파일을 만드려면 touch [파일명].확장자 명령어 사용하기)

git add
+ 에 커서를 가져다대면 stage changes 라고 뜬다. 이걸 누르면 git add (깃이 추적하도록) 할 수 있다.
stage 는 커밋을 만들기 전에 변경된 파일들을 임시로 모아두는 영역이라고 생각하면 된다. git add 를 하면 stage 에 파일이 추가되고 커밋할 준비가 된 상태로 간주된다. 파일을 추가한 후, git commit 명령어로 변경사항들을 하나의 커밋(버전)으로 기록할 수 있다.

git add 를 하면, U 가 A 로 바뀌고, Staged Changes 밑에 파일이 들어가 있는 것을 볼 수 있다. A 는 Index Added 로 깃이 파일을 추적하고 있는 상태이다.

git commit
commit 버튼 위 입력창에 commit message 를 쓰고 commit 버튼을 눌러주면 commit 완료.

CLI 방식에서는 git status 또는 git log 를 통해서 commit 이 잘 되었는지 여부를 확인했는데, GUI 방식에서는 어떻게 확인할 수 있을까?
-> git history 라는 익스텐션을 설치하면 확인할 수 있다
git history 를 설치하면 시계 모양이 생기는데, 시계 모양을 누르면 아래와 같은 커밋 기록을 확인할 수 있다.


실습 화면


'TIL with Programmers' 카테고리의 다른 글
[TIL] 8/20 웹(Web), 인터넷, 클라이언트-서버, 프론트엔드, 백엔드 (0) | 2024.08.20 |
---|---|
[TIL] 8/19 협업 Tool(Trello, Jira, Notion) 사용하기, 애자일, 스프린트, 스크럼 (1) | 2024.08.20 |
[8/16] merge, fetch, pull, pull request, branch, fast-foward, 3-way (0) | 2024.08.16 |
[TIL] 8/14 로컬 저장소와 원격 저장소 연결하기/연결 끊기, git push, git clone, git pull, 브랜치 (0) | 2024.08.14 |
[TIL] 8/12 프로젝트, 리드미, 버전관리 (0) | 2024.08.12 |