[ 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.06 -
[ Git, Github ] 기본 사용법
[ Git, Github ] 기본 사용법
2021.06.18 -
[ Git, Github ] 개념 정리 (초보)
[ Git, Github ] 개념 정리 (초보)
2021.06.18