TL:DR
GitHub 프로젝트에서 작업할 때, issue를 사용하여 작업 항목을 추적하고 관리하기로 마음 먹었다. issue와 연관된 작업을 수행하기 위해 새로운 브랜치를 만들어야 하는데 이 과정을 더욱 편하게 하기 위해 alias를 사용하여 GitHub issue를 기반으로 새로운 브랜치를 만들도록 했다.
필수 설치 사항
- GitHub CLI : GitHub의 기능을 커맨드 라인에서 사용할 수 있도록 도와주는 도구.
- fzf : 터미널에서 상호작용적인 검색을 제공하는 유용한 도구.
- Git
git alias 설정
먼저, 다음과 같이 .gitconfig
파일에 alias를 정의한다.
1 |
|
git icb
명령을 실행하면, GitHub issue 목록을 검색하고 선택한 issue를 기반으로 브랜치를 만들 수 있다.
코드 설명
이 코드는 다음과 같은 작업을 수행한다.
gh issue list
명령을 사용하여 현재 GitHub 프로젝트의 issue 목록을 가져옵니다.fzf
를 사용하여 사용자에게 issue 목록을 선택하도록 합니다.사용자가 선택한 issue의 번호와 제목을
awk
를 사용하여 적절한 형식으로 가공합니다.이 단계에서는
awk
명령을 사용하여 사용자가 선택한 issue의 번호와 제목을 가공한다.-F
옵션을 사용하여 입력 필드 구분자를 설정하고,$1
과$3
를 사용하여 선택한 issue의 번호와 제목에 접근했다. 그런 다음,gsub()
함수를 사용하여 제목에서 공백을 밑줄(_)로 대체하여 브랜치 이름으로 사용할 수 있도록 했다. 최종적으로,print
함수를 사용하여 적절한 형식으로 가공된 문자열을 출력하도록 했다.최종적으로
git checkout -b
명령을 사용하여 선택한 issue를 기반으로 새로운 브랜치를 만든다.
여담
사실 커맨드 라인에 다음과 같은 명령어를 쳐도 된다.
1 |
|
하지만 이럴 경우 너무 길고, 불편하기 때문에 git alias에 등록하고 했다. git alias를 사용하면 내가 원하는 축약된 이름으로 위의 명령어를 사용할 수 있다고 생각했기 때문이다.
하지만 git alias에서 이 명령어가 통하지 않았다. ㅠㅠ 여기저기 찾아보고 ai의 도움도 받았다.
여기서(링크) 함수를 선언 후 사용할 수 있다고 했길래, f()
라는 함수로 감싸서 실행시켰다.
그 다음 문제점은 바로 터미널에서 실행했을 때는 상관없었지만, alias 파일에 등록할 때는 " "
로 감싸야했다. 하지만 나는 " "
를 사용했기 때문에 꼬이기 시작한 것이다. 이부분에 대해서는 \
를 사용하면 해결된다는 것을 알기 때문에 쉽게 해결할 수 있었다. c/c++ 코딩하면서 얻은 경험치가 여기서 사용이 되다니! 아무튼 \"
가 "
가 문자열의 일부라는 것을 알려주는 것이기에 되는 것이다.
그 외에 다른 명령어들은 chat gpt한테 물어본 후 함수를 알고 그 함수를 이것저것 테스트하면서 내가 원하는 형식으로 만들 수 있게 되었다. 아마 수십번 테스트 한 것이다. 언제 한번 본격적으로 배워야하는데 미루고 있다.
위에는 살짝 가식은 섞은 것이고, 진짜 이유는 맥북에 모니터를 연결하지 못할 경우, 크롬 켰다, vscode 켰다 하는게 귀찮아서 CLI로 해결하자는 마음이 거대해졌기 때문이다.
그리고 fzf
를 사용해보고, 왠지 모르게 나의 도전욕구를 건드리고 있다. 많은 아이디어를 생각나게 하는 것은 오랜만인걸. 결과도 바로바로 볼 수 있어서 좋다.
이만 여담은 마치고, 또 재미있거나 유용한 것 만들면 다시 나타날 것이다.