不記得Git命令? 懶人版Git值得擁有!
Git的強(qiáng)大是所有開(kāi)發(fā)者都心知肚明的事情,但是其多樣的命令令人很是難受。不過(guò)在Github上有著這么一個(gè)開(kāi)源項(xiàng)目lazygit[1]。
Lazygit是由Jesseduffield開(kāi)發(fā)并維護(hù)的項(xiàng)目,其代碼托管在Github。通過(guò)使用Lazygit,我們可以更加便捷的去控制和維護(hù)項(xiàng)目。
值得一提的是,Lazygit被加入了最基本的鼠標(biāo)控制支持。如果你想要了解更多有關(guān)Lazygit的特性,請(qǐng)?jiān)L問(wèn)https://youtu.be/CPLdltN7wgE[2]。
如何安裝?
Lazygit給出了多種安裝方式和平臺(tái)支持,你可以使用如下命令去嘗試安裝該應(yīng)用程序。
Homebrew
通??梢栽?Homebrew 核心中找到lazygit 安裝包,但還是建議按照指令以獲取經(jīng)常更新的安裝包,指令也適用于 Linux。
Tap:
- brew install jesseduffield/lazygit/lazygit
Core:
- brew install lazygit
Ubuntu
已棄用: 將不再接收更新。
Packages for Ubuntu are available via Launchpad PPA[3].
- sudo add-apt-repository ppa:lazygit-team/release
- sudo apt-get update
- sudo apt-get install lazygit
Scoop (Windows)
可以通過(guò)使用 scoop [4]安裝lazygit:
- scoop bucket add extras
- scoop install lazygit
Fedora and CentOS 7
Fedora 和 CentOS 7 的軟件包可通過(guò)Copr[5](Cool Other Package Repo)獲得。
- sudo dnf copr enable atim/lazygit -y
- sudo dnf install lazygit
Go
- go install github.com/jesseduffield/lazygit@latest
Lazygit的基本操作
在安裝完成后,你可以在某個(gè)本地的Git倉(cāng)庫(kù)中使用lazygit命令來(lái)打開(kāi)Lazygit控制臺(tái):
$ lazygit
如果你認(rèn)為這條命令有點(diǎn)麻煩,你可以添加alias別名echo "alias lg='lazygit'" >> ~/.zshrc,后面的文件取決于你所使用中的終端。
快捷鍵綁定
可以在此處[6]查看鍵綁定列表。
在打開(kāi)Lazygit之后我們很容易就能看到最下方的幫助信息。
使用PgUp鍵向上滾動(dòng)
使用PgDn鍵向下滾動(dòng)
使用x鍵打開(kāi)菜單
使用↑↓←→鍵來(lái)控制光標(biāo)
并且我們可以使用鼠標(biāo)來(lái)控制界面焦點(diǎn)。
添加到暫存區(qū)
將焦點(diǎn)轉(zhuǎn)移到Files區(qū),在需要的文件點(diǎn)擊即可添加到暫存區(qū)。如果需要從緩存區(qū)移除這個(gè)文件,只需要再次點(diǎn)擊即可。
文件Commit
同樣是將焦點(diǎn)轉(zhuǎn)移到Files區(qū),將需要進(jìn)行Commit操作的文件添加到暫存區(qū)(文件名變綠),按x鍵進(jìn)入菜單,選中自己所需要的Commit方式,回車(chē)輸入Commit內(nèi)容即可。
項(xiàng)目Push
在將需要進(jìn)行Push操作的文件添加到暫存區(qū)后按x打開(kāi)菜單,選中Push,輸入對(duì)應(yīng)信息即可。
項(xiàng)目Pull
打開(kāi)菜單選中Pull即可進(jìn)行遠(yuǎn)程倉(cāng)庫(kù)拉取操作。
退出時(shí)更改目錄
如果要在lazygit 中更改repos 并希望 shell 在退出lazygit 時(shí)將目錄更改為該repo,需要將其添加到~/.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從現(xiàn)在開(kāi)始,當(dāng)調(diào)用lg并退出時(shí),將切換目錄到所在lazigt 中的任何內(nèi)容。要覆蓋此行為,通過(guò)使用 usingshift+Q可以退出目錄.
撤銷(xiāo)重做
查看文檔[7]
配置
查看配置文檔[8]
自定義命令
如果lazygit 缺少某個(gè)功能,可以使用自定義命令實(shí)現(xiàn)
查看文檔[9]
Resolving merge conflicts
Interactive Rebasing
本地調(diào)試lazygit --debug在一個(gè)終端選項(xiàng)卡和另一個(gè)終端選項(xiàng)卡中運(yùn)行以lazygit --logs并排查看程序及其日志輸出
參考資料
[1]lazygit: https://github.com/jesseduffield/lazygit[2]https://youtu.be/CPLdltN7wgE: https://github.com/jesseduffield/lazygit[3]Launchpad PPA: https://launchpad.net/~lazygit-team[4]scoop : https://scoop.sh/[5]Copr: https://copr.fedorainfracloud.org/coprs/atim/lazygit/[6]此處: https://github.com/jesseduffield/lazygit/tree/master/docs/keybindings[7]文檔: https://github.com/jesseduffield/lazygit/blob/master/docs/Undoing.md[8]文檔: https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md[9]文檔: https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Command_Keybindings.md