본문 바로가기
TIL with Programmers

[TIL] 8/13 깃과 깃허브, 깃 명령어, CLI vs GUI

by 보먀 2024. 8. 13.
728x90
반응형

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 를 설치하면 시계 모양이 생기는데, 시계 모양을 누르면 아래와 같은 커밋 기록을 확인할 수 있다.

 

 

 

실습 화면

 

728x90
반응형