[ Git, Github ] 설정하기 (초보)
Git 이란? Git은 버전을 편리하게 관리 할 수 있게 도와주는 도구입니다. 우리가 작업하고 있는 파일들을 원하는 순간으로 다시 돌아갈 수 있게 만들어주죠. 많은 개발자가 자신이 개발한 프로그램을 Github를 통해 관리하고 있고 Git, Github를 알고 있다면 협업할 때 큰 도움이 됩니다.
Git 설치 - Git은 명령어를 기본으로 한 명령어 프로그램이기 때문에 Terminal에서 Command를 통해 배워야 다양한 기능 사용이 가능하지만 GUI 프로그램도 많이 있습니다. Git 공식 홈페이지에 가시면 관련 사용 할 수 있는 GUI Application 프로그램을 확인하실 수 있습니다. (모든 Git의 기능을 담은 GUI Application은 찾기도 힘들고 각 버튼을 클릭 시 어떠한 기능이 수행되는지 정확히 알기 어렵기 때문에 Git을 처음 배울 때는 Terminal을 이용하여 명령어로 수행하여 배우는 것을 추천함)

- GitHub Desktop : 사용 가능한 기능이 제한적
- SourceTree : 전반적으로 많이 이용 (명령어를 이용하여 할 수 있는 기능보다는 제한적이만 다양한 기능이 포함)
- GitKraken : 화려한 UI
1. Terminal
Mac이나 Windows에서 제공하는 기본적인 Terminal Tool을 이용해도 되지만 좀 더 편리한 기능이 포함된 Terminal을 사용하고 싶다면 아래 Terminal 프로그램을 추천합니다.
- iTerm2 (Mac)
- Cmder (Windows) : 윈도우 사용자들에게 권장하는 터미널 프로그램. DOS 명령어 뿐만 아니라 리눅스의 명령어도 그대로 사용할 수 있다는 장점이 있음 (Cmder Full Version은 Git이 기본적으로 포함되어 설치되기때문에 별도로 Git을 설치 할 필요는 없음)
2. Git 설치
현재 Git이 설치되어 있는 지 확인하려면 아래 명령어를 수행합니다.
C:> git --version git version 2.29.1.windows.1

Git 이 설치되어 있지 않다면 Git 다운로드 페이지로 이동하여 OS에 맞는 Git을 다운로드 하여 설치합니다.

3. Git 설정 (Text Editor)
git config --list 입력하여 현재 설정된 git 설정을 확인 할 수 있습니다.
c:> git config --list core.symlinks=false core.autocrlf=true core.fscache=true color.diff=auto color.status=auto color.branch=auto color.interactive=true help.format=html diff.astextplain.textconv=astextplain rebase.autosquash=true filter.lfs.clean=git-lfs clean -- %f filter.lfs.smudge=git-lfs smudge -- %f filter.lfs.process=git-lfs filter-process filter.lfs.required=true credential.helper=helper-selector

git 설정을 파일로 열어보기를 원한다면 git config --global -e 이라고 입력하시면 Terminal에서도 Edit 모드가 수행됩니다.
git config --global -e # This is Git's per-user configuration file. [user] # Please adapt and uncomment the following lines: # name = unknown # email = Administrator@SKCC20N01081.SKCC.NET
Teminal Edit 모드가 불편하신 분은 Text Editor 프로그램을 연결 할 수 있습니다. 편집기에 해당하는 명령어 입력 후 git config --global -e 를 다시 입력하시면 해당 Text Editor 프로그램으로 수행되는 것을 확인하실 수 있습니다.
편집기 | 환경설정 명령어 |
nano | $ git config --global core.editor "nano -w" |
Text Wrangler | $ git config --global core.editor "edit -w" |
Sublime Text (Mac OS) | $ git config --global core.editor "subl -n -w" |
Sublime Text (Windows) | $ git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w" |
Notepad++ (Windows) | $ git config --global core.editor "'c:/program files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin" |
메모장 (Windows) | $ git config --global core.editor "notepad" |
VS Code | $ git config --global core.editor "code" |
Kate (리눅스) | $ git config --global core.editor "kate" |
Gedit (리눅스) | $ git config --global core.editor "gedit -s" |

