Git 나만의 명령어 만들기

안지환·2023년 11월 20일
0

Git

목록 보기
4/6

⭐️ Overview

GIt은 분산식 버전 관리 시스템입니다. Git을 사용하면 프로젝트 관리를 손쉽게 할 수 있습니다.
현재 수 많은 프로젝트에서 GIt을 사용합니다. Git을 다루기 위해서 명령어를 입력합니다.
명령어 마다 옵션 기능이 포함이 되어 명령어 뒤에 플래그(flag)를 붙여 기능을 풍부하게 만듭니다.

명령어 뒤에 플래그 옵션을 붙일 때마다 명령 입력이 길어지거나 복잡해지는 경우가 생깁니다.
GIt에서 Alias를 설정을 제공하여 긴 명령어 조합을 자신만의 명령어로 지정을 할 수 있게 도와줍니다.

⚡️Requirements

Task1. 간단한 명령어 조작하기

이번 세션에서는 반복적으로 사용하는 Git 명령어를 간단한 명령 이름으로 변경하겠습니다.

  1. Git 파일 상태를 확인하는 명령어를 터미널 커맨드 라인에 “git status”를 입력합니다.
git status
  1. Git 명령어가 실행이 완료되면 출력은 다음과 같아야 합니다.
현재 브랜치 main
브랜치가 'origin/main'에 맞게 업데이트된 상태입니다.

커밋할 사항 없음, 작업 폴더 깨끗함
  1. Home 디렉토리(~/)에서 .gitconfig 파일을 확인합니다.
cd ~ # ~/
vim .gitconfig
  1. .git config에 [alias] 확인합니다.
[alias]
	# add alias Commend

[checkout]
  defaultRemote = origin # one remote return back checking out and trackin

[color]
	ui = true

[core]
  excludesfile = ~/.gitignore_global # add gitignore file
  autocrlf = input
  safecrlf = true
  quotePath = false
  pager = less -IXF
  fsmonitor = true
		.....
  1. [**alias]**에 status 명령어를 새로운 명령어로 지정합니다.
[alias]
 s = status
  1. a.txt 파일에 새로운 내용을 추가합니다.
# ~/dev-git/a.txt
git status 명령어를 alias로 다른 명령어 지정하기 # Add new Context
  1. 터미널 커맨드 라인에 “git s”를 ****입력합니다.
git s
  1. Git 명령어가 실행이 완료되면 출력은 다음과 같아야 합니다.
현재 브랜치 main
브랜치가 'origin/main'에 맞게 업데이트된 상태입니다.

커밋하도록 정하지 않은 변경 사항:
  (무엇을 커밋할지 바꾸려면 "git add <파일>..."을 사용하십시오)
  (use "git restore <file>..." to discard changes in working directory)
	수정함:        a.txt

커밋할 변경 사항을 추가하지 않았습니다 ("git add" 및/또는 "git commit -a"를
사용하십시오)

Task2. ShellScript로 명령어 조작하기

이번 세션에서는 Git 명령어를 Shell Script로 명령어를 변경하겠습니다.

  1. Home 디렉토리(~/)에서 .gitconfig 파일을 확인합니다.
cd ~ # ~/
vim .gitconfig #open .gitconfig file
  1. .gitconfig에 git.alias 확인 합니다.
[alias]
 s = status
[checkout]
  defaultRemote = origin # one remote return back checking out and trackin
[color]
	ui = true
[core]
  excludesfile = ~/.gitignore_global # add gitignore file
  autocrlf = input
  safecrlf = true
  quotePath = false
  pager = less -IXF
  fsmonitor = true
		.....
  1. git.alias에 shell script로 작성합니다.
[alias]
 s = status
 st = '!git status' # shell script 작성 시 느낌표(!)를 맨 앞에 붙여 줍니다.
  1. 터미널 커맨드 라인에 “git st” 명령어를 실행합니다
