tool:source-control:git
목차
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
나이스하게 삭제가 안될때
- GIT 최상단 폴더의 .gitmodules 파일에서 삭제할 서브 모듈을 지운다.
[submodule "t@3/TestModule"] path = t@3/TestModule url = https://<<어딘가>>/TestModule.git
- 해당 서브 모듈 폴더를 삭제한다.
t@3/TestModule 폴더를 삭제한다. - 커밋commit
특정 모듈을 한 GIT 리파지토리의 각각 다른 폴더에 서브모듈로 넣으려고 할때
TortoiseGIT에서는 안되니, 커맨드로 처리. GIT의 개념룰상 한 프로젝트가 한 리파지토리이지만, 난 마구잡이로 넣어서 쓰다보니 이런 일도.
아래 처럼 각 B, C 폴더에 subA 를 서브모듈로 추가하고 싶다면,
A +-- B +-- (subA) +-- C +-- (subA)
- B 폴더에는 다른 툴로(예:TortoiseGIT)로 subA를 서브모듈로 추가
- C 폴더는 커맨드 라인 창을 열고,기억이 잘 안나는데..
git submodule add --force <GIT 리파지토리> <대상폴더>
- GIT 리파지토리는 Remote 또는 로컬 GIT 리파지토리 상관 없다.
- 대상폴더 : 대상 폴더가 없어야 한다. 있으면 에러 난다.
SubTree
- 기회되면 사용해보는 것으로.
Guide
gc
리파지토리 다시 재정리
git gc
pull
- git 로컬저장소에 원격으로부터 변경된 데이터를 전부 내려받는다. 내려 받은 뒤, 현재 워킹카피(HEAD)와 merge 되는 것이 아니다.
- 변경 사항을 리뷰한 다음 머지할 것인지는 본인 결정.
- 최신본을 받아서, 합할 것인가 등은 본인이 다시 판단. (그래봐야 merge?)
commit
- 소스를 저장소에 저장
- 현재 브랜치(예를 들어 master)가 commit한 버젼을 가리키게 되고, HEAD 가 된다.
git commit
branch
- 현재 HEAD에 위치에서 새로운 브랜치를 만든다.
// git branch <이름> git branch bugFix1 // bugFix1으로 브랜치를 한개 만든다.
checkout
- 현재 워킹폴더의 브랜치에서 다른 브랜치로 이동하는 경우 사용
- 브랜치가
- master, bugFix1 이 있는데,
- 현재 워킹폴더는 bugFix1
- 그런데 master가 이미 다른 커밋이 있어버린다면, 어떻게 되는거지?
// 현재 로컬저장소의 HEAD가 "master"를 가리키고 있는 경우 git checkout bugFix1
merge
- 브랜치가 2개
- bugFix1
- master : 로컬저장소의 HEAD는 여기
// bugFix1 --> master 브랜치로 merge git merge bugFix1 master
결과는 bugFix1가 master에 머지 되면서 , master는 새로은 커밋을 하게 된다.
Rebase : 재배치
커밋을 모아서 복사한 후에 다른 곳으로 옮기는 것 –> 커밋 흐름을 보기 좋게 한줄로 만들 수 있어서 이력이 더 깨끗하게 보인다.
그림이 있는 설명이 이해하기 편하므로, 그림 있는 설명을 캡춰. (from 브랜치배우기)
Revert : 되돌리기
되돌리는 방법
- git reset : 예전 브랜치로 HEAD를 이동하는 것. reset 후에는 새롭게 HEAD로 지정된 부분(과거 코드로 돌아갔기 때문에) 외에는 무시된다.
자신의 로컬저장소에서 작업하는 것을 되돌린다. - git revert : 리모트 브랜치에 대해서 작업을 되돌릴때 사용한다.
reset
revert
Quick Guide
윈도우용
- Git Extension : VS 플러그인 제공, 상용 수준의 기능 (발견한 곳)
각종 튜토리얼 링크
- 너무 많아서 놀랬다.
GIT-GUI
- 일문 메시지 삭제 , 영문으로 보이게 하는 방법을 몰라서 일문 메시지 삭제.
- <프로그램설치위치>\Git\share\git-gui\lib\msgs
- jp로 시작하는 파일 이름 변경.
tool/source-control/git.txt · 마지막으로 수정됨: 2024/04/23 22:44 저자 127.0.0.1