無限

몸은 현실 마음은 낭만

Develop & Journal

몰입 교육

GIt 사용자 지정 및 버전 커밋하기

알파 조 2023. 7. 26. 23:22
728x90
반응형
SMALL

Git Bash를 사용합니다

0) Git 설치 확인

깔려있는 git 버전을 확인할 수 있습니다.

 

 

1) 사용자 정보를 지정해 줍니다.

이름과 이메일을 설정해줍니다.

 

 

2) 현재 Git 리포지토리에서 설정된 모든 구성 옵션들을 보여주는 명령어입니다.

이 명령어를 사용하면 Git 설정에 대한 정보를 쉽게 확인할 수 있습니다. 

1번에서 설정했던 이름과 이름이 Git설정에 보이는 것을 확인할 수 있습니다.(노란색글씨)

 

 

3-1) 현재 사용자의 홈 디렉토리에서 "project" 디렉토리로 이동하게 됩니다.

3-2) git init을 실행하면, Git은 .git 디렉토리를 생성하고, 이 디렉토리에 Git의 객체(database)들과

설정 파일들이 저장됩니다. 이를 통해 Git은 버전 관리에 필요한 모든 정보를 저장하고 추적할 수 있게 됩니다.

3-3) git status는 Git 버전 관리 시스템에서 현재 작업 디렉토리의 상태를 확인하는 명령어입니다.

위의 그림에 나와있는 파일들(빨간색 글씨)은 추적되지 않은 파일(Untracked files)을 의미합니다.

추적되지 않은 파일은 아직 스테이지 영역에 없다는 의미입니다.

 

스테이징 영역(Staging Area) = Git에서 버전 관리를 위해 변경된 파일들을 임시로 저장하는 공간입니다. 다른 말로는 인덱(Index)라고도 부릅니다. 스테이징 영역은 커밋을 생성하기 전에 커밋에 포함시킬 파일들을 선택하는 데 사용됩니다. 스테이징 영역에 파일을 추가하면 해당 파일들의 변경 사항이 커밋을 위해 준비된 상태가 됩니다.

 

Untracked files을 commit하여 포함하고 싶다면 "git add <File>"을 해주라는 hint도 보입니다.

 

 

Git은 파일들의 상태를 크게 세 가지로 나눕니다:

git project의 세가지 단계
git repo에서 file의 life cycle

추적 중인 파일 (Tracked files): 이미 Git이 해당 파일을 추적하고 있는 파일들입니다. 이러한 파일들은 최근에 수정되었거나 추가되었을 수 있습니다.

추적되지 않는 파일 (Untracked files): Git이 아직 해당 파일을 추적하고 있지 않으며, 새로 생성된 파일이거나 Git에서 무시하도록 설정된 파일입니다.

수정된 파일 (Modified files): 추적 중인 파일 중에서 변경된 내용이 있는 파일들입니다.

 

 

4) textrep 이라는 디렉토리를 만들어 줍니다. = make directory

 

 

5-1) 만들어준 textrep 디렉토리로 이동해줍니다.

5-2) 이 디렉토리에 Git의 객체(database)들과 설정 파일들이 저장됩니다.

이를 통해 Git은 버전 관리에 필요한 모든 정보를 저장하고 추적할 수 있게 됩니다.

 

 

6-1) on branch: 현재 작업 중인 브랜치를 의미합니다. Git은 여러 개의 브랜치를 가질 수 있으며, 각 브랜치는 서로 다른 작업을 수행할 수 있게 해줍니다. "on branch" 다음에 브랜치 이름이 표시되면 현재 작업 중인 브랜치를 나타내는 것입니다.

6-2) No commits yet: 아직 커밋이 없음을 의미합니다. Git은 파일의 상태를 저장하기 위해 커밋을 사용합니다. "No commits yet"은 아직 어떤 변경 사항도 커밋하지 않았다는 뜻입니다.

6-3) nothing to commit: 커밋할 변경 사항이 없음을 의미합니다. 이전에 커밋한 이후에 아무런 변경 사항이 없거나 모든 변경 사항이 이미 커밋된 상태라는 것을 나타냅니다.

 

 

