이전 글에서 말씀드렸듯이 설명이 포함된 글을 코드와 주석으로 정리해서 올립니다.

이전 글은 아래 링크를 클릭해서 확인해 주세요.
git 으로 버전관리 하기1 - git 사용법 기초 첫번째
https://ilbbang.tistory.com/entry/git-github-로-버전관리-하기1-기초

git bash 실행를 실행하고 아래 명령어를 입력해 주세요.
1. # 뒤의 내용은 주석입니다. 입력 안하셔도 됩니다.
2. 2단계의 경우 본문에서는 윈도우 탐색기에서 파일을 정상적으로 생성했다면 넘어가도 됩니다.

# 2단계. 새 프로젝트 폴더 생성, 그리고 git bash 실행
mkdir /c/Programming/
mkdir /c/Programming/firstgit

# 3단계. git 1 - 폴더 이동
cd /C/Programming/firstgit

# 4단계. git 사용자 정보 입력 (설치 후 한번만 실행)
git config --global user.name "abc" 
git config --global user.email "abc@abc.com"
git config --list    # 입력된 정보 확인

# 5단계. 초기화 git init
git init
git status    # 6단계. 상태 확인0 git status

# 7단계. 작업 시작 - 파일, 폴더 만들기 및 확인
touch index.html
ls    # 파일이 잘 생성되었는지 확인
git status    # 8단계. 상태 확인1 git status, 파일 추적 전...

# 9단계. 변경된 내용 추적하기, git add
git add -A

git status    # 10단계. 상태 확인2 git status

# 11단계. 확정하기 - git commit
git commit -m "index.html 파일 추가"

git log    # 12단계. 확정(commit, 커밋)된 내용 확인하기 - git log

궁금하신 점이나 잘못 표현된 점이 있다면 댓글로 알려주세요. 

감사합니다.

안녕하세요.

이번에는 제가 버전관리 하는 방법과 절차를 간단하게 설명하겠습니다.
저는 윈도우 운영체제 기준으로 설명하겠습니다.

버전관리 기초에서 프로그램은 git bash만 사용합니다. 보통은 Visual Studio Code, Visual Studio 같은 IDE로 작업하고 자체 git 플러그인을 사용하지만 여기서는 git bash 만 사용해서 진행합니다. 나중에 다른 프로젝트 진행할 때 git bash 를 연결하거나 자체 플러그인으로 버전관리 하는 법도 알려드리겠습니다.

github, nas 등의 원격저장소는 다음 글에서 다룰 예정입니다.


1단계. 설치

우선 컴퓨터에 git을 설치해야겠죠? git은 아래 사이트에 들어가서 운영체제에 맞는 버전을 설치하면 됩니다.

 

Git

 

git-scm.com

설치 과정은 생략하겠습니다. 설치 방법이 궁금하시면 아래 링크를 클릭해주세요.

 

Git - Git 설치

이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0 이후 버전에서는 잘 동작한다.

git-scm.com

설치가 완료되면 윈도우 버전의 경우 git bash 프로그램을 실행할 수 있습니다. 윈도우 기본 명령 프롬프트(CMD)에서도 실행은 가능하지만 기본 명령어 중에서 맥, 리눅스 명령어와 다른 내용이 있기 때문에 git bash로 따라하는 걸 추천합니다. 

2단계. 새 프로젝트 폴더 생성, 그리고 git bash 실행

윈도우 탐색기에서 프로젝트 폴더를 하나 생성합니다. 저는 "C:\Programming\firstgit" 폴더를 만들었습니다.

새로 생성한 C:\Programming\firstgit 폴더

그리고 아래 아이콘을 찾아서 git bash 프로그램을 실행합니다.

Git Bash 실행 아이콘

그러면 아래 그림과 같이 명령창이 나타납니다.

git bash 실행하면 나타나는 처음 화면

이렇게 되면 버전관리를 할 준비가 완료되었습니다.

3단계. git 1 - 폴더 이동

