UI เทอร์มินัลอย่างง่ายสำหรับคำสั่ง git
ผู้ร่วมให้ข้อมูลและผู้สนับสนุนทุกคนสามารถบำรุงรักษาโครงการนี้ได้ หากคุณต้องการสนับสนุนโครงการนี้และให้อวตารหรือโลโก้บริษัทของคุณปรากฏด้านล่าง คลิกที่นี่ -
เวลาพูดจาโผงผาง: คุณเคยได้ยินมาก่อนว่า git นั้น ทรงพลัง แต่พลังนั้นจะมีประโยชน์อะไรในเมื่อทุกอย่างมันยากที่จะทำ? การรีบูตเชิงโต้ตอบต้องการให้คุณแก้ไขไฟล์ TODO ในตัวแก้ไขของคุณหรือไม่? คุณล้อเล่นฉันเหรอ? ในการสเตจส่วนหนึ่งของไฟล์ คุณต้องใช้โปรแกรมบรรทัดคำสั่งเพื่อก้าวผ่านแต่ละก้อนใหญ่ และหากไม่สามารถแยกก้อนใหญ่ออกไปได้อีกต่อไป แต่มีโค้ดที่คุณไม่ต้องการแสดง คุณจะต้องแก้ไขไฟล์แพทช์อาร์เคน ด้วยมือเหรอ ? คุณล้อฉันเล่นเหรอ! บางครั้งคุณถูกขอให้ซ่อนการเปลี่ยนแปลงของคุณเมื่อเปลี่ยนสาขาเพียงเพื่อตระหนักว่าหลังจากที่คุณสลับและยกเลิกการซ่อนแล้วไม่มีข้อขัดแย้งใด ๆ เลย และมันจะเป็นการดีที่จะชำระเงินที่สาขาโดยตรง คุณต้องล้อเล่นฉัน!
หากคุณเป็นเพียงมนุษย์ธรรมดาเหมือนฉัน และเบื่อที่จะได้ยินว่าคอมไพล์ทรงพลังแค่ไหน ในชีวิตประจำวันของคุณ มันช่างเจ็บปวดเหลือเกิน Lazygit อาจใช่สำหรับคุณ
Lazygit ไม่ใช่งานประจำของฉัน แต่เป็นงานพาร์ทไทม์ที่ทำงานหนัก ดังนั้นหากคุณต้องการสนับสนุนโครงการนี้ โปรดพิจารณาสนับสนุนฉันด้วย
กดเว้นวรรคบนบรรทัดที่เลือกเพื่อเว้นระยะ หรือกด v
เพื่อเริ่มเลือกช่วงของบรรทัด คุณยังสามารถกด a
เพื่อเลือกก้อนใหญ่ปัจจุบันทั้งหมดได้
กด i
เพื่อเริ่มการรีบูตแบบโต้ตอบ จากนั้นสควอช ( s
) แก้ไข ( f
) วาง ( d
) แก้ไข ( e
) เลื่อนขึ้น ( ctrl+i
) หรือเลื่อนลง ( ctrl+j
) การกระทำใด ๆ ของ TODO ที่คอมมิต ก่อนที่จะทำการรีบูตต่อโดยเรียกการรีบูตขึ้นมา เมนูตัวเลือกด้วย m
จากนั้นเลือก continue
คุณยังสามารถดำเนินการใดๆ เหล่านี้ได้แบบครั้งเดียว (เช่น การกด s
บนคอมมิตเพื่อสควอช) โดยไม่ต้องเริ่มการรีบูตอย่างชัดเจน
การสาธิตนี้ยังใช้ shift+down เพื่อเลือกช่วงของการคอมมิตที่จะย้ายและแก้ไข
กด shift+c
บนคอมมิตเพื่อคัดลอก และกด shift+v
เพื่อวาง (เลือกเชอร์รี่)
กด b
ในมุมมองคอมมิตเพื่อทำเครื่องหมายคอมมิตว่าดี/ไม่ดี เพื่อเริ่มการแบ่งคอมไพล์
สำหรับเมื่อคุณต้องการกำจัดสิ่งใด ๆ ที่ปรากฏขึ้นเมื่อคุณเรียกใช้ git status
(และใช่ซึ่งรวมถึงโมดูลย่อยที่สกปรกด้วย) รูปแบบ kidpix ให้กด shift+d
เพื่อเปิดเมนูตัวเลือกการรีเซ็ตขึ้นมา จากนั้นเลือกตัวเลือก 'nuke'
การกด shift+a
บนการคอมมิตใด ๆ จะแก้ไขการคอมมิตนั้นด้วยการเปลี่ยนแปลงที่เกิดขึ้นในปัจจุบัน (การรันการรีบูตเชิงโต้ตอบในเบื้องหลัง)
คุณสามารถกรองมุมมองด้วย /
ที่นี่เรากรองมุมมองสาขาของเราแล้วกด enter
เพื่อดูการกระทำของมัน
Lazygit มีระบบคำสั่งแบบกำหนดเองที่ยืดหยุ่นมาก ในตัวอย่างนี้ มีการกำหนดคำสั่งแบบกำหนดเองซึ่งจะจำลองการดำเนินการชำระเงินสาขาในตัว
คุณสามารถสร้างแผนผังงานเพื่อให้หลายสาขาดำเนินการพร้อมกันได้โดยไม่จำเป็นต้องสะสมหรือสร้าง WIP Commit เมื่อสลับระหว่างสาขาเหล่านั้น กด w
ในมุมมองสาขาเพื่อสร้างแผนผังงานจากสาขาที่เลือกแล้วสลับไปที่สาขานั้น
คุณสามารถสร้างแพตช์แบบกำหนดเองจากคอมมิตเก่า จากนั้นลบแพตช์ออกจากคอมมิต แยกคอมมิตใหม่ ใช้แพตช์ย้อนกลับไปยังดัชนี และอื่นๆ อีกมากมาย
ในตัวอย่างนี้ เรามีความคิดเห็นซ้ำซ้อนที่เราต้องการลบออกจากการคอมมิตเก่า เรากด
ที่คอมมิตเพื่อดูไฟล์ จากนั้นกด
ที่ไฟล์เพื่อโฟกัสแพตช์ จากนั้น
เพื่อเพิ่มบรรทัดความคิดเห็นลงในแพตช์แบบกำหนดเองของเรา จากนั้น ctrl+p
เพื่อดูตัวเลือกแพตช์แบบกำหนดเอง ; เลือกที่จะลบแพตช์ออกจากการคอมมิตปัจจุบัน
เรียนรู้เพิ่มเติมในบทช่วยสอน Rebase magic Youtube
สมมติว่าคุณอยู่ในฟีเจอร์แบรนช์ที่ถูกแยกสาขาออกจากสาขาพัฒนา และคุณได้ตัดสินใจว่าคุณอยากจะแยกสาขาออกจากสาขาหลัก คุณต้องมีวิธีรีบูตเฉพาะการคอมมิตจากสาขาฟีเจอร์ของคุณ ในการสาธิตนี้ เราจะตรวจสอบว่าอันไหนเป็น Commit สุดท้ายใน Develop Branch จากนั้นกด shift+b
เพื่อทำเครื่องหมาย Commit นั้นว่าเป็นฐาน Commit ของเรา จากนั้นกด r
บน Master Branch เพื่อรีบูตลงไป โดยนำเฉพาะ Commit จากเราเท่านั้น สาขาคุณลักษณะ จากนั้นเราก็ผลักดันการเปลี่ยนแปลงของเราด้วย shift+p
คุณสามารถยกเลิกการกระทำล่าสุดได้โดยกด 'z' และทำซ้ำด้วย ctrl+z
ที่นี่เราละทิ้งการคอมมิตสองสามรายการแล้วเลิกทำการกระทำ Undo ใช้ reflog ที่เฉพาะเจาะจงกับ Commit และ Branch ดังนั้นเราจึงไม่สามารถเลิกทำการเปลี่ยนแปลงในแผนผังการทำงานหรือที่ซ่อนได้
ข้อมูลเพิ่มเติม
เมื่อดูกราฟคอมมิตในหน้าต่างที่ขยายใหญ่ขึ้น (ใช้ +
และ _
เพื่อวนขนาดหน้าต่าง) กราฟคอมมิตจะปรากฏขึ้น สีจะสอดคล้องกับผู้เขียนคอมมิต และเมื่อคุณเลื่อนดูกราฟ คอมมิตระดับบนสุดของคอมมิตที่เลือกจะถูกไฮไลต์
หากคุณกด shift+w
บนคอมมิต (หรือสาขา/อ้างอิง) เมนูจะเปิดขึ้นเพื่อให้คุณทำเครื่องหมายคอมมิตนั้นได้ ดังนั้นคอมมิตอื่น ๆ ที่คุณเลือกจะแตกต่างออกไป เมื่อคุณเลือกคอมมิตที่สองแล้ว คุณจะเห็นความแตกต่างในมุมมองหลัก และถ้าคุณกด
คุณจะเห็นไฟล์ของความแตกต่าง คุณสามารถกด shift+w
เพื่อดูเมนู diff อีกครั้งเพื่อดูตัวเลือกต่างๆ เช่น การกลับทิศทางต่าง หรือออกจากโหมด diff คุณสามารถออกจากโหมด diff ได้โดยกด
แพ็คเกจข้างต้นส่วนใหญ่ได้รับการดูแลโดยบุคคลที่สาม ดังนั้นโปรดตรวจสอบด้วยตัวเองและยืนยันว่าผู้ดูแลนั้นดูน่าเชื่อถือ ผู้ที่เข้าร่วมการแข่งขันกีฬาในท้องถิ่นและตอบแทนชุมชนด้วยการระดมทุนบาร์บีคิว ฯลฯ
สำหรับ 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 repo
พวกเขาติดตามข่าวล่าสุดต้นน้ำ
sudo xbps-install -S lazygit
คุณสามารถติดตั้ง lazygit
โดยใช้scoop มันอยู่ในถัง 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 มีแพ็คเกจ Lazygit ที่สร้างขึ้นอัตโนมัติใน dev-kit:
sudo emerge dev-vcs/lazygit
Lazygit ไม่ได้อยู่ในการขนส่งหลักของ Gentoo อย่างไรก็ตาม ebuild มีอยู่ในการซ้อนทับของ GURU
คุณสามารถเพิ่มโอเวอร์เลย์ให้กับระบบของคุณและติดตั้ง Lazygit ได้ตามปกติ:
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge dev-vcs/lazygit
ปัจจุบันแพ็คเกจ Lazygit ถูกสร้างขึ้นใน devel: languages: go/lazygit
หากต้องการติดตั้ง Lazygit บน openSUSE Tumbleweed ให้รัน:
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
หากต้องการติดตั้ง Lazygit บน openSUSE Leap ให้รัน:
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
บน NixOslazgit ถูกบรรจุด้วย nix และแจกจ่ายผ่าน nixpkgs คุณสามารถลองใช้lazgitโดยไม่ต้องติดตั้งด้วย:
nix-shell -p lazygit
# or with flakes enabled
nix run nixpkgs#lazygit
หรือคุณสามารถเพิ่มlazgitให้กับคุณ configuration.nix ในส่วนenvironment.systemPackages รายละเอียดเพิ่มเติมสามารถพบได้ในหน้าค้นหาของ 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
โปรดทราบ: หากคุณได้รับข้อผิดพลาดที่อ้างว่าไม่พบlazgit หรือไม่ได้กำหนด คุณอาจต้องเพิ่ม ~/go/bin
ใน $PATH (MacOS/Linux) หรือ %HOME%gobin
(Windows) . เพื่อไม่ให้เข้าใจผิดว่าเป็น C:Gobin
(ซึ่งเป็นของไบนารีของ Go ไม่ใช่แอปอย่าง Lazygit)
คุณสามารถติดตั้ง lazygit
โดยใช้Chocolatey:
choco install lazygit
คุณสามารถติดตั้ง lazygit
ได้โดยใช้คำสั่ง winget
ใน Windows Terminal ด้วยคำสั่งต่อไปนี้:
winget install - e -- id = JesseDuffield.lazygit
คุณจะต้องติดตั้ง Go
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install
คุณยังสามารถใช้ go run main.go
เพื่อคอมไพล์และรันได้ในครั้งเดียว (ตั้งใจเล่นสำนวนแน่นอน)
เรียก lazygit
ในเทอร์มินัลของคุณภายในพื้นที่เก็บข้อมูล git
$ lazygit
หากต้องการ คุณสามารถเพิ่มนามแฝงสำหรับสิ่งนี้ด้วย echo "alias lg='lazygit'" >> ~/.zshrc
(หรือไฟล์ rc ใดก็ตามที่คุณใช้อยู่)
คุณสามารถตรวจสอบรายการการผูกปุ่มได้ที่นี่
หากคุณเปลี่ยน repos ในlazgit และต้องการให้เชลล์ของคุณเปลี่ยนไดเร็กทอรีเป็น repo นั้นเมื่อออกจาก 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
และออก คุณจะสลับไดเร็กทอรีเป็นสิ่งที่คุณอยู่ในlazgit หากต้องการแทนที่พฤติกรรมนี้ คุณสามารถออกโดยใช้ shift+Q
แทนที่จะใช้เพียง q
ดูเอกสาร
ตรวจสอบเอกสารการกำหนดค่า
ดูเอกสาร
หากlazgit ขาดฟีเจอร์ใดไป ก็เป็นโอกาสที่ดีที่คุณจะสามารถนำมันไปใช้งานได้ด้วยตัวเองด้วยคำสั่งที่กำหนดเอง!
ดูเอกสาร
Lazygit รองรับ Gitflow หากคุณติดตั้งไว้ เพื่อทำความเข้าใจว่าโมเดล Gitflow ทำงานอย่างไร โปรดดูโพสต์ต้นฉบับของ Vincent Driessen ที่อธิบายไว้ หากต้องการดูตัวเลือก Gitflow จากภายใน Lazygit ให้กด i
จากภายในมุมมองสาขา
เราชอบข้อมูลของคุณ! โปรดตรวจสอบคู่มือการมีส่วนร่วม สำหรับการอภิปรายของผู้มีส่วนร่วมเกี่ยวกับสิ่งที่ไม่ควรพูดคุยกันใน Repo ให้เข้าร่วมช่อง Discord
ลองชมวิดีโอแนะนำการสร้างฟีเจอร์เล็กๆ ใน Lazygit หากคุณต้องการทราบว่าจะเริ่มต้นจากตรงไหน
เรียกใช้ lazygit --debug
ในเทอร์มินัลแท็บหนึ่งและ lazygit --logs
ในอีกแท็บหนึ่งเพื่อดูโปรแกรมและเอาต์พุตบันทึกแบบเคียงข้างกัน
หากคุณต้องการสนับสนุนการพัฒนา Lazygit โปรดพิจารณาสนับสนุนฉัน (GitHub จับคู่การบริจาคทั้งหมดแบบดอลลาร์ต่อดอลลาร์เป็นเวลา 12 เดือน)
หากคุณต้องการดูว่าฉัน (เจสซี) กำลังทำอะไรในแง่ของการพัฒนา ติดตามฉันบน Twitter หรือตรวจดูบล็อกของฉัน
หากคุณพบว่าlazgitไม่ตรงตามความต้องการของคุณ สิ่งเหล่านี้อาจเหมาะสมกว่า: