본문 바로가기

Tools/Git36

[Git] 좋은 커밋 메시지를 작성하기 위한 규칙 협업을 잘 하는 개발자가 되려면 커밋 메시지 작성에 관심을 기울여야 한다. 잘 작성된 커밋 메시지는 코드 변경에 대한 컨텍스트를 담고 있어 다른 개발자(혹은 미래의 나)가 코드 변경에 대한 내용을 쉽게 이해할 수 있도록 도와준다. 따라서 좋은 협업자라면 커밋 메시지를 잘 써야 한다. 좋은 커밋 메시지를 작성하기 위해서 알고 있으면 좋은 규칙은 다음과 같다. 제목과 본문 사이에 빈 줄 하나를 사용하라 제목은 50자로 제한하라 제목은 대문자로 시작하라 제목은 마침표로 끝내지마라 제목은 명령형으로 써라 본문의 한줄은 72자 이내로 제한하라 본문에서는 어떻게(How)보다 무엇(What)과 왜(Why)를 설명하라. 규칙 1. 제목과 본문 사이에 빈 줄 하나를 사용하라 원래 깃의 커밋 메시지에서는 제목과 본문을 구.. 2023. 12. 30.
[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.
[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.
[Github] 깃허브 토큰 인증 - Personal Access Token 생성 및 사용법 깃허브(GitHub)는 사용자 인증을 위해서 PAT(Personal Access Token)을 사용해야 한다. 이번 포스트에서는 깃허브에서 Personal Access Token을 발급하고 사용하는 방법을 다뤄보겠다. Personal Access Token 생성 깃허브 사이트에 로그인을 하고 Settings 페이지로 들어간다. (링크 : 깃허브 Settings 페이지) 좌측 메뉴에서 ‘Developer settings’ 항목을 클릭한다. 그러면 서브 메뉴 중에서 Personal Access token을 찾을 수 있다. Personal Access token 페이지로 들어가보면 현재까지 생성한 토큰들의 리스트를 볼 수 있다. ‘Generate new token’ 버튼을 누르면 새로운 토큰을 생성할 수 있다.. 2022. 8. 28.
[Github] 깃허브 코파일럿 기능 소개 친한 개발자들 사이에 이런 대화가 오간적이 있었다. “앞으로는 인공지능이 코딩하는 시대가 오고 우리는 다 짤리는거 아냐?” 개발자가 작성한 인공지능이 코딩을 하기 시작하면서 개발자의 밥줄을 끊는 일이 정말 일어날까? 실제로 인공지능이 코드를 작성해주는 서비스가 있다. 바로 깃허브(Github)의 ‘코파일럿(Copilot)’이라는 기능이다. (링크 : 깃허브 코파일럿) 깃허브 코파일럿 깃허브 코파일럿(Github Copilot)은 깃허브가 2021년에 출시한 서비스로 OpenAI의 GPT-3 모델을 이용하여 깃허브에 저장되어 있는 수 많은 소스코드들을 학습해 자동으로 소스코드를 생성해주는 인공지능이다. 개발자가 입력하는 주석이나 함수 이름에서 의미를 파악하고, 코드를 자동완성해준다. 코드를 작성하는데 필요.. 2022. 8. 14.
[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.