04. Git 연습 (메모장)
주의사항
1. 아래 실습 로드맵의 [1. Git 로컬 저장소에서 커밋 관리하기] 파트를 Git과 메모장을 사용해서 연습해 봅시다.
2. 실습 로드맵
![](https://blog.kakaocdn.net/dn/QXs0y/btsK5Ptnlyv/yLk2u0ok0FacLtUQHGXka0/img.png)
3. 저장, 불러오기, 파일명(식별자)
저장과 불러오기, 파일명(식별자)이라는 개념에 대해 명확히 인지하고 있는지 한 번 확인합시다.
가장 먼저, 모든 프로그램은 데이터를 "저장" 하는 기능이 있습니다.
단순히 문서를 작성하는 프로그램부터, 이미지를 편집하거나, 영상, 음성, 게임 등을 다루는 모든 프로그램들은 데이터를 저장 하는 기능이 있습니다.
이 때 저장되는 데이터를 구분하기 위해 고유한 식별자("파일명")을 사용합니다.
이름을 통해 세상의 사물을 구분하듯이, 파일명을 통해 저장된 데이터들을 식별 할 수 있습니다.
그리고 마지막으로 사용자는 저장된 데이터를 "불러오기" 할 수 있습니다.
불러오기 하는 데이터 대상은 저장할 때 사용한 파일명을 기준으로 식별됩니다.
준비
1. 폴더를 생성합니다.
이 작업은 프로젝트 작업 폴더라고 가정합니다.
아래 경로는 예시입니다.
원하는 경로에 폴더를 생성세요.
폴더 이름도 원하시는 이름을 사용합니다.
C:\Users\KDT\Downloads\Hello_Git
2. 생성한 폴더 안에 <README> 라는 메모장 파일 하나를 생성합니다.
![](https://blog.kakaocdn.net/dn/AND3Y/btsEZQR8ryW/J8za9M8Zw8e6Fi1VNk3KXk/img.png)
파일 탐색기에서 ①마우스 오른쪽 버튼을 클릭하고 ②새로 만들기 > ③텍스트 문서를 클릭합니다.
![](https://blog.kakaocdn.net/dn/b12qnE/btsE0KqkNqS/pmTxVOwbGWIxd5maBrIM71/img.png)
④ 파일 이름을 <README.txt>로 합니다.
@README 텍스트 파일은 일반적으로 프로젝트의 상세가 작성됩니다.
GitHub에서는 README.md 라는 Markdown 파일이 사용되는데, 텍스트 파일과 크게 다르지 않습니다.
Qt README.md 예시 링크
3. 생성한 REAME.txt 메모장에 원하는 문장을 입력합니다.
![](https://blog.kakaocdn.net/dn/AkNZC/btsE3mvfSgY/VnxjUINrgyllyD0YWTwqc1/img.png)
①REAME.txt 텍스트 파일을 열고, ②메모장에 원하는 문장을 입력하고, 저장합니다.
@메모장 작성과 소스코드 작성 작업은 다르지 않습니다.
소스코드는, 프로그래밍 언어의 문법 규칙에 맞는 문장으로 작성된 문서입니다.
위 메모장은, 한국어라는 언어의 문법 규칙에 맞는 문장으로 작성된 문서입니다.
4. Git Bash 실행 설정을 확인합니다.
![](https://blog.kakaocdn.net/dn/vMGHb/btsEWL4RW7L/wfk9VSmyKqOMwEJSfaTnPk/img.png)
①원하는 폴더에서 마우스 오른쪽 키를 클릭했을때, ②Git Bash Here을 클릭할 수 있는 메뉴가 보입니다.
![](https://blog.kakaocdn.net/dn/L0IUg/btsEYXXNfwS/bfgHIYMSsbMjUW1jYJbJ2K/img.png)
깃 설치 과정에서 Open Git Bash Here 설정을 체크하지 않았다면 해당 메뉴가 없습니다.
![](https://blog.kakaocdn.net/dn/bRtRAw/btsEZaXCbHK/Jkroghan6MtX5EzrDx6iek/img.png)
③Git Bash 를 실행했다면, 오른쪽의 경로가 내가 실행하고자 하는 경로와 동일한지 다시 한번 확인합니다.
01. Git 초기화(시작)
01.1 프로젝트 작업 공간에 Git 로컬 저장소를 생성
![](https://blog.kakaocdn.net/dn/cUTeDR/btsE6GAhvW6/XVv02urO5D8bbLmo4QVB31/img.png)
①Git Bash의 $ 뒤에 명령어를 입력할 수 있습니다. git init 명령어를 입력합니다.
②Initialized empty Git repository ~ 라는 텍스트가 출력되면 성공적으로 깃 로컬 저장소가 생성되었음을 의미합니다.
![](https://blog.kakaocdn.net/dn/zqbpv/btsEYXqhgKp/FI20HVikBy5EJsz5OQSQ91/img.png)
③ 파일 탐색기 상단의 보기 탭으로 이동합니다.
④ 숨긴 항목을 체크합니다.
⑤ <README.txt>파일이 있는 곳에 <. git 폴더>가 생성되어 있음을 확인할 수 있습니다.
(숨김 폴더이기 때문에, 숨김 항목 보기가 필수입니다.)
@<.git 폴더>를 로컬 저장소(Local Repository)라고 합니다.
git init 명령어의 init은 "initialize(초기화)"를 뜻합니다.
git init을 사용해 해당 경로에 깃을 활성화하면, <.git 폴더>가 생성되고, 깃 명령어를 사용 할 수 있습니다.
해당 경로에서 발생하는 모든 수정 사항들을 깃이 추적합니다.
그리고 깃 명령어로 작업한 모든 정보가 <.git 폴더>에 기록됩니다.
<.git 폴더>가 삭제되면, 모든 깃 작업 내용 삭제됩니다.
02. Git 커밋(저장)하기
02.1 커밋(commit)이란?
git에서 commit은 의미 있는 변경 작업(=버전)들을 git 로컬 저장소에 기록하는 동작입니다.
깃은 버전을 관리하는 시스템입니다.
깃에서는 버전을 커밋(commit)이라는 단위로 다룹니다.
커밋의 사전적 의미
- (그릇된 일·범죄를) 저지르다[범하다]
- …
- ~을 마음에 새기다[기억하다]
- ~을 적어 두다
깃의 커밋 기능과 가장 유사한 사전적 의미는 "~를 적어 두다" 입니다.
즉, commit 은 의미 있는 변경 작업들을 git 저장소에 저장하는 동작입니다.
앞에서 1)메모장을 만들고, 2)git 로컬 저장소를 생성했지만
의미 있는 변경 작업을 git 저장소에 저장하는 동작은 진행하지 않았습니다.
커밋(commit)을 작업을 진행해봅시다.
02.2 깃(Git)에 커밋할 파일 추가(add)하기
![](https://blog.kakaocdn.net/dn/bVhGGR/btsEZab4sdG/HpVZIjKxhg1Ct6b6AOgUDk/img.png)
커밋(저장)을 하기 전에, 어떤 파일을 커밋(저장)할지 깃에 등록해야 합니다.
git add <커밋할 파일 이름>
02.3 깃(git)에 의미 있는 변경 작업을 커밋(commit)하고 커밋 식별 메시지(-m "msg")를 추가하기
![](https://blog.kakaocdn.net/dn/dN1RSi/btsE4YVLvrr/RVorPboo8WiSDrIaSwH4F1/img.png)
깃은 버전 관리 시스템이고, 깃은 이 버전을 커밋이라는 단위로 관리합니다.
깃에 커밋(commit)할 파일 추가하기 = 깃에 저장할 파일 추가하기
사용자가 문서 제목으로 저장된 문서를 구분하듯, 커밋은 커밋 메시지를 사용해 식별할 수 있어야 합니다.
git commit -m "커밋식별문장(설명)"
Git 커밋 추가
1. <REAME.txt> 메모장에 "추가 문장"을 입력합니다.
![](https://blog.kakaocdn.net/dn/ddjNPO/btsE6I6hMnZ/LPUiu25cTf96yMnNlr7cA0/img.png)
① REAME.txt 파일에
② "새로운 내용"을 추가하여 파일을 저장합니다.
③ 내용이 변경된다면, 깃이 변경된 사항을 추적합니다.
2. 커밋(commit)
![](https://blog.kakaocdn.net/dn/5BR3x/btsE3mQdoEj/q0RJpwI92DKorGGNaOskEK/img.png)
① 커밋(저장)을 하기 전에, 어떤 파일을 커밋(저장)할지 지정해야 합니다.
② 그리고 각각의 커밋들을 사용자가 구분할수 있도록 메시지를 함께 작성합니다.
03. Git 커밋 목록 확인
![](https://blog.kakaocdn.net/dn/2JO7F/btsE7vyLWFZ/sKeKRlgAsK2JUzFBapL0ok/img.png)
커밋은 저장된 버전입니다.
①git log 명령어는 최신 commit부터 리스트로 보여줍니다.
②각 commit 들은 커밋할 때 입력한 메시지로 구분할 수 있습니다.
③각 commit은 사용자가 입력한 메시지 이외에, 헤시 코드를 아이디로 가집니다.
git log
Git 커밋 반복 실습
문서를 저장하듯, 소스코드를 커밋이라는 단위로 저장할 수 있습니다.
메모장 수정 > 커밋(commit) 실습을 충분히 진행해 주세요.
메모장 수정은 소스코드를 수정하는 것과 동일한 작업입니다.
수정된 작업이 있다면, Git은 수정된 내용을 추적합니다.
04. Git 커밋 불러오기(되돌리기)
04.1
저장된 문서를 언제든 불러올 수 있듯이, 저장된 커밋도 언제든 불러올 수 있습니다.
개발을 하다가 요구 사항이 바뀌어서 이전 커밋부터 다시 개발하고 싶다면, Git을 이용해 다시 되돌릴 수 있습니다.
04.2 현재 커밋에서 과거 커밋으로 되돌리기
git checkout <커밋 아이디 첫 7자리>
04.3 checkout
![](https://blog.kakaocdn.net/dn/sZsMT/btsE40GkUIA/Ohh0N1qfKtfMaTMewewqFK/img.png)
git log 명령어로 commit 리스트를 확인하고,
① git checkout 0x1234 명령어로 과거 commit으로 되돌아갑니다. commit id 7자리를 사용합니다.
② git checkout 명령을 취소하는 방법입니다.
@checkout 명령어는 현재 실무에서 거의 사용되지 않습니다.
checkout 명령어는 switch, restore 등의 보다 세부 기능으로 나누어졌고, 이 명령어를 주로 사용합니다.
checkout 명령어는 깃과 커밋과 불러오기 구조의 이해를 돕기 위해 이번 실습에서만 사용합니다.
![](https://blog.kakaocdn.net/dn/bk1lj3/btsE6Rvi3k4/8Mn4GWr9QWGNkCXOKhMlS1/img.png)
④ 커밋을 기준으로 되돌린 텍스트 파일을 확인합니다.
⑤ 마지막 커밋 시점에서 작성했던 내용이 사라지고, 과거 커밋 시점으로 변경된 것을 확인합니다.
05. 과거 커밋에서 현재 커밋으로 복구
![](https://blog.kakaocdn.net/dn/bAuXEw/btsE3mv87Dy/KrpeOLJbYHnztXt5wvAJv1/img.png)
①REAME.txt 파일이
②최신 커밋 기준으로 내용이 복구되었음을 확인합니다.
git checkout -
06. 정리 & 실습
01. 정리 & 실습
① git 로컬 저장소를 생성하고, git을 활성화 합니다.
~ 파일 작업(수정, 추가 등)
② 작업한 파일 깃에 추가 → 메시지와 함께 커밋하기 (반복)
③ 커밋 로그 확인
④ 커밋 되돌리기 (→ 커밋 복구하기)
02. 실습
<.git 폴더>를 삭제하고 위 작업을 반복 실습합니다.
①②③④⑤⑥⑦⑧⑨