반응형

gitk 에서 diff 창에 한글이 깨짐 현상이 발생 할때 해결 방법.

아래의  command를 입력 하면 해결 된다.


git config --global gui.encoding utf-8




또한, Cmder 이라는 Tool 을 사용 할때도 , 한글이 깨짐 현상이 발생하는데 아래와 같이 조치 함.

Cmder에서 아래의 커맨드를 입력 한다.


set LANG=ko_KR.UTF-8

chcp utf-8



반응형


자주 사용하는 Diff Tool , Merge Tool 을 셋팅 해놓음. 아래 설정을 보고 .gitconfig를 입맛에 맞게 수정해 주면 된다.


[diff]
    tool = winmerge
[difftool]
    prompt = false
[difftool "p4diff"]
    cmd = 'C:/Program Files/Perforce/p4merge.exe' \"$LOCAL\" \"$REMOTE\"
[difftool "vscode"]
    cmd = code --wait --diff $LOCAL $REMOTE
[difftool "winmerge"]
    name = WinMerge
    trustExitCode = true
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE


[merge]
    tool = p4merge
[mergetool]
    prompt = false
[mergetool "p4merge"]
    cmd = 'C:/Program Files/Perforce/p4merge.exe' \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[mergetool "winmerge"]
    name = WinMerge
    trustExitCode = true
    cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE $MERGED
[mergetool "tortoisemerge"]
    cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"

반응형

서브 모듈이라 함은 여러 repository에서 공통 프로젝트를 공용으로 사용할 때 쓸때 유용한 방법이다.


하나의 공통 레파지토리를 만들어 놓고 , 여러 레파지토리에서 공유해서 사용하는 방법이다.


서브 모듈 시작하기


- 서브 모듈 등록하기

$ git submodule add <repository URL> [Local Path]

URL에 있는 레파지토리를 나의 Local path에 다가 추가하는 commnand

이 명령어를 사용하면, submodule의 경로에 파일들이 생기고, root에는 .gitsubmodules 라는 파일이 추가로 생성된다.


- 서브 모듈 초기화

$git submodule init


- 서브 모듈 업데이트

$git submodule update



반응형

만약 로컬에 커밋을 하고 서버에 push까지 했는데 이걸 예전커밋으로 돌려야할 경우가 있다.

이럴 경우 3가지 방법이 있다.


1. Revert 를 이용 하자.


git revert <hashcode> // 해당 커밋내용의 반대되는 내용으로 커밋한다.

       //코드를 추가 했다면 , 삭제하고, 수정했다면 원복하는 커밋이 생긴다.


git revert -n OLDER_COMMIT^..NEWER_COMMIT // Commit Range를 줘서 한번에 여러개의 Commit을 Revert할 때 쓰인다.


만약 돌아가려는 위치까지 커밋이 여러개라면 위에서 부터 순차적으로 Revert를 진행해줘도 하나씩 반대되는 커밋을 생성하면서

원래대로 RollBack을 시켜야 하는 불편함이 있다.

위 커맨드로 실행을 하고 오류가 발생하지 않았다면, 서버에 Push하면 롤백이 완성되었다고 할 수 있다.


주의) 만약에 이미 내가 서버에 올린 소스를 다른사람이 수정해서 중간에 다른 사람의  커밋이 섞여 있다면, Revert중간에 오류가 발생할 소지 가         있다고 생각한다.


2. Reset 이용하자.(위험 하지만 , 간단하다.)


git reset --hard <hashcode> //rollback하고 싶은 시점의 커밋으로 돌린다.


git push origin +master  //강제로 현재 상태를 서버에 Update한다. origin , master 는 자신의 remote 이름과 브랜치 이름에 따라서 바뀔것이고 ,                                 //중요한건 "+" 이 기호이다 이게 강제로 overwrite하겠다는 커맨드 인것 같다.

                                 //이커맨드를 실행하면 정말로 push 할것 인지 확인을 위한 Git Password를 확인한다.

    //아마도 리스크가 큰 커맨드라서 확인을 하는 것 같다.


주의) 만약 내가 올린 코드를 누군가 받아서 이미 작업을 했다면, 그동안 롤백을 진행했고 , 다른 사용자가 이미 받은 코드로 작업을 해서 올린다면

 어떤 오류가 발생할지 난 알 수 없다. ^^;


+ Recent posts