[Cookbook] Git, 이럴 때 이렇게 한다.
배경
git은 프로젝트를 버전에 따라 관리할 수 있도록 도와주는 유용한 툴이다. git을 사용할 때 마주하게 되는 문제와 해결 방법을 적어 둔다.
예시로 remote repo 주소를 https://myrepo.github.com/coolproject.git
라고 해보자.
내용이 많아 따로 작성한 페이지
- WSL git에서 username과 password 관리하기
- Git submodule 일괄등록하기
- Windows WSL에서 git ssh 사용하기
- Git에서 Commit 된 대용량 파일 삭제하기
- Git Branch Workflow
- Git, Pull/Push할 때 id password 묻지 않게 하기
- Git submodule 사용하기
- Git branch 사용하기
- 회사 인증서 SSL, 해결할 수 없다면 피하라.
Clone single branch only
작업 과정에서 오류를 줄이기 위해 local에 작업 branch만을 받아오고 싶을 때가 있다. 예를 들어 작업 branch가 develop
이라면, master branch 없이 develop branch만 local에 받아와 작업하고 push와 pull을 하면 좋을 것이다. 이런 경우에는 clone을 할 때 해당 branch만 받아 올 수 있다. ref
# remote: http://www.myrepo.git
# * origin/master
# * origin/develop
git clone --single-branch --branch develop http://www.myrepo.git
git push -u origin develop
Recommended default config
git을 설치하고 나서 아래 설정을 해주자. 설명은 다음과 같다.
git config --global core.autocrlf input
git config --global core.quotepath false
File names with non ASCII characters
한글로 쓰여진 파일 이름이 decoding 상태로 표시되는 경우에는 다음과 같이 설정을 변경시켜 준다.
git config --global core.quotepath false
Display non ASCII characters on powershell
Powershell을 이용하는 경우, commit message나 log에 한글이 표시되지 않을 수 있다. 이 때는 아래와 같이 실행한다.
$env:LC_ALL='C.UTF-8'
powershell이 실행 될 때 자동으로 적용하기 위해서는 profile에 넣어 주어야 한다. 아래와 같이 profile 설정 파일을 확인하고 해당 파일에 $env:LC_ALL='C.UTF-8'
를 적어 넣고 저장하자.
$profile
End of Lines
개행을 할 때 windows system에서는 \r\n
을 쓰고, linux 계열에서는 \n
을 쓴다. 따라서 협업을 할 때는 이로 인한 무분별한 파일 변환이 원하지 않게 일어날 수 있다. 이를 방지하기 위해 git에서는 autocrlf
기능을 제공한다. 특별히 윈도우 환경에서 일반적인 에디터에서는 \r\n
를 고집하지 않는다. 따라서 아래와 같이 바꿔주는 것으로 충분하다.
git config --global core.autocrlf input