이렇게 표시된 상태에서는 아직 어떤 작업도 커밋하지 않은 상태이며, 변경된 파일이 없으므로 새로운 커밋을 만들기 위해서는 파일을 수정하고 git add 명령어를 통해 변경 사항을 스테이징(Staging)한 후에 git commit을 실행해야 합니다. 이후에 git status를 다시 실행하면 커밋할 변경 사항이 표시될 것입니다.

 

 

7) $ notepad README.md 명령어는 "README.md" 파일을 Windows의 기본 텍스트 편집기인 Notepad로 열어서 해당 파일을 편집하라는 명령어입니다. 사용자가 "README.md" 파일을 열고 편집할 수 있게 됩니다.

 

README.md는 파일 이름이며, .md 확장자는 Markdown(MD) 파일을 나타냅니다. Markdown은 일반 텍스트 기반의 경량 마크업 언어로, 문서를 간단하게 작성하고 서식을 적용할 수 있는 방법을 제공합니다.

 

 

위의 명령을 실행시키면 이렇게 메모장이 뜨게 됩니다.

 

 

처음에 생성해준 디렉토리에 저장되어 있는 모습입니다.

 

 

8) 다시한번 상태를 확인해보면 README.md 파일이 추적되지 않은 상태(Untracked files)입니다.

스테이징에 올려주기 위해서 아래와 같이 진해해줍니다.

 

 

9) git add는 Git 버전 관리 시스템에서 변경된 파일들을 스테이징(Staging) 영역으로 추가하는 명령어입니다.

 

 

10) git add를 해준뒤에 상태를 확인해보니 new file이라고 스테이징 영역에 올라간 것을 확인할 수 있습니다.

 

 

+ this is git repository

11) file내용 추가해줍니다.(수정해봅니다.)

 

 

12) README.md 파일을 수정하고 상태를 확인해보니, stage에는 올라가있지만, 아래에 "change not stage for commit :" 이라고 나옵니다. 이 명령어는 해당 파일의 변경 사항이 스테이징 영역에 추가되지 않았기 때문에 이후의 커밋에 포함되지 않을 것임을 나타냅니다. 이 상태에서 커밋을 하려면 해당 파일들을 git add 명령어를 사용하여 스테이징 영역으로 추가한 후에 git commit 명령어를 실행해야 합니다. 이를 통해 커밋에 포함할 변경 사항을 선택할 수 있습니다.

즉, add 하여 stage에 파일을 올려도, 파일을 수정했다면 변경된 파일은 stage에 없기 때문에 수정한 파일을 다시한번 add해줘야 한다. 새롭게 stage영역에 올려줘야 한다.

 

 

13) git diff를 통해 변경된file내용 확인해본다. 

git diff는 Git에서 작업 디렉토리와 스테이징 영역(Staging Area) 또는 커밋(Commit) 사이의 차이를 보여주는 명령어입니다. 때문에 스테이지 영역의 파일과 작업한(수정한) 파일의 차이를 확인해 볼 수 있다. 위의 그림을 보면 초록색 글씨가 추가된 내용을 보여준다.

 

 

14) 버전 commit해줍니다. 버전 커밋이란 git commit 명령어를 사용하여 스테이징 영역(Staging Area)에 추가된 변경 사항들을 새로운 버전으로 기록하게 해주는 겁니다. 때문에 각 커밋은 해당 시점에서의 프로젝트의 상태를 저장합니다. 이러한 순간 상태들은 Git의 객체(database)에 저장되며, 프로젝트의 변경 이력을 추적하는 데 사용됩니다.

 

git commit 명령어를 실행하면, 아래와 같이 커밋 창이 열리거나 텍스트 편집기가 실행되어 커밋 메시지를 입력하라는 요청이 나타납니다. 커밋 메시지는 해당 버전의 변경 사항을 설명하는 짧은 메모를 작성하는 것으로, 커밋의 내용과 목적을 나타냅니다.

 