4. Git 설정 (User)
User 정보를 아래와 같이 설정합니다.
C:> git config --global user.name "Yunwoong" C:> git config --global user.email "이메일 주소@gmail.com" ## 아래와 같이 입력하여 설정한 User정보 확인 가능 C:> git config --global user.name Yunwoong C:> git config --global user.email 이메일 주소@gmail.com
운영체제마다 Editor에서 새로운 줄바꿈을 할 때 들어가는 문자열이 달라집니다. Windows 경우는 text\r\n 와 같이 carriage-return 과 line feed 가 들어가는 반면 Mac에서는 text\n 와 같이 line-feed 하나만 들어가게 됩니다. 이런 차이점때문에 Git repository를 다양한 운영체제에서 사용하는 경우에 수정을 하지 않았음에도 문자열 줄바꿈이 달라서 Git History나 Git blame 보는데 문제가 있을 수 있습니다. 이것을 수정 할 수 있는 설정이 autocrlf 설정입니다.
Windows에서 true 로 설정하게 되면 Git에 저장 할 경우carriage-return 을 삭제하게 되고 다시 Git에서 Windows로 가져올 때에는carriage-return을 붙여주게 됩니다. Mac에서는 input으로 설정하게 되면 Git에서 받아올 경우에는 그냥 받아오게 되고 저장 시에는carriage-return을 삭제하게 됩니다. (Mac에서는 carriage-return을 추가하지 않는데 저장 시에 삭제하는 이유는 이메일 등에서 복사/붙여넣기로 인해 carriage-return이 실수로 추가되는 경우가 존재하기 때문입니다.)
## 윈도우 사용자 git config --global core.autocrlf true ## Mac OS 사용자 git config --global core.autocrlf input
5. Git 명령어

Git에서 사용가능한 모든 명령어는 Git 공식홈페이지 Documentation-Reference 에서 확인해 보실 수 있습니다. 각 명령어를 클릭하면 사용가능한 옵션도 확인이 가능합니다.

또한 Terminal에서 명령어 다음에 --h 를 입력하면 간단하게 정보를 확인 할 수 있습니다.
C:\git > git config --h Config file location --global use global config file --system use system config file --local use repository config file --worktree use per-worktree config file -f, --file <file> use given config file --blob <blob-id> read config from given blob object Action --get get value: name [value-regex] --get-all get all values: key [value-regex] --get-regexp get values for regexp: name-regex [value-regex] --get-urlmatch get value specific for the URL: section[.var] URL ... ... ...
6. Git 초기화/삭제
Git을 초기화 하고 싶다면 git init명령어를 통해 할 수 있습니다.
## 폴더 생성 C:\> mkdir git C:\> cd git ## Git 초기화 C:\git > git init Initialized empty Git repository in C:/git/.git/ C:\git (master) > ls -al drwxr-xr-x 1 Administrator 197121 0 6월 16 22:18 ./ drwxr-xr-x 1 Administrator 197121 0 6월 16 22:18 ../ drwxr-xr-x 1 Administrator 197121 0 6월 16 22:18 .git/
ls -al 명령어를 수행하여.git 이라는 숨겨진 폴더를 확인 할 수 있습니다. (폴더나 파일명 앞에 "." 포함되어 있다면 숨겨진 파일이거나 폴더입니다.) 해당 폴더를 열어보면 Git repository에 관련된 다양한 폴더와 파일을 확인 할 수 있습니다. Git과 관련된 정보들이 .git 폴더에 저장된다는 것을 알 수 있습니다.
## Windows explorer .git\ ## Mac OS open .git
그리고 init을 수행하여 git을 초기화하게되면 기본적으로 master branch 가 생성이 됩니다. 저장소에 새로운 파일을 추가 한다거나 추가한 파일의 내용을 변경하여 그 내용을 저장(커밋, Commit)하는 것은 모두 'master' 라는 이름의 branch를 통해 처리할 수 있는 일이 됩니다. 'master'가 아닌 또 다른 새로운 branch를 만들어서 '이제부터 이 branch를 사용하겠다!'라고 선언(checkout)하지 않는 이상, 모든 작업은 'master' branch에서 이루어 집니다.

Git을 삭제하고 싶다면 rm -rf .git 명령어를 이용하여 삭제 할 수 있습니다.
C:\git (master) > rm -rf .git\ C:\git >
Sourcetree를 통해 추가하는 방법은 이미 생성된 Git 폴더가 있는 경우 Drag&Drop을 통해 추가 하거나 Create를 통해서 신규 repository를 추가 하실 수 있습니다.