git bash 명령창에 "pwd" 를 입력하면 현재 폴더 위치가 나타납니다.
(윈도우 프롬프트에서는 기본적으로 현재 위치가 표시됩니다. git bash에서도 원래는 디렉토리가 표시되지만 사용자의 홈 디렉토리인 경우에는 ~로 표시됩니다.) "cd C:/Programming/firstgit" 를 입력해서 새로 생성한 폴더로 입력합니다. 

잠깐! 윈도우 프롬프트에서는 "cd C:\Programming\firstgit" 를 입력하면 됩니다만 git bash 에서는 리눅스 명령어를 사용하기 때문에 \ 표시를 전부 / 표시로 바꿔줘야 합니다. git bash에서 "cd C:\Programming\firstgit" 를 입력하면 아래와 같이 오류가 발생합니다.

첫 실행, 현재 폴더 확인 및 폴더 이동

이제부턴 캡처 화면 대신 글씨로 표현하겠습니다.

따라하실 때는 입력 또는 예시 오른쪽 칸의 $ 뒤에 있는 부분만 입력하시면 됩니다.

4단계. git 사용자 정보 입력 (설치 후 한번만 실행)

설정은 git을 처음 실행하였을 경우에만 하면 됩니다. 다음 프로젝트 부터는 이 과정을 생략해도 됩니다.
작성요령에서 "사용자이름" 대신에 작업하시는 분 이름 또는 별명을 입력해 주세요. "이메일주소" 대신에 작업하시는 분 이메일 주소를 입력해 주세요.

작성요령1 사용자 이름
작성요령2 이메일 주소
$ git config --global user.name "사용자이름"
$ git config --global user.email "이메일주소"
작성요령1의 예시 - 사용자이름은 abc
작성요령2의 예시 - 사용자의 이메일 주소는 abc@abc.com
$ git config --global user.name "abc"
$ git config --global user.email "abc@abc.com"

도움이 필요해... git help

위 내용대로 입력하였으면 잘 입력되었는지 확인해야 겠죠? 아래 명령어를 입력하면 다음과 같이 입력된 내용을 확인할 수 있습니다.

입력 $ git config --list
결과 ...중략...
user.name=abc
user.email=abc@abc.com

위 명령어에 대한 도움이 필요하시면 help 옵션으로 도움말 인터넷 창을 띄울 수 있습니다. (영어페이지로 연결됩니다. 인터넷 연결 없이도 실행됩니다.)

작성요령1
작성요령2
(작성요령1, 2는 같은 결과)
$ git help 알고자하는명령어
$ git 알고자하는명령어 --help

작성요령1의 예시
작성요령2의 예시
$ git help config
$ git config --help
결과 - git 명령어 중 config 속성에 대한 도움말 호출 git-config(1) Manual Page 가 열립니다.(html 파일)

5단계. 초기화 git init

이제 해당 폴더의 버전관리를 시작해 보겠습니다. 간단합니다. "git init" 명령어를 입려하면 버전관리를 시작합니다.

입력 $ git init
결과 Initialized empty Git repository in C:/Programming/firstgit/.git/

iljun@aijmac MINGW64 /c/Programming/firstgit (master)

그리고 폴더 옆에 (master)가 추가된 것을 확인할 수 있습니다. 

git init

6단계. 상태 확인0 git status

현재 폴더 내의 변경된 내용이 있는지 확인하는 방법은 "git status" 명령어를 입력하면 됩니다. 현재 아무 작업도 안했기 때문에 No commits yet, nothing to commit 이라는 결과가 나옵니다.

입력 $ git status
결과 On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)

저 같은 경우에는 git status 는 작업하고 추가하기 전(8단계), 추가(git add) 후 커밋 전, 커밋(git commit) 후 확인할 때 사용합니다.

7단계. 작업 시작 - 파일, 폴더 만들기 및 확인

이 단계는 git이 아닌 리눅스 명령어 입니다.

