매번 git add, git commit 하다가 gui로 제공하는 서비스를 맛보면 그 버튼맛이 아주 그냥 죽인다..
그러다가 다시 cli로 돌아와서 명령어를 치고 있다 보면 내가 왜 이걸 하고 있지...? 라는 생각이 가끔 든다.
그런 당신에게 lazygit을 추천한다.
Lazygit은 Git을 편리하게 사용할 수 있도록 도와주는 터미널 기반의 TUI (Text User Interface) 클라이언트다.
CLI 환경에서 Git 명령어를 직접 입력하지 않고도, 인터랙티브한 UI를 통해 Git을 쉽게 관리할 수 있다.
일단 심심풀이로 내가 공부하던 리포의 README.md를 수정해봤다

그리고 lazygit을 실행한다(실행할 때는 해당 리포의 경로에서 해야 한다.)

아아...cli에서의 이런 모습..너무 좋다!
보면 README.md가 수정되었다는 것이 작업트리에 뜨고 있다.
이제 뭐..단축키(는 참고하자 ?를 누르면 볼 수 있다.)를 사용하여
git의 다양한 기능을 사용할 수 있다.
일단 변경을 했으니 푸시를 해보자.
푸시를 진행하면 되는데...!

두둥..! 보면
비밀번호 인증은 2021년 8월 13일로 삭제되었다
라고 나온다..ㅠㅠ
알아보니 https 방식으로 클론한 리포에는 비밀번호 인증을 지원하지 않는단다.. 토큰(pat, personal access token)을 가져와라는 요구를 본 적이 있으니 pat을 가져오도록 하자..!
어떻게?
cli만 사용했었는데, 그럼 어쩔 수 없는 것인가...?
라고 생각할 수 있겠지만, ssh를 하는 콘솔에서 브라우저만 지원된다면 가능하다.
그치만 최대한 cli를 활용해보도록 하자!
바로 github cli를 사용해서!
github-cli
github cli는 github의 기능들을 cli 환경에서 할 수 있도록 해주는 도구이다.
github에 로그인하는 것, pr 생성 등..을 cli 환경에서 할 수 있다.
그렇다면 당연히 github의 pat도 받아올 수 있다.
설치는 링크를 참조하자
설치 후에 gh auth login을 통해 github에 로그인한다.
로그인 과정은 2가지 선택지가 있다.
ssh와 https이다.
근데 어떻게든 브라우저를 한번은 호출하더라...
어쨋든 로그인을 성공하면 github cli가 github에서 pat를 가져오게 된다.
그럼 이걸 git에다 적용시키면 https 방식에서 요구하던 pat를 대신할 수 있게 된다.
git config --global credential.helper store
gh auth setup-git
이렇게 하면 git에서 인증정보를 github cli 방식에서 가져오게 된다.
그럼 다시 lazygit으로 돌아가서 push을 진행하면

마참내..username과 password를 요구하지 않고 push가 되는 것을 볼 수 있다.
정리해보자면,
보통 clone을 ssh 방식으로 하지 않고 https 방식으로 한다.
https의 경우 git push에서 비밀번호 인증을 지원하지 않으므로 pat를 비밀번호 대신으로 전달하거나 https 방식을 ssh 방식으로 전환해야 한다.
ssh 방식으로 전환하는 것도 있겠지만, github-cli를 사용해서 터미널에서 로그인을 진행하면 github에서 pat를 받아오게 된다.
github-cli가 받아온 인증정보를 git에다 적용하면 https 방식으로 클론한 리포도 별다른 인증없이 push가 가능하다.
lazygit 사용하면 gui와 비슷하게 터미널에서 사용 가능하다.