코드 저장소

공부에는 끝이 없다!

Git

GIT 사용하기 - CLI를 이용한 Commit

VarcharC2K 2023. 12. 25. 15:48

Git으로 버전 관리 시작하기 - Commit과 Init

Git 이용을 위해선 먼저 원하는 폴더를 지정해 주어야 한다.

내가 로컬의 어떤 경로에서 버전 관리를 할지 Git이 알게해준다고 생각하면 좋을 것이다.

이 기능을 init 명령으로 설정하게 되는데, 해당 폴더에서 Git 초기화를 해주는 것이다.

Git 초기화를 하게 되면 .git이라는 숨겨진 폴더가 만들어지는데 이것이 로컬 저장소이다.

이 로컬 저장소에는 내가 만든 버전 정보, 원격 저장소 주소등이 저장되며 원격 저장소에서 로컬로 코드를 받아오게 되면 로컬  저장소가 자동으로 생성된다.

단, 주의 할 것은 하나의 폴더에 하나의 로컬 저장소만 유지해야한다.

예를 들어 WorkSpace라는 폴더 경로에 A라는 프로젝트를 시작했다고 가정해보자.

그러면 WorkSpace 폴더에는 .git이라는 숨겨진 로컬 저장소가 생성이 될 것이다.

그런데 내가 B라는 프로젝트를 동시에 진행하게되어 원격에 있는 B의 코드를 WorkSpace에 똑같이 받게 한 것이다.

이렇게 되버리면 Git은 우리가 관리하려는 것이 A 프로젝트 인지 B 프로젝트 인지 알수가 없게 되어 버린다.

Git의 입장에서 보면 먼저 초기화 했던 A 프로젝트가 B 프로젝트의 코드로 변경 되었다고 인식해버리므로 별도의 프로젝트의 버전 관리가 되지 않는것이다.

따라서, 필요에 따라 경로를 나누어 저장하는 것이 중요할 것이다.

그럼 실제로 init 명령을 실행하여 로컬 저장소를 생성해 보자.


Git - init 실행해보기

먼저 로컬에 버전관리를 시작할 경로(폴더)를 만들어 주어야한다.

나는 C드라이브에 workSpaceForGit이라는 폴더를 만들고 gitTest라는 폴더를 만들어 경로를 생성하였다.

그후, Git bash를 실행하고 우리가 만든 경로로 들어가 준다.

경로로 들어갈때는 cd [이동할 경로]를 입력해 주면 되는데 cd는 Change Directory의 약자이며 현재 위치한 경로가 궁금하다면 dir 명령어를 통하여 현재 위치한 폴더의 하위 폴더/파일들을 확인 할 수 있다. 

(명령어 목록이 궁금하다면 리눅스 명령어를 찾아보는 것을 추천한다.)

이런 식으로 탐색하며 들어가도 되고 한번에 입력해서 들어가도 무방하다

그럼 우리가 관리를 할 폴더 경로에서 git init을 입력해준다.

그러면 빈 git 저장소를 Initialized 했다는 문구가 나타나며 해당 위치에 (master)라는 문구가 나타나게 된다.

실제로 경로로 가보면 앞서 설명한 .git 폴더(로컬 저장소)가 숨겨진 폴더로 생성된 것을 확인할 수 있다.

그럼 사용 준비가 되었으니 실제로 코드를 작성하고 해당 코드를 Git으로 올려보자.


Commit - 내가 올릴 수정 목록

Commit이란 쉽게 설명하면 내가 원격으로 올릴 수정 목록을 저장한다고 생각하면 된다.

작은 소버전을 하나씩 만드는 것이라고 생각해도 좋다.

이렇게 작성된 Commit들은 일종의 분기점이 되며 내가 원할 때 돌아갈 수 있는 Save 지점같이 동작하게 된다.

 

예를 들어서, 내가 A라는 기능을 만들고 해당 기능의 고도화를 한다고 생각해 보자.

우선 A라는 기능을 작성 한 후, Commit을 하여 Save 지점을 만들어 주었다.

그런데 고도화 작업을 수행 중 오류가 발생하였는데, 코드 수정이 너무 많아서 원본 코드를 알아볼 수 없는 상태가 되었다고 가정해보자.

이런 경우 우리는 Save 지점인 A 기능 작성때의 Commit으로 돌아가 다시 처음부터 작업을 할 수 있는 것이다.

따라서, Commit 작성 시에는 적절하게 시점을 끊어주는 것이 중요하며(너무 자잘해도 불편하다...) Comment에 해당 Commit에서 어떤 작업을 하였는지 상세하게 적어주는 것이 좋다.

실무에서 이 따위로 커밋하면 아주 다이나믹한 상황이 벌어진다


Git에 전역 사용자 설정하기

실제로 Commit을 수행하기 전에 전역 사용자를 설정해 주어야 한다.

(누가 올렸는지, 어디로 올릴지를 설정하기 위해서이다)

명령어는 다음과 같다.

config --global user.name "이름"
config --global user.email 이메일형식

--global은 전역 변수로 설정하기 위함이며 앞으로 Commit을 작성하게 된다면 해당 user.name에 작성한 이름으로 작성자가 표시되게 된다.

Add - 수정한 파일 올리기

Commit을 수행하기 위해선 어떤 파일을 올리지 선택을 해주어야 한다.

이를 add 명령어를 통해 수행할 수 있다.

테스트를 위하여 우선 IntelliJ를 통하여 index.html과 README.md라는 파일을 생성해 주었다.

이중에서 index.html은 아직 작업이 완료되지 않아 README.md라는 파일만 업로드 한다고 가정해보자.

우선 Git Bash에서 ls 명령어를 통해 현재 폴더의 파일 리스트를 확인해 보자.

그럼 다음과 같이 내가 생성한 파일이 나타나게 된다.

다음으로 add 명령어를 통하여 README.md 파일만 선택하여 보자.

git add README.md

아무 메시지가 안뜬다면 정상적으로 처리된 것이다.

그 후, Commit 명령어를 통하여 실제로 Commit을 생성한다.

git commit -m "readme 파일 추가"

-m은 메시지의 명령어이며 앞서 설명한 Comment를 추가하는 작업이라고 생각하면 된다.

(여기를 잘 적어야 된다는 말이다)

정상적으로 처리가 잘 완료되면 다음과 같은 메시지가 나타난다.

그러면 우리는 readme 파일을 추가한 분기점을 실제로 생성하게 된 것이다.

생성된 Commit을 확인하고 싶다면 log 명령어를 통하여 생성한 목록을 확인 할 수 있다.

git log

log를 확인해 보면 실제로 우리가 Commit한 목록이 확인 될 것이다.

또한, 앞서 작성한 작성자와 email을 통하여 누가 작성했는지도 확인이 가능하다.

master는 Branch명인데 저장한 전체 분기의 위치라고 생각하면 되겠다.(Defaul 값이 master로 생성된다)

'Git' 카테고리의 다른 글

GIT - Branch 나누기  (2) 2023.12.29
GIT - 소스트리 이용하기  (1) 2023.12.28
Git - GUI 이용하기  (0) 2023.12.27
GIT 사용하기 - CLI를 이용한 Push  (1) 2023.12.26
버전관리와 Git - 환경 설정 하기  (1) 2023.12.23