git st
  1. Git 명령어가 실행이 완료되면 출력은 다음과 같아야 합니다.
현재 브랜치 main
브랜치가 'origin/main'에 맞게 업데이트된 상태입니다.

커밋하도록 정하지 않은 변경 사항:
  (무엇을 커밋할지 바꾸려면 "git add <파일>..."을 사용하십시오)
  (use "git restore <file>..." to discard changes in working directory)
	수정함:        a.txt

커밋할 변경 사항을 추가하지 않았습니다 ("git add" 및/또는 "git commit -a"를
사용하십시오)

Task3. ShellScript과 외부 라이브러리를 조합하기

이번 세션에는 위에서 작성한 명령어를 조합하여 Git Status 파일 상태에 수정 된 코드를 UI로 볼 수 있도록 하겠습니다.

“git status” 명령어는 현재 파일 상태를 표시만 해줍니다. 그렇지만 파일 상태 안에 수정 된 코드를 같이 확인 할 수 없습니다. “git diff” 명령어를 실행하면 수정 된 코드를 볼 수 있지만 두 가지 명령어를 동시가 사용하는 것은 수고스러운 일이 발생합니다.

라이브러리 중 fzf 를 사용하여 터미널 환경에서 UI를 보여 줄 수 있게 만들고 원하는 파일을 지정 할 때 파일 내에 수정 된 코드를 볼 수 있도록 fzf가 도와줍니다.

자세한 내용은 fzf 공식 문서를 참조하시면 되겠습니다.

  1. Home 디렉토리(~/)에서 .gitconfig 파일을 확인합니다.
cd ~ # ~/
vim .gitconfig #open .gitconfig file
  1. .gitconfig에 git.alias 확인 합니다.
[alias]
 s = status
 st = "!git status"
[checkout]
  defaultRemote = origin # one remote return back checking out and trackin
[color]
	ui = true
[core]
  excludesfile = ~/.gitignore_global # add gitignore file
  autocrlf = input
  safecrlf = true
  quotePath = false
  pager = less -IXF
  fsmonitor = true
		....
  1. git.alias에 “git st” 명령어에 fzf 를 조합하여 shell script로 작성합니다.

fzf 은 터미널 탐색에 강력한 기능을 가지고 있습니다. 그 중 preview 기능은 파일 탐색에 UI로 확인 할 수 있게 보여줍니다.

[alias]
 s = status
 st = "!git status --short | fzf --preview "git diff {2}"
  1. 터미널 커맨드 라인에 “git st” 명령어를 실행합니다.
git st
  1. Git 명령어가 실행이 완료되면 출력은 다음과 같아야 합니다.

  1. UI 요소에 Color를 추가 하여 가독성을 높일 수 게 설정합니다.

git diff 은 변경 사항에 대한 코드를 확인 할 수 있는 명령어로 새로 추가 된 코드는 확인이 어렵습니다.
새로 추가 된 코드를 확인 시 git show 명령어를 추가하면 됩니다.

git status --short | fzf --preview 'git diff --word-diff --color=always {2}'
  1. Git 명령어가 실행이 완료되면 출력은 다음과 같아야 합니다.

코드가 수정 된 부분은 초록색, 삭제 된 부분은 빨강색 두 가지 형태로 코드를 확인 할 수 있습니다.

  1. a.txt 파일에 내용을 수정합니다.
#./dev-git/a.txt
1. git 생성하기 -> git 수정하기 # modified text

ShellScirpt로 Git 명령어를 조작하는 방법을 알아봤습니다.

이 후 ShellScript로 더 많은 기능을 추가 할 수 있고 여러 라이브러리를 활용해서 나만의 Git 명령어를 추가 하실 수 있습니다.

나의 git config

다음 링크에서 제 .gitconfig 파일을 확인 할 수 있습니다.

참고

profile
BackEnd Developer

0개의 댓글

관련 채용 정보