본문 바로가기

git20

[Git] git 저장소의 일부 디렉토리만 clone 하기 - git sparse checkout git 저장소에서 일부 디렉토리만 clone 받는 sparse checkout 기능 사용방법에 대해 알아보자. git 저장소에 여러 프로젝트 혹은 여러 디렉토리가 있을 때, 그 중 일부만 사용하고 싶은 경우가 있다. 일부 디렉토리만 필요하기 때문에 저장소 전체 대신 필요한 일부 디렉토리 혹은 일부 파일만 clone 받아서 사용할 필요가 있다. 이 경우 git이 제공하는 sparse checkout 기능을 사용하면 된다. 디렉토리 생성하고 초기화 clone 받을 디렉토리를 생성하고 git init을 실행해준다. 그리고 다운받을 원격 저장소 주소를 추가해준다. mkdir temp cd temp git init git remote add origin {remote 저장소 주소} sparse checkout 기.. 2023. 3. 23.
M1 Pro 맥북에 Git 설치하기, Homebrew 설치하기 개발용 노트북으로 M1 Pro 맥북 프로를 받았다. git을 설치해보자. 우선 git을 설치하기 위해서 맥을 위한 패키지 관리 소프트웨어인 Homebrew를 설치해야한다. 이미 설치되어 있는 경우면 Homebrew 설치는 넘어가도 된다. Homebrew 설치 https://brew.sh/ 페이지에 접속하면 Homebrew를 설치할 수 있는 명령어를 복사할 수 있다. 명령어를 복사하고 터미널 앱을 열어서 붙여넣고 실행하면 된다. 설치가 시작되면 Password: 문구가 출력되면서 비밀번호를 입력받는다. 맥북의 비밀번호를 입력하면 설치가 시작된다. 설치가 완료되고 brew help 명령어를 실행해서 제대로 설치되었는지 확인한다. M1 Pro 맥북의 경우 다음 에러가 발생했었다. zsh: command not.. 2023. 3. 11.
[Git] Powershell에서 깃 로그 한글 깨지는 현상 해결 윈도우 환경에서 Git을 사용하다보면 한글로 작성된 git 로그가 깨져서 보이는 경우가 있다. commit 46fbd8ad38eca292794e2dc099d79a80e1f949fe (HEAD -> master, origin/master, origin/HEAD) Author: my-mail Date: Thu Sep 22 18:47:00 2022 +0900 commit 9143adc3f9d9a7a53c97f008112e3cf1b53e7113 Author: my-mail Date: Tue Sep 20 13:17:00 2022 +0900 깃 로그와 Powershell 환경 사이의 인코딩 문제로 인해 발생하는 현상이다. Powershell 환경의 인코딩을 적절하게 바꿔주면 된다. 나의 경우에는 UTF-8로 Pow.. 2022. 9. 26.
[Git] checkout 대신 switch와 restore를 사용하기 예전부터 git 명령을 사용한 유저에게 가장 많이 사용되는 명령을 꼽으라면 아마도 checkout이 다섯 손가락 안에 나올 것이다. 그런데 어느순간부터 git --help 로 git 명령을 출력했을 때 checkout에 대한 설명이 없어졌다. git --help 를 실행하면 다음 결과를 얻게 된다. $ git --help usage: git [--version] [--help] [-C ] [-c =] [--exec-path[=]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=] [--work-tree=] [--namespace=] [] .. 2022. 9. 17.
[Git] 인증정보 캐싱하기 (credential cache 설정) github 등을 원격 저장소로 사용하는 경우 push 혹은 pull 명령을 수행할 때 아이디와 비밀번호 같은 인증정보를 요구하는 경우가 많다. 기본적으로 git은 원격저장소에 대한 아이디와 비밀번호를 저장하지 않기 때문에 매번 원격 저장소에 접근할 때마다 아이디와 비밀번호를 입력해야한다. 예를 들어 $ git pull Username for 'https://github.com': Dave Password for 'https://dave@github.com' : ... $ git push Username for 'https://github.com': Dave Password for 'https://dave@github.com' : 이런식으로 매번 동일한 정보를 입력해야한다. 매우 귀찮은 작업이다. 다행히.. 2022. 9. 7.
[Git] .gitignore 사용법 개발 프로젝트를 진행하다보면 여러가지 파일들이 생성된다. 프로그램이 동작하면서 남기는 로그 파일이라던지 백업 파일 같은 것들이 생기게 된다. 혹은 프로젝트를 빌드할 때 템플릿 파일을 기반으로 새로운 파일이 생성되기도 한다. git을 이용해서 프로젝트 형상관리를 할 때, 이런 부수적인 파일들은 git에서 제외하고 싶은 경우가 많다. .gitignore 파일은 이렇게 git에서 관리하지 않을 파일 정보를 담고 있는 파일이다. .gitignore 파일 .gitignore 파일은 프로젝트 최상위 디렉토리에 위치해야한다. .gitignore 파일에 형상관리에서 제외하고 싶은 파일 이름의 패턴 정보를 입력하면 된다. 예를 들면 # .gitignore에서 샵으로 시작하는 라인은 주석이다 # .log 확장자를 갖는 파.. 2022. 9. 6.
[Git] git add 에서 ‘warning: LF will be replaced by CRLF in’ 메시지 해결방법 윈도우 환경에서 PowerShell을 이용햇 git을 사용하다가 git add 명령을 실행하니 다음과 같은 경고 메시지가 발생했다. C:\\workspace> git add -A warning: LF will be replaced by CRLF in .idea/workspace.xml. The file will have its original line endings in your working directory 수정된 파일들을 스테이징하려고보니 LF가 CRLF로 대체된다는 경고 메시지를 뿌린다. LF와 CRLF LF는 Line-Feed 문자를 의미하며 CRLF는 Carriage-Return + Line-Feed 를 의미한다. LF는 리눅스와 맥 운영체제에서의 줄바꿈 문자(\n)로 사용되고 있으며, CRL.. 2022. 6. 18.
[Git] git commit 메시지 편집기 변경 git을 터미널 환경에서 사용할 때, 텍스트 편집기를 사용하게 된다. 커밋 메시지를 입력하거나 rebase를 할 때 등 에디터를 이용해 뭔가를 많이 한다. 윈도우 환경에서 우분투 WSL을 사용하는데 평소에 쓰지 않던 처음보는 에디터 화면이 보였다. 평소에는 vim 에디터를 사용하는데 뭔가 사용법이 달라서 어버버했다. 알고보니 우분투의 경우 nano 에디터가 기본 에디터로 지정되어 있었다. 이미 vim 단축키들이 반사적으로 나오는 단계여서 너무 불편했다. git 메시지 편집기 변경 git은 메시지 편집기를 지정해 사용할 수 있다. 익숙한 대로 vim이나 emacs 등의 에디터를 사용할 수 있다. $ git config --global core.editor "vim" 참고로 우분투의 기본 에디터를 변경하는 .. 2022. 6. 14.
[Github] Git LFS (Large File Storage) 사용법 깃(git)은 분산 버전 컨트롤(Distributed Version Control) 시스템 중 가장 인기를 끌고 있는 프로그램이다. 소스코드에 대한 버전 관리를 하기 때문에 수 많은 작은 파일들의 버전을 관리하는데 최적화되어 있다. 하지만 프로젝트가 큰 용량의 파일을 포함하고 있는 경우에는 굉장히 비효율적이 된다. 특히 빈번하게 수정되는 큰 파일이 있는 경우, 모든 수정에 해당하는 파일들을 로컬에 다운로드해서 들고 있어야하기 때문에 저장소를 처음 clone 받을 때 과거 히스토리에 해당하는 큰 파일들을 모두 다운로드 해야하는 불편함이 있다. 게다가 깃허브(github) 등의 원격 저장소는 50MB 이상의 파일을 push 할 경우 경고를 주고 100MB가 넘어가는 파일은 push가 안된다. 따라서 깃으로 .. 2021. 11. 1.