Git 명령을 위한 간단한 터미널 UI
이 프로젝트의 유지 관리는 모든 기여자와 후원자에 의해 가능해졌습니다. 이 프로젝트를 후원하고 아바타나 회사 로고가 아래에 표시되도록 하려면 여기를 클릭하세요. ?
호언장담: 전에도 들어보셨겠지만, git은 강력합니다 . 하지만 모든 일이 너무 힘들 때 그 힘이 무슨 소용이 있겠습니까? 대화형 리베이스를 사용하려면 편집기에서 빌어먹을 TODO 파일을 편집해야 합니까? 농담하는 거야? 파일의 일부를 스테이징하려면 명령줄 프로그램을 사용하여 각 덩어리를 단계별로 실행해야 하며, 덩어리를 더 이상 분할할 수 없지만 스테이징하고 싶지 않은 코드가 포함된 경우 난해한 패치 파일을 편집해야 합니다. 손으로 ? 지금 농담하는 거야?! 때때로 브랜치를 전환할 때 변경 사항을 숨기라는 요청을 받았지만 전환하고 숨김을 해제한 후에 아무런 충돌도 없었고 그냥 브랜치를 직접 체크아웃해도 괜찮았을 것이라는 사실을 깨달았습니다. 농담이군요!
당신이 나처럼 단순한 필사자이고 일상 생활에서 git이 얼마나 강력한지 듣는 것이 지겹다면,lazygit이 당신을 위한 것일 수 있습니다.
Lazygit은 제가 정규직은 아니지만 상당한 아르바이트이므로 프로젝트를 지원하고 싶다면 후원을 고려해 주세요.
선택한 줄에서 스페이스바를 눌러 스테이징하거나 v
눌러 줄 범위 선택을 시작하세요. a
눌러 현재 덩어리 전체를 선택할 수도 있습니다.
대화형 리베이스를 시작하려면 i
누르세요. 그런 다음 리베이스를 불러와서 리베이스를 계속하기 전에 TODO 커밋을 스쿼시( s
), 수정( f
), 삭제( d
), 편집( e
), 위로 이동( ctrl+i
) 또는 아래로 이동( ctrl+j
)합니다. 옵션 메뉴에서 m
누른 다음 continue
선택합니다.
명시적으로 리베이스를 시작하지 않고도 이러한 작업을 일회성(예: 커밋에서 s
눌러 스쿼시)으로 수행할 수도 있습니다.
또한 이 데모에서는 Shift+Down을 사용하여 이동하고 수정할 커밋 범위를 선택합니다.
커밋에서 shift+c
눌러 복사하고 shift+v
눌러 붙여넣습니다(체리 선택).
git bisect를 시작하려면 커밋 보기에서 b
눌러 커밋을 좋음/나쁨으로 표시하세요.
git status
실행할 때 표시되는 모든 항목(예, 더티 하위 모듈도 포함)을 Kidpix 스타일로 제거하고 싶다면 shift+d
눌러 재설정 옵션 메뉴를 불러온 다음 'nuke' 옵션을 선택하세요.
커밋에서 shift+a
누르면 현재 단계적으로 변경된 내용으로 해당 커밋이 수정됩니다(백그라운드에서 대화형 리베이스 실행).
/
사용하여 보기를 필터링할 수 있습니다. 여기서는 분기 보기를 필터링한 다음 enter
눌러 커밋을 봅니다.
Lazygit에는 매우 유연한 사용자 정의 명령 시스템이 있습니다. 이 예에서는 내장된 분기 체크아웃 작업을 에뮬레이트하는 사용자 정의 명령이 정의됩니다.
여러 분기를 전환할 때 숨김이나 WIP 커밋을 생성할 필요 없이 한 번에 여러 분기가 이동하도록 작업 트리를 만들 수 있습니다. 선택한 분기에서 작업 트리를 생성하고 해당 분기로 전환하려면 분기 보기에서 w
누르세요.
이전 커밋에서 사용자 정의 패치를 빌드한 다음 커밋에서 패치를 제거하고, 새 커밋을 분할하고, 패치를 인덱스에 역으로 적용하는 등의 작업을 수행할 수 있습니다.
이 예에는 이전 커밋에서 제거하려는 중복 주석이 있습니다. 커밋에서
눌러 파일을 본 다음 파일에서
눌러 패치에 초점을 맞추고
눌러 사용자 정의 패치에 주석 줄을 추가한 다음 ctrl+p
눌러 사용자 정의 패치 옵션을 봅니다. ; 현재 커밋에서 패치를 제거하도록 선택합니다.
Rebase 매직 Youtube 튜토리얼에서 자세히 알아보세요.
개발 브랜치에서 자체적으로 분기된 기능 브랜치에 있고 마스터 브랜치에서 분기하기로 결정했다고 가정해 보겠습니다. 기능 브랜치의 커밋만 리베이스하는 방법이 필요합니다. 이 데모에서는 개발 브랜치의 마지막 커밋이 무엇인지 확인한 다음 shift+b
눌러 해당 커밋을 기본 커밋으로 표시한 다음 마스터 브랜치에서 r
눌러 리베이스하여 커밋만 가져옵니다. 기능 지점. 그런 다음 shift+p
눌러 변경 사항을 푸시합니다.
'z'를 눌러 마지막 작업을 실행 취소하고 ctrl+z
눌러 다시 실행할 수 있습니다. 여기서는 몇 가지 커밋을 삭제한 다음 작업을 취소합니다. 실행 취소는 커밋 및 분기에 특정한 참조 로그를 사용하므로 작업 트리나 숨김에 대한 변경 사항을 실행 취소할 수 없습니다.
추가 정보
확대된 창에서 커밋 그래프를 볼 때(창 크기를 순환하려면 +
및 _
사용) 커밋 그래프가 표시됩니다. 색상은 커밋 작성자에 해당하며, 그래프를 아래로 탐색하면 선택한 커밋의 상위 커밋이 강조 표시됩니다.
커밋(또는 분기/참조)에서 shift+w
누르면 선택한 다른 커밋과 비교되도록 해당 커밋을 표시할 수 있는 메뉴가 열립니다. 두 번째 커밋을 선택하면 기본 보기에 diff가 표시되고
누르면 diff 파일이 표시됩니다. shift+w
누르면 diff 메뉴를 다시 볼 수 있으며 diff 방향 반전 또는 diff 모드 종료와 같은 옵션을 볼 수 있습니다.
눌러 diff 모드를 종료할 수도 있습니다.
위 패키지의 대부분은 제3자에 의해 유지 관리되므로 직접 조사하여 유지 관리자가 지역 스포츠 경기에 참석하고 바비큐 모금 활동 등을 통해 지역 사회에 환원하는 신뢰할 수 있는 사람인지 확인하십시오.
Windows, Mac OS(10.12+) 또는 Linux의 경우 여기에서 바이너리 릴리스를 다운로드할 수 있습니다.
일반적으로lazygit 공식은 Homebrew 코어에서 찾을 수 있지만 자주 업데이트되는 공식을 얻으려면 공식을 탭하는 것이 좋습니다. Linux에서도 작동합니다.
수도꼭지:
brew install jesseduffield/lazygit/lazygit
핵심:
brew install lazygit
github 릴리스에서 빌드된 최신 버전입니다. 수도꼭지:
sudo port install lazygit
Void Linux용 패키지는 distro 저장소에서 사용할 수 있습니다.
업스트림 최신 릴리스를 따릅니다.
sudo xbps-install -S lazygit
Scoop을 사용하여 lazygit
설치할 수 있습니다. extras
버킷에 있습니다.
# Add the extras bucket
scoop bucket add extras
# Install lazygit
scoop install lazygit
Arch Linux용 패키지는 pacman 및 AUR(Arch User Repository)을 통해 제공됩니다.
두 개의 패키지가 있습니다. 최신 릴리스로 빌드된 안정적인 버전과 최신 커밋으로 빌드된 git 버전입니다.
sudo pacman -S lazygit
AUR 콘텐츠 설치 방법에 대한 지침은 여기에서 찾을 수 있습니다: https://wiki.archlinux.org/index.php/Arch_User_Repository
Fedora/RHEL 및 CentOS Stream용 패키지는 Copr(Cool Other Package Repo)을 통해 제공됩니다.
sudo dnf copr enable atim/lazygit -y
sudo dnf install lazygit
sudo eopkg install lazygit
LAZYGIT_VERSION= $( curl -s " https://api.github.com/repos/jesseduffield/lazygit/releases/latest " | grep -Po ' "tag_name": "vK[^"]* ' )
curl -Lo lazygit.tar.gz " https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_ ${LAZYGIT_VERSION} _Linux_x86_64.tar.gz "
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
Lazygit이 올바르게 설치되었는지 확인합니다.
lazygit --version
Funtoo Linux에는 dev-kit에 자동 생성된lazygit 패키지가 있습니다:
sudo emerge dev-vcs/lazygit
Lazygit은 (아직) 메인 Gentoo 포티지에 없지만, GURU 오버레이에서 ebuild를 사용할 수 있습니다.
시스템에 오버레이를 추가하고 평소대로lazygit을 설치할 수 있습니다.
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge dev-vcs/lazygit
Lazygit 패키지는 현재 devel:언어s:go/lazygit에 구축되어 있습니다.
openSUSE Tumbleweed에lazygit을 설치하려면 다음을 실행하세요.
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
openSUSE Leap에lazygit을 설치하려면 다음을 실행하세요.
source /etc/os-release
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/ $VERSION_ID /devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
NixOs에서lazygit은 nix와 함께 패키지되어 있으며 nixpkgs를 통해 배포됩니다. 다음을 사용하여 설치하지 않고도lazygit을 사용해 볼 수 있습니다.
nix-shell -p lazygit
# or with flakes enabled
nix run nixpkgs#lazygit
또는 Environment.systemPackages 섹션의 setup.nix에lazygit을 추가할 수 있습니다. 자세한 내용은 NixOs 검색 페이지를 통해 확인할 수 있습니다.
Lazygit은 다음과 같이 Flox 환경에 설치할 수 있습니다.
flox install lazygit
Flox에 대한 자세한 내용은 해당 웹사이트에서 확인할 수 있습니다.
pkg install lazygit
apt install lazygit
출시된 버전은 다양한 플랫폼에서 사용할 수 있습니다. https://anaconda.org/conda-forge/lazygit을 참조하세요.
conda install -c conda-forge lazygit
go install github.com/jesseduffield/lazygit@latest
참고:lazygit을 찾을 수 없거나 정의되지 않았다는 오류가 발생하는 경우 $PATH(MacOS/Linux) 또는 %HOME%gobin
(Windows)에 ~/go/bin
추가해야 할 수 있습니다. . C:Gobin
(lazygit과 같은 앱이 아닌 Go 자체 바이너리용)으로 착각하지 마세요.
Chocolatey를 사용하여 lazygit
설치할 수 있습니다.
choco install lazygit
다음 명령을 사용하여 Windows 터미널에서 winget
명령을 사용하여 lazygit
설치할 수 있습니다.
winget install - e -- id = JesseDuffield.lazygit
Go를 설치해야 합니다.
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install
go run main.go
사용하여 한 번에 컴파일하고 실행할 수도 있습니다(확실히 말장난입니다).
Git 저장소 내부의 터미널에서 lazygit
호출하세요.
$ lazygit
원하는 경우 echo "alias lg='lazygit'" >> ~/.zshrc
(또는 사용 중인 rc 파일)를 사용하여 이에 대한 별칭을 추가할 수도 있습니다.
여기에서 키 바인딩 목록을 확인할 수 있습니다.
Lazygit에서 저장소를 변경하고,lazygit을 종료할 때 쉘이 해당 저장소로 디렉터리를 변경하도록 하려면 다음을 ~/.zshrc
(또는 다른 rc 파일)에 추가하세요.
lg()
{
export LAZYGIT_NEW_DIR_FILE=~/.lazygit/newdir
lazygit "$@"
if [ -f $LAZYGIT_NEW_DIR_FILE ]; then
cd "$(cat $LAZYGIT_NEW_DIR_FILE)"
rm -f $LAZYGIT_NEW_DIR_FILE > /dev/null
fi
}
그런 다음 source ~/.zshrc
하고 이제부터 lg
호출하고 종료할 때 디렉토리를lazygit 내부에 있던 디렉토리로 전환하게 됩니다. 이 동작을 무시하려면 q
대신 shift+Q
사용하여 종료할 수 있습니다.
문서 보기
구성 문서를 확인하세요.
문서 보기
Lazygit에 기능이 누락된 경우 사용자 정의 명령을 사용하여 직접 구현할 수 있는 좋은 기회입니다!
문서 보기
Lazygit은 Gitflow를 설치한 경우 이를 지원합니다. Gitflow 모델이 어떻게 작동하는지 이해하려면 이를 설명하는 Vincent Driessen의 원본 게시물을 확인하세요. Lazygit 내에서 Gitflow 옵션을 보려면 분기 보기 내에서 i
누르세요.
우리는 귀하의 의견을 환영합니다! 기여 가이드를 확인해 보세요. 여기 저장소에서 더 잘 논의되지 않은 사항에 대한 기여자 토론을 보려면 디스코드 채널에 가입하세요.
어디서부터 시작해야 할지 알아보려면lazygit에서 작은 기능을 만드는 과정을 안내하는 이 비디오를 확인하세요.
프로그램과 로그 출력을 나란히 보려면 한 터미널 탭에서 lazygit --debug
실행하고 다른 터미널 탭에서 lazygit --logs
실행하십시오.
Lazygit의 개발을 지원하고 싶다면 저를 후원해 보세요. (github에서는 12개월 동안 모든 기부금을 1달러당 1달러로 매칭하고 있습니다.)
개발 측면에서 나(Jesse)가 무엇을 하고 있는지 알고 싶다면 트위터에서 나를 팔로우하거나 내 블로그를 확인하세요.
Lazygit이 요구 사항을 완전히 충족하지 못한다면 다음이 더 적합할 수 있습니다.