vi 에디터를 시작하고 텍스트를 입력하려면 다음과 같은 단계를 따릅니다:

  1. 명령 모드 (Command Mode): vi 에디터를 시작하면 기본적으로 명령 모드로 진입합니다.
  2. 입력 모드 (Insert Mode): 명령 모드에서 a 또는 i를 누르면 입력 모드로 변경되어 텍스트를 입력할 수 있습니다.
  3. 명령 모드로 돌아가기: 입력 모드에서 명령 모드로 돌아가려면 Esc 키를 누릅니다. 이렇게 하면 현재 편집 중인 텍스트 입력이 중단되고 명령 모드로 전환됩니다.
  4. 저장하고 나가기:
    • :q: 저장하지 않고 vi 에디터를 종료합니다.
    • :wq: 저장하고 vi 에디터를 종료합니다.
    • :q!: 변경사항을 무시하고 강제로 vi 에디터를 종료합니다.
  5. 한 줄 삭제: dd: 현재 커서가 위치한 행을 삭제합니다.
변경 후

 

 

15) commit 내역 확인하기

git log -p -1은 Git에서 최근의 커밋 하나를 자세한 내용과 함께 보여주는 명령어입니다.

하지만 조금 이상합니다. READNE.md 파일을 수정했는데 commit된 내역을 확인해보니 "this is git repository!" 내용이 누락되어있습니다.(초록색 글씨를 보면 추가된 내용이 없다) 왜 그러까요? 

 

현재 Git 상태를 확인합시다.

 

 

수정 되어 있는 상태를 나타내고 있습니다.

16) Git에서 "modified" 상태는 이미 Git으로 추적 중인 파일들 중에서 변경된 내용이 있는 파일들을 의미합니다. 즉, 해당 파일은 이전 커밋 이후에 수정되었으며, Git이 이를 감지하고 있는 상태입니다.

 

 

17-1) 12번에서 말했다시피 stage에 수정된 파일을 다시 안올려줘서 발생한 문제입니다. 수정했던 README.md 파일을 다시 한번 git에 add해줍니다.

17-2) Git의 상태를 보니 스테이지 영역에 정상적으로 올라갔습니다. 

 

+ 일반적으로 빨간색으로 표시된 "modified"는 변경된 파일이 스테이징 영역에 추가되지 않았음을 의미합니다. 즉, 수정한 파일이 있지만 아직 해당 변경 사항이 스테이징 영역에 추가되지 않아 커밋에 반영되지 않을 것입니다.

+ 반면, 초록색으로 표시된 "modified"는 변경된 파일이 스테이징 영역에 추가되어 커밋할 준비가 되었음을 의미합니다. 이렇게 스테이징 영역에 추가된 파일들은 다음 커밋에 포함되어 버전으로 저장될 것입니다.

 

 

18) git commit --amend는 Git에서 가장 최근의 커밋을 수정하는 명령어입니다.

 

git commit --amend를 실행하면 다음과 같은 작업이 수행됩니다:

  1. 현재 스테이징 영역에 있는 변경 사항들이 이전 커밋에 포함되도록 수정합니다.
  2. 커밋 메시지를 변경할 수 있게 텍스트 편집기가 열립니다. 여기서 새로운 커밋 메시지를 입력하거나 이전 메시지를 수정할 수 있습니다.
  3. 변경 사항이 반영된 새로운 커밋이 생성됩니다.

git commit --amend는 주로 커밋 메시지를 수정하거나 스테이징 영역에 추가한 변경 사항들을 이전 커밋으로 합칠 때 사용됩니다.

 

 

19) 수정된 커밋을 확인해보니 수정된 정보까지 정상적으로 올라간 모습입니다.

 

 

 

 

 

 

수고하셨습니다.

반응형
LIST

'몰입 교육' 카테고리의 다른 글

Cloud Service  (0) 2023.08.04
MSA(Micro-Service Architecture) 설계  (1) 2023.07.31
네트워크 기초  (0) 2023.07.28
Git(Gitbash) 설치 및 다운로드(window)  (0) 2023.07.25
웹이 동작하는 원리 & 데이터 모델링  (0) 2023.07.24