Git CLI 개인환경 설정
( 이미지 출처 : https://git-scm.com )
git-cli 세팅 후 필요한 개인적인 환경설정 작업들을 기술합니다.
최신버전 설치
$ sudo add-apt-repository ppa:git-core/ppa -y
$ sudo apt-get update
$ sudo apt-get install git -y
user 전역설정
$ git config --global user.email "your-email-address@example.com"
$ git config --global user.name "Your Name"
패스워드 저장
저장한 패스워드는 ~/.git-credentials
파일에 저장되어 파일만 열어보면 노출됩니다. 그러므로 공용PC 환경에서는 절대 패스워드를 저장하시면 안됩니다.
일단 패스워드를 파일에 저장하는 것이 좋은 방법은 아닙니다. 하지만 GitHub가 패스워드가 아닌 토큰을 이용한 인증만 허용하도록 변경되어 매번 토큰을 발급 받아서 사용해야하는 번거로움을 피하기 위해서는 파일저장(혹은 cache)이 필요합니다.
$ git config credential.helper store --global
위의 명령어를 입력하신 후 새로운 터미널을 열신 후부터 적용됩니다.
내 환경에서만 gitignore 설정
.gitignore 파일에 패턴을 추가하면 예외처리를 할 수 있지만 .gitignore 파일이 push되면 다른 컨트리뷰터에게도 영향을 주게 됩니다.
.git/info/exclude 파일에 예외처리하고자하는 파일들의 패턴을 적어두면 다른 컨트리뷰터들에게 영향 없이 내 환경에서만 예외처리가 가능합니다.
gitignore 전역 설정
모든 프로젝트에 적용하고자하는 gitginore를 설정하는 방식입니다.
먼저 ~/.gitignore
파일을 만들고 예외처리 하고자하는 내용을 작성합니다.
예를들어, WSL을 사용하는 환경에서 간혹가다가 NotePad++ 에디터 툴로 파일을 수정하면 bak 파일이 자동생성됩니다. 프로젝트 언어와 무관하게 생성되는 bak 파일은 전역에서 예외처리할 필요가 있습니다.
그 후 아래 명령어로 전역 설정을 해줍니다.
$ git config --global core.excludesFile ~/.gitignore
Alias 추가
~/.gitconfig 파일에 아래 alias를 추가 합니다.
[alias]
lg1 = log --graph --abbrev-commit --decorate=short --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) - %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) - %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg3 = "!git lg1 --author=dveamer $(git branch --show-current)"
lg = "!git lg2"
s = status -s
sw = "!git switch $(git bselect)"
bselect = "! # Select branch with preview.;\n\
f() { \
_height=$(stty size | awk '{print $1}');\
git branch | egrep -v '^\\*' | fzf --preview \"git lg {1} | head -n $_height\"; \
}; f"
a = "! # Add files with fzf preview diffs.;\n\
f() { \
_height=$(stty size | awk '{print $1}');\
git s | fzf -m --preview \"git diff {2} | head -n $_height \" | awk '{print $2}' | xargs git add; \
}; f"
l = "! # Show log graph with fzf preview diffs.;\n\
f() { \
_height=$(stty size | awk '{print $1}');\
git lg1 | fzf --reverse -m --preview \"git diff {2} | head -n $_height \" ; \
}; f"
c = "! # Commit changes with fzf previous commit messages of current branch;\n\
f() { \
_height=$(stty size | awk '{print $1}');\
git lg3 | fzf --reverse -m | awk '{print $2}' | xargs git commit -C ; \
}; f"
m = "! # Merge another branch into current branch with fzf previous commit messages of current branch;\n\
f() { \
_height=$(stty size | awk '{print $1}');\
echo 'git fetch'; git fetch; \
echo 'git pull'; git pull; \
git bselect | xargs git merge;\
}; f"
p = "! # push current branch to remote.;\n\
f() {\
echo 'git push origin '$(git branch --show-current);\
git push origin $(git branch --show-current);\
}; f"
alias = "! # Prints all aliases.;\n\
git config --list \
| egrep '^alias.+' \
| sed -e 's/^alias\\.//' \
| column -t -s'=' \
| sed 's/!#* *//; s/;$//' \
| cut -c1-85"
위의 alias를 위해서는 fzf 설치가 필요합니다.
그리고 lg3
를 보면 --author=dveamer
라고 되어있습니다. 이 부분은 필요하신 계정명으로 변경하셔야 합니다.
References
Associated Posts
관련된 주제를 살펴볼 수 있도록 동일한 Tag를 가진 글들을 모아뒀습니다. 제목을 눌러주세요.-
Windows WSL2를 이용한 Ubuntu, Docker, Kubernetes 환경구성
( 이미지 출처 : https://docs.microsoft.com )Windows 환경에서 Ubuntu를 사용하기 위한 WSL 세팅 후 필요한 개인적인 환경설정 작업들을 기술 합니다.
... 더 읽기 -
Setting Android Studio
( 이미지 출처 : https://developer.android.com/ )이 글은 Ubuntu 환경에서 Android Studio를 설치하고 설정하는 방법을 설명합니다.
특히 기존에 Google Play에 등록해둔 앱을 새로운 Ubuntu & Android Studio 환경에서 개발하기 위해 개발환경을 구축하는 분들을 위한 글입니다.
Android 앱 개발에 대한 내용은 다루지 않습니다.... 더 읽기 -
Ubuntu 18.04 LTS
( 이미지 출처 : https://upload.wikimedia.org )Ubuntu 18.04 LTS을 설치하고 설정하면서 겪은 문제점과 해결방안들을 기록해봅니다. (2019년도 4월 21일 기준)
Ubuntu 14.04 LTS의 EoSS(End of Standard Support) 일정이 2019년도 4월이고 이제 10일도 남지 않았습니다. 저는 정말 알차게 EOSS 직전까지 사용한 것 같군요.
Ubuntu 18.04 LTS도 2018년 4월 26일에 출시되어 벌써 1년 이상의 시간이 지났으니 한글입력에 대한 어려움 같은 신규버전 초기 문제점들이 많이 해결되었길 기대해봅니다.
... 더 읽기 -
Python3.6 설치
-
Python WAS 구축하기 ( Django, Nginx, Gunicorn )
-
Docker 설치 후 이미지 보관 디렉토리 변경
-
HTTPD (Apache HTTP Server) 설치하기
-
Linux에서 컴파일 설치법을 알아야하는 이유
-
Docker를 이용해서 SonarQube 간단히 설정하기
-
SonarQube 로 Android 소스코드 분석하기
-
How To Set Up SVN(Subversion) Repositories
-
Install CentOS with Docker
-
Nginx SSL 적용방법
-
How to install Nginx & Tomcat
-
Ubuntu 설치 후 초기세팅
-
How to install MariaDB 10.01 on Ubuntu 14.04 LTS
-
How to install Java 8 On Ubuntu
-
Ubuntu 14.04 LTS