이제 파일을 하나 만들어 보겠습니다. "touch index.html" 을 입력하면 입력 폴더에 새 파일이 생깁니다.
이제 파일이랑 폴더가 잘 생성되었는지 확인해 봅시다. "ls"를 입력하면 생성된 파일 및 폴더가 나타납니다.

작성요령1 $ touch 생성할파일이름(확장자포함)
작성요령1의 예시 - index.html 파일 생성
입력 - 생성된 파일, 폴더 확인
$ touch index.html
$ ls
결과 index.html

파일 새로 만들기(touch), 확인(ls)

8단계. 상태 확인1 git status, 파일 추적 전...

이제 다시 git status 를 입력해 보겠습니다. 6단계랑은 다르게 untracked file 목록에 index.html이 나타났습니다.

입력 $ git status
결과 On branch master
No commits yet
Untracked files:
  (use "git add ..." to include in what will be committed)
        index.html
nothing added to commit but untracked files present (use "git add" to track)

git status 입력 및 결과 - untracked

9단계. 변경된 내용 추적하기, git add

이 파일을 추적하려면 git add index.html 을 입력하면 됩니다.

작성요령1 - 하나의 파일 추적 시작 $ git add 추적을시작할파일이름
작성요령1의 예시 - index.html의 변경내역을 추적 시작합니다. $ git add index.html

추적할 파일이 여러개인 경우 하나하나 추가하기 힘들기 때문에 특별한 경우(파일마다 추적하는 내용이 달라서 commit을 따로 하고 싶은 경우)가 아니라면 보통은 git add -A 를 입력하여 모든 변경된 내역을 추적합니다.

입력 $ git add -A

예제에는 추적할 파일이 하나이니 때문에 git add index.html 과 git add -A 는 같은 같다고 보시면 됩니다.

10단계. 상태 확인2 git status

이제 추적할 파일이 잘 추가되었는지 확인해 볼까요? 다시한번 git status 명령어를 입력합니다. 그러면 8단계 결과와는 또 다르게 커밋의 내용과 파일명이 나타납니다. index.html 파일이 추가되었다고 나와있네요.

입력 $ git status
결과 On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached ..." to unstage)
        new file:   index.html

git status 입력 및 결과 ready to commit

 

11단계. 확정하기 - git commit

추적할 파일들을 다 추가하였다면 이제 commit 하여 변경내역을 확정하고 기록합니다. 

작성요령1 $ git commit -m "변경된내용"
작성요령1의 예시 - index.html 파일 추가라는 내용으로 변경내역을 기록하고 확정 $ git commit -m "index.html 파일 추가"
결과 [master (root-commit) e8e62de] index.html 파일 추가
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 index.html

git commit 입력 및 결과

참고]git bash 글꼴 바꾸기 (예민하지 않은 분들은 넘어가도 상관없습니다.)

처음으로 한글이 나왔는데 한글 부분의 장평(글자와 글자 사이의 간격)이 넓게 나옵니다. 이 부분을 좀 더 깔끔하게 보고 싶으시다면 글꼴을 변경해 주면 됩니다. 우선 git bash 프로그램 오른쪽 상단에 있는 아이콘을 클릭하면 메뉴가 나타납니다. Options... 를 선택합니다.

git bash 한글 글꼴 바꾸기1

Options... 를 선택하면 옵션 창이 나오는데요. 왼쪽 메뉴들 중 Text를 선택하면 오른쪽 부분이 아래 그림과 같이 바뀝니다. Font 를 바꿔주기 위해 Font 네모칸 안쪽의 오른쪽에 있는 Select... 버튼을 클릭합니다.

git bash 한글 글꼴 바꾸기2

Select... 버튼을 클릭하면 아래 그림과 같이 폰트를 선택할 수 있는 창이 나옵니다. 한글폰트 중 원하는 폰트를 선택합니다. (해당도가 높고 화면이 작아서 글씨가 잘 안보이실 경우 글자 크기도 원하는 수준으로 키워주셔도 됩니다.) 저는 기존 Lucida Console 폰트에서 굴림체 폰트로 바꿨습니다. 확인 버튼을 클릭합니다.