Git의 상태를 확인하고 싶다면 git status 명령어를 사용 하시면 됩니다.
C:\git > git status On branch master No commits yet nothing to commit (create/copy files and use "git add" to track)
7. Git 명령어 단축키
반복적으로 사용하는 명령어를 단축하여 사용하고 싶다면 global의 alias를 이용하여 단축키를 설정 할 수 있습니다. 예를들어 status라는 명령어를 st로 설정한다면 아래와 같이 설정하여 수행 가능합니다.
C:\git > git config --global alias.st status C:\git > git st On branch master No commits yet nothing to commit (create/copy files and use "git add" to track)
'Insights > Git, Github' 카테고리의 다른 글
[ Github ] gist를 사용하여 Jupyter Notebook 포스팅 (0) | 2022.01.06 |
---|---|
[ Git, Github ] 기본 사용법 (0) | 2021.06.18 |
[ Git, Github ] 개념 정리 (초보) (0) | 2021.06.18 |
댓글
이 글 공유하기
다른 글
-
[ Github ] gist를 사용하여 Jupyter Notebook 포스팅
[ Github ] gist를 사용하여 Jupyter Notebook 포스팅
2022.01.06Github Gist란? GitHub Gist는 주로 코드조각(Code Snippet), 로그, 메모 등을 남기는데 사용합니다. 또한 빈번한 수정이 필요한 글을 내장(embed) 링크로 사용하면 좋습니다. public과 secret 모드로 제공하는데 모두 무료입니다. 소스코드 파일 (.py, .java, .html 등), 마크다운 (.md) 등 모두 가능하며 이 포스트에서는 Jupyter Notebook(.ipynb) 파일을 올리는 방법을 소개하겠습니다. 1. Gist 작성페이지로 이동 작성페이지로 이동하는 방법은 2가지가 있습니다. Gist 사이트로 직접 이동하거나 Github에서 gist 작성을 선택하는 방법입니다. 1) Gist 사이트로 이동하여 '+' 버튼 클릭 2) 또는 Github 사이트로 이… -
[ Git, Github ] 기본 사용법
[ Git, Github ] 기본 사용법
2021.06.181. Git Workflow working directory : 현재 작업중인 파일이 존재하는 공간 staging area : 어느정도 작업하다가 버전 히스토리에 저장 할 준비가 되어있는 파일들을 옮겨 놓는 공간 git directory : 버전의 히스토리를 가지고 있는 git repository working directory에 작업 중이던 파일 a.py, b.py 의 수정이 완료되면 add 명령어를 통해 staging area로 보내게 되고 commit 명령어를 통해 git 버전 히스토리에 저장하게 됩니다. 이렇게 git directory에 저장된 버전은 local에만 보관되기때문에 저장 공간에 문제가 생기면 모든 히스토리를 잃어버리게 됩니다. 그래서 github 와 같은 서버에 push 명령어를 수… -
[ Git, Github ] 개념 정리 (초보)
[ Git, Github ] 개념 정리 (초보)
2021.06.18버전관리 웹 페이지를 개발 한다고 가정하겠습니다. 소프트웨어를 만드는 과정에서나 운영하는 과정에서 새로운 기능을 추가하거나 제거하기도 하고 수정하기도 합니다. 이러한 과정에서 이전 기능을 다시 추가하거나 실수로 인해 복원해야 하는 경우도 발생합니다. 또한 개발 과정에서 어떻게 수정되었는지 히스토리를 확인해야 하는 경우도 있습니다. 그래서 프로그램 수정 전에 중간중간 백업이 필요했습니다. 개발자는 이러한 상황에 대비하여 각 버전별로 압축하고 설명을 작성하여 보관을 했어야 했죠. 이런 백업파일이 축척되다보면 번거롭기도하고 용량도 많이 차지하게 됩니다. 협업 그리고 작은 규모의 프로젝트인 경우는 혼자 개발하여 반영하면 되지만 큰 규모의 프로젝트인 경우는 다양한 개발자와 협업하여 개발해야 합니다. 이런 경우 모…
댓글을 사용할 수 없습니다.