先給出項(xiàng)目地址:
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比馬村網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式馬村網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋馬村地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
lazygit 是一個(gè)用于 Git 命令行的簡(jiǎn)單終端 UI,使用 Go 語(yǔ)言編寫,用到了 gocui 庫(kù),目的是在命令行提供 Git 的圖形界面。lazygit 讓你有一種源自 Sourcetree 的感覺(jué),但是在以終端為中心的環(huán)境中。Lazygit 快速且易于使用,你只需在 git 存儲(chǔ)庫(kù)中的終端中調(diào)用 lazygit 即可。lazygit 可以在Linux、macOS、FreeBSD和Windows上運(yùn)行。
還記得咱們之前推薦的 Go 語(yǔ)言實(shí)現(xiàn)的帥帥的 Docker 終端 UI:lazydocker嗎?這是同一個(gè)作者哦,lazygit 的 star 數(shù)達(dá)到 12.5k+。
看下作者錄制的視頻:
是不是挺棒的!
可以直接在這里下載二進(jìn)制文件 ,或者按照如下方式安裝,比如 Mac 下通過(guò) Homebrew 安裝
沖突解決
Interactive Rebasing
趕緊試試吧~
使用簡(jiǎn)單的 make 調(diào)用創(chuàng)建的通道叫做無(wú)緩沖通道,但 make 還可以接受第二個(gè)可選參數(shù),一個(gè)表示通道容量的整數(shù)。如果容量是 0,make 創(chuàng)建一個(gè)無(wú)緩沖通道。
無(wú)緩沖通道上的發(fā)送操作將被阻塞,直到另一個(gè) goroutine 在對(duì)應(yīng)的通道上執(zhí)行接受操作,這時(shí)值傳送完成,兩個(gè) goroutine 都可以繼續(xù)執(zhí)行。相反,如果接受操作先執(zhí)行,接收方 goroutine 將阻塞,直到另一個(gè) goroutine 在同一個(gè)通道上發(fā)送一個(gè)值。使用無(wú)緩沖通道進(jìn)行的通信導(dǎo)致發(fā)送和接受操作 goroutine 同步化。因此,無(wú)緩沖通道也稱為同步通道。當(dāng)一個(gè)值在無(wú)緩沖通道上傳遞時(shí),接受值后發(fā)送方 goroutine 才能被喚醒。
緩沖通道上的發(fā)送操作在隊(duì)列的尾部插入一個(gè)元素,接收操作從隊(duì)列的頭部移除一個(gè)元素。如果通道滿了,發(fā)送操作會(huì)阻塞所在的 goroutine 直到另一個(gè) goroutine 對(duì)它進(jìn)行接收操作來(lái)留出可用的空間。反過(guò)來(lái),如果通道是空的,執(zhí)行接收操作的 goroutine 阻塞,直到另一個(gè) goroutine 在通道上發(fā)送數(shù)據(jù)。
如果給一個(gè) nil 的 channel 發(fā)送數(shù)據(jù),會(huì)造成永遠(yuǎn)阻塞。
如果從一個(gè) nil 的 channel 中接收數(shù)據(jù),也會(huì)造成永久阻塞。 給一個(gè)已經(jīng)關(guān)閉的 channel 發(fā)送數(shù)據(jù), 會(huì)引起 panic。
從一個(gè)已經(jīng)關(guān)閉的 channel 接收數(shù)據(jù), 如果緩沖區(qū)中為空,則返回一個(gè) 零 值。
現(xiàn)代應(yīng)用支持多平臺(tái)運(yùn)行是一件稀松平常的事情,在 Go 語(yǔ)言里面,為了支持應(yīng)用的多平臺(tái)部署,給用戶提供了方便的配置方式來(lái)輕松構(gòu)建針對(duì)不同操作系統(tǒng)和平臺(tái)的運(yùn)行文件。
Go 的構(gòu)建約束,即構(gòu)建標(biāo)簽,是以 // go:build 為開始的行注釋,如果是 1.16 或之前的版本,格式是 // +build 。跟此變更相關(guān)的 issue 可以參考 25348 。
構(gòu)建標(biāo)簽必須出現(xiàn)在 package 子句之前。為了區(qū)分構(gòu)建標(biāo)簽和包文檔的描述注釋,構(gòu)建標(biāo)簽后面應(yīng)該有一個(gè)空行。
構(gòu)建標(biāo)簽由||, , !運(yùn)算符以及括號(hào)來(lái)組合表達(dá)。運(yùn)算符與 Go 中的含義相同。
例如,以下構(gòu)建標(biāo)簽在滿足 linux 和 386 約束,或者滿足 darwin 而 cgo 不滿足時(shí)構(gòu)建文件:
//go:build (linux 386) || (darwin !cgo)
又如:僅在使用 cgo 時(shí),且僅在 Linux 和 OS X 上構(gòu)建文件: //go:build cgo (linux || darwin)
注意:1.17 及以后的表達(dá)格式里,一個(gè)文件有多個(gè) //go:build 行是錯(cuò)誤的。
在 1.16 及以前的版本,多行構(gòu)建標(biāo)簽是允許的,并且組合方式是通過(guò)空格和逗號(hào)等來(lái)區(qū)分,空格符表示 OR,逗號(hào)表示 AND,感嘆號(hào)表示 NOT。而多行之間則表示 OR。gofmt 命令將在遇到舊語(yǔ)法時(shí)添加等效的 //go:build 約束。如下是示例:
如果文件名在去除擴(kuò)展名和可能的 _test 后綴后匹配以下任何模式, (例如:source_windows_amd64.go)其中 GOOS 和 GOARCH 分別代表任何已知的操作系統(tǒng)和體系結(jié)構(gòu)值,那么認(rèn)為該文件除了文件中的任何顯式約束之外,具有這些術(shù)語(yǔ)的所表達(dá)的隱式構(gòu)建標(biāo)簽。
除了官方提供的針對(duì)不同平臺(tái)的內(nèi)置標(biāo)簽,用戶也可以使用自定義標(biāo)簽,例如 //go:build prod , 只需要在執(zhí)行 go build 時(shí)顯式帶上標(biāo)簽名 go build --tags=prod 。
想要使文件構(gòu)建時(shí)被忽略,可以使用: //go:build ignore ,其他任何沒(méi)有被用來(lái)定義為標(biāo)簽的詞也可以,但"ignore"是約定俗成的。)。Go 語(yǔ)言目前支持的系統(tǒng)和架構(gòu)可以參考 官方文檔 。