git bash 한글 글꼴 바꾸기3

확인 버튼을 클릭하면 아래 그림과 같이 선택한 폰트로 변경된 것을 확인하고 아래에 있는 Save 버튼을 클릭합니다.

git bash 한글 글꼴 바꾸기4

Save 버튼을 클릭하면 아래 그림과 같이 한글도 깔끔하게 표시되네요.^^

git bash 한글 글꼴 바꾸기5

12단계. 확정(commit, 커밋)된 내용 확인하기 - git log

수고하셨습니다. 첫번째 버전관리가 기록되었습니다. 이제 내용이 잘 기록되었는지 확인해 봅시다. git log 명령어를 입력하면 변경내역이 나타납니다. 현재는 한개의 commit 만 있습니다. commit 뒤에 있는 e8e6... 은 commit 일련번호입니다. 나중에 특정 커밋을 조회하거나 되돌리기 등의 기능을 사용할 때 필요합니다. 그 외에 작업한 사용자의 이름과 이메일, commit 일자, 내용이 나타납니다.

입력 $ git log
결과 commit e8e62de7dd605f6440a9e65eb9627444e14293f5 (HEAD -> master)
Author: ilbbang7 <ilbbang7@gmail.com>
Date:   Fri May 24 00:42:03 2019 +0900
    index.html 파일 추가

git log 입력 및 결과

 

앞으로의 계획

간단하게 작성한다고 했는데도 글이 생각보다 기네요... 추후에 위 글을 한눈에 실습할 수 있도록 설명 없이 코드만 모아서 올리겠습니다. > 2019년 5월 26일 업로드 완료
git 으로 버전관리 하기1 - git 사용법 기초 첫번째[코드위주]
https://ilbbang.tistory.com/entry/git-으로-버전관리-하기1-git-사용법-기초-첫번째코드위주

12단계 이후에 추가로 작업하고 변경하는 것은 7단계에서 html의 내용을 수정하거나 다른 파일(또는 폴더)을 추가하고 8단계에서 11단계까지 비슷하게 수행하면 됩니다. 12단계는 11단계까지 문제 없이 잘 되었나 확인하는 과정입니다. 우선은 직접 한번 해보세요. 추가 작업해서 2번째 커밋하고 확인하는 과정은 추후에 올리고 링크 남기겠습니다.

현재 작업은 한 장소에만 작업이 저장되어 있어 이 폴더를 지울 경우 버전관리된 내용이 전부 날아가게 됩니다. 따라서 원격 저장소를 생성하여 버전관리도 여러장소에 백업할 수 있습니다. 원격저장소 종류도 여러가지가 있습니다. 이 부분은 추후에 별도의 올리고 링크 남기겠습니다.

저도 아직 전문가는 아니고 공부한 내용을 나름대로 설명하다 보니 부족한 내용이 많습니다. 궁금하신 점이나 잘못 표현된 점이 있다면 댓글로 알려주세요. 

감사합니다.

안녕하세요.

버전 관리하는 방법을 설명하기 전에 그동안 제가 개발을 해왔던 내용 중 백업과 버전 관리 부분을 어떻게 해왔는지 공유해 보겠습니다.

1. 백업, 버전관리를 전혀 하지 않았음

1-1. 1대의 컴퓨터에서 작업

처음 개발을 할떄는 버전 관리를 전혀 하지 않았습니다. 처음에는 로컬에 작업 공간을 만들어서 개발을 진행했습니다. 저는 대부분 혼자서 개발을 해 왔고 한대의 컴퓨터에서만 작업할 때에는 별 문제점이 없었습니다.

1-2. 여러대 컴퓨터에서 작업할 때 - 외장 스토리지 사용

