git

[Git] Powershell 에서 한글 깨짐

Powershell 에서 git log 명령 실행시 한글로 작성된 커밋 메시지가 깨져 보이는 현상


commit bd269780b5c888b0ea86939f3dd08c12e68ef595
Author: coozplz <coozplz@gmail.com>
Date:   Mon Aug 22 19:44:26 2016 +0900

    ?뚯씠釉??뺣낫 異붽?

commit 23f13d59f8bc9f7e53fc91f322b8dfbbfddf0f95
Author: coozplz <coozplz@gmail.com>
Date:   Mon Aug 22 16:51:15 2016 +0900

    臾몄꽌 ?낅뜲?댄듃

위와 같은 문제 해결을 위해 git 명령 실행 결과를 디코딩과 인코딩 하는 작업을 하면서 확인 했었는데 보다 간단한 해결 방법을 찾았습니다.

1. Powershell 프로필 위치 확인

PS C:> $profile
C:\Users\coozplz\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
$profile 결과는 출력되는데 해당 위치에 파일이 없다면 위와 같은 경로에 파일을 생성해주세요.

2. $profile 값에 인코딩 변경 추가

# filename: Microsoft.PowerShellISE_profile.ps1

$env:LC_ALL='C.UTF-8'

3. Powershell 창에서 확인

commit bd269780b5c888b0ea86939f3dd08c12e68ef595
Author: coozplz <coozplz@gmail.com>
Date:   Mon Aug 22 19:44:26 2016 +0900

    테이블 정보 추가

commit 23f13d59f8bc9f7e53fc91f322b8dfbbfddf0f95
Author: coozplz <coozplz@gmail.com>
Date:   Mon Aug 22 16:51:15 2016 +0900

    문서 업데이트

정상적으로 표시되는 것을 확인할 수 있습니다.

기본
git

[Git] master 브랜치 커밋 막기

git-flow를 이용해서 회사 프로젝트를 진행하는데 git-flow에서는 master 브랜치에 대해 커밋을 허용하지 않는 형태로 진행이 됩니다. develop -> feature -> release -> master 브랜치로 머지(Merge)가 되는 형태입니다.

그렇기 때문에 커밋이 발생 했을 때 취소하는 것 보다 문제가 발생되기 전에 해결하는 것이 좋은 방법이라는 생각이기 때문에 git-hook을 이용하여 master 브랜치에서 커밋전에 현재 커밋이 발생되는 브랜치가 master라면 에러 메시지를 출력하고 커밋이 되지 않는 형태로 작성해 봤습니다.

아래 작성한 shell 스크립트에 실행권한을 주고 .git/hook/pre-commit 파일에 입력하면 master 브랜치에서 커밋이 되는 경우를 막게 됩니다.

#!/bin/bash
#
# FILE: .git/hook/pre-commit
#
# DESC: Stop accidental commits to master

BRANCH=`git rev-parse --abbrev-ref HEAD`

if [[ "$BRANCH" == "master" ]]; then
    echo -e "You are on \e[31m\e[1m[ $BRANCH ]\e[0m branch . You can not directly commit on \e[31m\e[1m[ $BRANCH ] \e[0mbranch"
    echo -e "Please checkout the other branch and commit"
    exit 1
fi


exit 0
기본