목차

OSX에서 한글 깨지는 경우

한글이 깨지거나, 한글 파일이름이 또 생기거나 (한글.txt → ㅎㅏㄴㄱㅡㄹ.txt 처럼) 하는 경우 옵션 변경

core.precomposeunicode 옵션을 true로 변경.

// for global
git config --global core.precomposeunicode true

// for local (each git folder)
git config --local core.precomposeunicode true

또는, 각 git 폴더에 .git폴더에 들어가서 config 파일을 열어서

precomposeunicode = false ;; false -> true로 변경

연습사이트

SubModule

나이스하게 삭제가 안될때

  1. GIT 최상단 폴더의 .gitmodules 파일에서 삭제할 서브 모듈을 지운다.
    [submodule "t@3/TestModule"]
      path = t@3/TestModule
    	url = https://<<어딘가>>/TestModule.git
  2. 해당 서브 모듈 폴더를 삭제한다.
    t@3/TestModule 폴더를 삭제한다.
  3. 커밋commit

특정 모듈을 한 GIT 리파지토리의 각각 다른 폴더에 서브모듈로 넣으려고 할때

TortoiseGIT에서는 안되니, 커맨드로 처리. GIT의 개념룰상 한 프로젝트가 한 리파지토리이지만, 난 마구잡이로 넣어서 쓰다보니 이런 일도.

아래 처럼 각 B, C 폴더에 subA 를 서브모듈로 추가하고 싶다면,

A
+-- B
    +-- (subA)
+-- C
    +-- (subA)
  1. B 폴더에는 다른 툴로(예:TortoiseGIT)로 subA를 서브모듈로 추가
  2. C 폴더는 커맨드 라인 창을 열고,기억이 잘 안나는데..
    git submodule add --force <GIT 리파지토리> <대상폴더>
    • GIT 리파지토리Remote 또는 로컬 GIT 리파지토리 상관 없다.
    • 대상폴더 : 대상 폴더가 없어야 한다. 있으면 에러 난다.

SubTree

Guide

gc

리파지토리 다시 재정리

git gc

pull

commit

git commit

branch

// git branch <이름>
git branch bugFix1 // bugFix1으로 브랜치를 한개 만든다.

checkout

// 현재 로컬저장소의 HEAD가 "master"를 가리키고 있는 경우
git checkout bugFix1

merge

// bugFix1 --> master 브랜치로 merge 
git merge bugFix1 master

결과는 bugFix1가 master에 머지 되면서 , master는 새로은 커밋을 하게 된다.

Rebase : 재배치

커밋을 모아서 복사한 후에 다른 곳으로 옮기는 것 –> 커밋 흐름을 보기 좋게 한줄로 만들 수 있어서 이력이 더 깨끗하게 보인다.

그림이 있는 설명이 이해하기 편하므로, 그림 있는 설명을 캡춰. (from 브랜치배우기)

Revert : 되돌리기

되돌리는 방법

reset

revert

Quick Guide

Git Quick Guide

윈도우용

각종 튜토리얼 링크

GIT-GUI