git
[Git] RSS 글 발행 시(티스토리 등) GitHub 자동 커밋 방법
[Git] RSS 글 발행 시(티스토리 등) GitHub 자동 커밋 방법
2024.07.03GitHub에서 사용자 이름(username)과 동일한 이름으로 public 레포지토리를 생성하고 RRADME.md 파일을 추가하면 프로필 페이지 상단에 README 내용이 표시된다. 프로필 페이지엔 주로 자신이 소개하고 싶은 프로젝트, 기술 스택 등을 기재한다. 카테고리별로 주목할만한 프로필 페이지를 모아둔 사이트도 있다. 대부분의 개발자들이 블로그를 운영하고 있어서 그런지 Latest Blog Posts 헤더에 최근 글 목록을 보여주는 프로필이 많다. 이 기능은 rss-parser 같은 라이브러리를 통해 RSS 피드 목록을 불러오고 README.md에 반영하는 방식으로 구현되는데, 이 작업을 GitHub Actions를 통해 정기적으로 수행하도록 만들 수 있다. RSS 설정먼저 자신의 블로그 혹은 ..
[Git] 1Password에 저장한 SSH 키로 Git 커밋 서명하기
[Git] 1Password에 저장한 SSH 키로 Git 커밋 서명하기
2024.05.18Git 2.34 이후 버전부터 SSH 키를 이용한 커밋 / 태그 서명을 지원한다. 1Password SSH 통합 기능을 사용하고 있다면 GPG 키 없이 1Password 앱에서 Git 커밋 서명을 자동으로 구성할 수도 있다. 커밋을 서명하면 GitHub 계정에 연결된 SSH 공개키로 실제 사용자가 변경한 내용인지 검증 할 수 있다. 그럼 다른 사람의 서명하지 않은 커밋을 방지할 수 있다.GPG(Gnu Privacy Guard)는 GNU 프로젝트에서 개발한 오픈소스 암호화 소프트웨어다. 공개키 암호화 방식을 사용하며, 암호화, 서명, 인증 등의 기능을 제공한다. 요구 사항1Password 버전 8이상의 데스크톱 앱Git 2.34 혹은 이후 버전1Password SSH Agent 활성 (참고 포스팅)1Pas..
[Git] 병합(Merge) 충돌 방지를 위한 리베이스 Rebase
[Git] 병합(Merge) 충돌 방지를 위한 리베이스 Rebase
2024.05.12merge 충돌 방지를 위한 리베이스(Rebase) ⭐️PR 보내기 전 다른 사람이 새로운 커밋을 추가한 상태라면 충돌 방지를 위해 로컬 레포지토리를 최신화하고(upstream ⇄ origin 레포지토리 동기화), 현재 작업중인 기능/버그 브랜치의 base를 develop 브랜치의 마지막 커밋으로 변경하는 리베이스(Rebase) 작업이 필요하다 — 참고글1 | 참고글2 ❶ 현재 상태# 현재 위치 feature-branch 8번 커밋1 - 2 - 3 - 5 (devlop) \ 4 - 6 - 7 - 8 (feature-branch)develop 브랜치의 1~2 커밋 : 로컬 레포지토리의 develop 브랜치 커밋develop 브랜치의 3~5 커밋 : 원격(upstream) 레포지토리에서 새로..
[Git] PR / Commit 메시지 키워드로 이슈 연동 및 종료하기
[Git] PR / Commit 메시지 키워드로 이슈 연동 및 종료하기
2024.05.09키워드 기능 소개💡 Special Keyword 기능 작동 조건PR 타겟이 레포지토리의 default branch 일 때PR의 base가 default branch 일 때 PR Description 혹은 Commit 메시지(Subject 혹은 Description)에 키워드 #이슈번호를 추가하면 입력한 이슈가 자동으로 링크되며, 해당 Commit 혹은 PR을 기본 브랜치(default branch)에 Merge 했을 때 링크한 이슈도 자동으로 닫힌다.git commit -m "Feat: order filter close #15" 참고로 브랜치 이름에 이슈 번호를 기재하면(#889-feat-…) 자동으로 입력한 이슈를 참조한다. 커밋을 추가하면 해당 이슈에 아래 같은 레퍼런스 히스토리가 남는다.userA..
[DevTools] 1Password에서 SSH 키 관리하기
[DevTools] 1Password에서 SSH 키 관리하기
2024.05.081Password 8 버전부터 SSH & Git 관리 기능을 사용할 수 있다. 현재 Ed25519와 RSA 두가지 타입을 지원하며, 기존 SSH 키를 불러와서 저장할 수도 있다. 참고로 *.pem 파일을 1Password에 불러와서 저장한 후, 개인키를 다시 다운로드해서 사용할 땐 pem 확장자를 추가해야 한다. 1Password의 SSH & Git 관리 기능을 사용하면 SSH 개인키를 로컬에 저장하지 않고도 SSH 인증을 진행할 수 있다. ~/.ssh/config 파일에 일일이 SSH 키 경로를 명시해야 하는 번거로움도 덜 수 있다. 1Password에서 생성한 SSH 키는 공개키와 핑거 프린트(Finger Print)를 함께 생성하기 때문에 GitHub 같은 서비스에서 공개키 자동완성 기능도 사용할 ..
[Git] 알면 유용한 GitHub 단축키 / 팁
[Git] 알면 유용한 GitHub 단축키 / 팁
2024.05.05💡 미립자 팁GitHub 페이지에서 ? 키를 누르면 단축키 목록을 확인할 수 있다.소스코드 화면에서 . 키를 누르면 웹 VSCode로 볼 수 있다.GitHub 프로필 주소 끝에 .png를 붙이면 프로필 이미지를 볼 수 있다e.g. https://github.com/romantech.png Focus the search bar/ 혹은 s 키를 누르면 왼쪽 상단에 있는 검색창에 포커스된다. 검색창에 원하는 키워드를 입력해서 내 계정이나 다른 사람 계정에 있는 레포지토리로 이동할 수 있다. File Finder레포지토리에서 t 키를 누르면 File Finder 모드가 활성화된다. File Finder 모드에서 파일 / 폴더명을 입력하면 해당 레포지토리에 있는 파일 목록을 보여준다. 파일 목록에선 위 / 아..
[Git] git revert, git reset 차이점 및 HEAD 분리
[Git] git revert, git reset 차이점 및 HEAD 분리
2024.05.01TL;DRreset : 현재 브랜치를 지정한 커밋으로 이동. 그 이후의 커밋 히스토리는 삭제revert : 커밋 변경사항을 취소하는 새로운 커밋 생성. 기존 커밋 히스토리는 유지 HEAD 배경지식Git Branch 학습/연습하기 좋은 사이트 ▼ Learn Git BranchingAn interactive Git visualization tool to educate and challenge!learngitbranching.js.org HEAD는 현재 브랜치 작업 트리의 가장 최근 커밋을 가리킨다(현재 작업중인 커밋).HEAD를 브랜치 대신 커밋에 붙이는 것을 HEAD 분리라고 부른다.^(캐럿) 연산자는 상대참조 기능으로, 한 단계 위(부모) 커밋으로 이동할 때 사용한다.git checkout bugFix^..
[DevTools] direnv로 폴더마다 다른 node 버전 적용하기 / 전역 gitignore
[DevTools] direnv로 폴더마다 다른 node 버전 적용하기 / 전역 gitignore
2024.05.01프로젝트마다 사용하는 Node 버전이 다르다면 nvm을 이용해서 버전을 변경할 수 있다. 하지만 매번 수동으로 노드 버전을 바꿔주는 것은 번거로운 일이다. direnv를 활용하면 프로젝트 폴더를 바꿀 때마다 노드 버전이 자동으로 바뀌도록 설정할 수 있다. direnv는 폴더별로 환경을 관리해주는 도구다. 설치❶ direnv 설치brew install direnv # homebrew로 direnv 설치 ❷ direnv hook 설정(폴더 이동시 해당 폴더의 .envrc 파일 자동 실행). oh-my-zsh를 사용한다면 `.zshrc` 파일 `plugins` 배열에 `direnv`를 추가하면 자동으로 설정된다.# ~/.zshrcplugins=(... direnv) oh-my-zsh를 사용하지 않는다면 아래 ..
[Git] SSH 공개키 만들기 / Credential 인증 시스템
[Git] SSH 공개키 만들기 / Credential 인증 시스템
2024.04.26Credential 저장소 / HTTPS 프로토콜Git 리모트 저장소와 통신할 때 사용하는 프로토콜은 Git(기본 프로토콜), SSH, HTTPS 방식이 있다. Git 기본 프로토콜은 인증 기능이 미약하여 거의 사용하지 않고, 주로 SSH나 HTTPS를 사용한다. HTTPS 프로토콜을 사용하면 매번 사용자 이름과 암호를 입력해야하는 번거로움이 있는데 Git은 이를 위해 인증 정보를 저장해두고 자동으로 입력해주는 Credential 시스템을 제공한다. Credential 기능에서 제공하는 옵션은 아래 3가지가 있다. cache 모드 : 인증정보를 메모리에 임시 저장(기본 15분)store 모드 : 인증 정보를 텍스트 파일로 Disk에 저장. 사용자 홈 디렉토리에 일반 텍스트 파일로 저장되므로 인증 정보 노..
[Git] 변경한 상태 임시 저장 후 브랜치 이동 방법 — Git Stash
[Git] 변경한 상태 임시 저장 후 브랜치 이동 방법 — Git Stash
2024.04.25특정 브랜치에서 파일을 수정하고 git checkout 명령어로 잠시 다른 브랜치로 이동하려고 하면 아래 메시지가 나온다.Please commit your changes or stash them before you switch branches. 변경한 내용을 commit하거나 stash 해야만 다른 브랜치로 이동할 수 있다는 메시지다. 아직 완료하지 않은 작업을 commit하기 껄끄러울 때 stash 명령어를 활용할 수 있다. 마무리하지 않은 작업을 stash 스택에 임시 저장한 후 다른 브랜치로 이동할 수 있다. Stash 명령어stash했던 브랜치가 아니어도(다른 브랜치에서도) stash에 저장한 내용을 복원(적용)할 수 있다 stash 스택에 저장# 현재 상태 임시 저장 ⭐️git stash sta..