git 설정하기
- Linux 계열에서의 사용 기준 (ubuntu 20.04, Raspberry Pi OS, centos 8)
- git version 2.25.1
- git version 2.20.1
gitconfig
-
commit을 위한 사용자 설정은 ~/.gitconfig를 수정 혹은 git config 명령어를 이용하는 방법이 있다.
- gitconfig 파일을 열고 아래 내용 추가
[user] name = 사용자명 email = 메일주소
- git config 명령어를 이용한 설정
git config --global user.name "사용자명" git config --global user.email 메일주소
- 설정 후 commit log에서 author를 확인할 수 있다.
* commit
| Author: hyesukk <메일주소>
| Date: Sat Sep 18 13:06:16 2021 +0900
|
| [bj] #4673
|
* commit
Author: HS-K <71997247+hyesuk-k@users.noreply.github.com>
Date: Tue May 18 22:38:52 2021 +0900
Initial commit
상세 내용
$ git config
사용법: git config [<옵션>]
설정 파일 위치
--global 공통 설정 파일을 사용합니다
--system 시스템 설정 파일을 사용합니다
--local 저장소 설정 파일을 사용합니다
--worktree use per-worktree config file
-f, --file <파일> 지정한 설정 파일을 사용합니다
--blob <블롭-id> 지정한 블롭 오브젝트에서 설정을 읽습니다
동작
--get 값을 가져옵니다: <이름> [<값-정규식>]
--get-all 모든 값을 가져옵니다: <키> [<값-정규식>]
--get-regexp 정규식에 대한 값을 가져옵니다: <이름-정규식> [<값-정규식>]
--get-urlmatch <URL>에 특정되는 값을 가져옵니다: <섹션>[.<변수>] <URL>
--replace-all 해당하는 변수를 모두 제거합니다: <이름> <값> [<값-정규식>]
--add 새 변수를 추가합니다: <이름> <값>
--unset 변수를 제거합니다: <이름> [<값-정규식>]
--unset-all 해당하는 항목을 모두 제거합니다: <이름> [<값-정규식>]
--rename-section 섹션의 이름을 바꿉니다: <옛-이름> <새-이름>
--remove-section 섹션을 제거합니다: <이름>
-l, --list 전체 목록을 표시합니다
-e, --edit 편집기를 엽니다
--get-color 설정한 색을 찾습니다: slot [<기본값>]
--get-colorbool 색 설정을 찾습니다: slot [<표준출력이-TTY인지-여부>]
값 종류
-t, --type <> 값이 해당 종류로 주어집니다
--bool 값이 "true" 또는 "false"입니다
--int 값이 십진수입니다
--bool-or-int 값이 --bool 또는 --int입니다
--path 값이 경로(파일 또는 디렉터리 이름)입니다
--expiry-date 값이 만료 시각입니다
기타
-z, --null 값을 NUL 바이트로 끝냅니다
--name-only 변수 이름만 표시합니다
--includes 찾아볼 때 include 지시어를 고려합니다
--show-origin 설정의 출처를 표시합니다 (파일, 표준 입력, 블롭, 명령 행)
--default <값> --wget 옵션에서, 해당 항목이 없으면 기본값을 사용합니다
core
- 지원하는 항목 확인
$ git config --global core.<xxxx>
...
- core.editor
- git 편집기 설정 (default는 환경 변수에 설정된 편집기를 활용, vi)
[core]
editor = vim
- core.whitespace
- default on
- blank-at-eol : 라인 끝에 공백이 있는지 찾음
- blank-at-eof : 파일 끝에 추가한 빈 라인이 있는지 찾음
- space-before-tab : 모든 라인에서 처음에 tab보다 공백이 먼저 나오는지 찾음
- default off
- indent-with-non-tab : tab이 아니라 공백으로 시작하는 라인이 있는가 (tabwidth 설정에 따라 달라짐)
- cr-at-eol : 라인 끝에 CR 문자가 있어도 괜찮은지
- tab-in-indent : 라인 시작에 포함된 tab 문자를 오류로 취급
- default on
-
git apply를 이용하여 Patch 시 설정 변경 가능
- 해당 Patch가 공백문자 정책에 맞는지 확인
$ git apply --whitespace=warn <patch>
- Patch 시, Git이 자동으로 공백 문자 정책에 맞춰 수정
- 공백 문자 정책에 맞지 않는 커밋을 Upstream에 push하기 전에 옵션을 주고 rebase 실행 시 공백을 설정한대로 수정
$ git apply --whitespace=fix <patch>
commit
credential
-
git 저장소 주소가 ssl이 아닌 https 인 경우, git의 remote repo 접근 시 (clone, update, push, pull 등)
-
cache
- credential cache 설정 시, default 는 15분
- timeout 설정 시 단위는 초
15분
git config --global credential.helper cache
일주일
git config --global credential.helper "cache --timeout=25200"
혹은
vi ~/.gitconfig
[credential]
helper = cache --timeout=25200
tools
- gitKraken (git gui tool)
- tig