여러 컴퓨터에서 왔다 갔다 하면서 작업하기 위해서 USB나 외장하드를 이용해서 작업하곤 했었죠.

USB에서 직접 작업할 경우 속도도 문제이지만
(센디스크의 경우?) USB가 잠겨버려서 포맷도 안 되는 경우를 몇 번 경험했습니다.

외장 하드의 경우 휴대성이 약간 떨어지긴 하지만 직접 작업하는 데는 지장이 없었습니다.
잠겨버리는 경우도 아직 경험하진 못했고요.
선과 외장하드를 케이스에 넣고 빼기가 생각보다 귀찮습니다. 가끔 작업해야 되는데 두고 온 적도 종종 있습니다.

1-3. 나스(NAS) 구매

나스를 구매한 뒤로 원격에서도 해당 공간에 바로 접속해서 작업도 해봤습니다. (제가 구매한 나스는 시놀로지사의 DS218에 4TB HDD를 장착했습니다.) 내부 네트워크에서는 속도가 빨라서 문제점을 찾지 못했는데 원격으로 할 때는 인터넷 상태에 따라서 속도가 많이 느려지는 단점이 있습니다.


1의 방법들은 각각의 휴대/원격 공간에서 직접 작업하는 방법으로 작업공간은 어떻게든 하나만 존재합니다. 이제부터 작업공간이 2개 이상 생겨서 백업을 한다고 볼 수 있습니다.

2. 백업, 버전관리 초보 - 동기화, 버전 별 압축하기

2-1. 동기화 프로그램 - 백업은 되지만 버전 관리는 안됨

로컬에서 작업을 한 뒤에 동기화 프로그램으로 동기화 해서 최신 버전을 유지하는 방법도 사용해 봤습니다.
무료 프로그램 중에서 FreeFileSync가 있는데 유용하게 잘 썼습니다.

 

FreeFileSync

Download the latest FreeFileSync 10.12. FreeFileSync is a free open source data backup software that helps you synchronize files and folders on Windows, Linux and macOS.

freefilesync.org

하지만 여러 프로젝트를 진행하게 되면 스캔하고 동기화 할 때마다 적지 않은 시간이 소요됩니다. 그리고 항상 최신 버전으로 백업하기 때문에 버전 관리를 수동으로 해줘야 합니다.

2-2. 백업할 때마다 압축해서 날짜 적어놓기

백업 저장소에도 생각날 때 마다 압축파일을 만들어 날짜를 포함해서 다른 공간에 차곡차곡 쌓아두었습니다.

압축할 때마다 전체 프로젝트를 저장하게 되면 용량이 쓸데없이 많아집니다. 압축할 때마다 새로 고친 파일만 저장하게 되면 나중에 해당 버전을 쓸 때 추가로 작업할 내용이 많아 귀찮아집니다.


3. 드디어 버전관리도 시작? GIT 입문! 두둥

그러다가 최극 작업물부터 git을 활용해서 버전을 관리하기 시작했습니다.
아직 협업까지는 진행해 보지 않았지만 위에서 발생하는 문제점들을 잘 해결해 줬습니다.
아직 적응을 못해서 가끔 리모트 저장소에 push를 안 해놓고 가서 다른 장소에서 작업을 못 한 적이 있긴 하지만
작업 전 후 버전관리에 습관을 들인다면 이런 실수도 줄어들겠죠?

git도 관련 서비스가 엄청 많습니다. 저는 우선 git, git-server, github, TortoiseGit 정도 사용해 봤습니다.

 

Git

 

git-scm.com

 

Build software better, together

GitHub is where people build software. More than 36 million people use GitHub to discover, fork, and contribute to over 100 million projects.

github.com

 

TortoiseGit – Windows Shell Interface to Git

Support Manuals, FAQ, bug reporting, mailing list, and more…

tortoisegit.org

다음번에는 제가 git으로 버전 관리하는 방법을 알려드리겠습니다.

감사합니다.

+ Recent posts