Git 想要 clone Github 的資料,卻遇到下述錯誤:
fatal: unable to access 'https://github.com/tsung/config/': gnutls_handshake() failed: Error in protocol version
錯誤訊息主要是「Error in protocol version、TLS」,遇到這個問題該怎麼解決呢?
個人筆記, 記錄關於 系統、程式、新聞 與 日常生活 等資訊
Git 想要 clone Github 的資料,卻遇到下述錯誤:
fatal: unable to access 'https://github.com/tsung/config/': gnutls_handshake() failed: Error in protocol version
錯誤訊息主要是「Error in protocol version、TLS」,遇到這個問題該怎麼解決呢?
以前 CSV、SVN 等等,都有版本編號可以查看,由版本編號就可以判斷新舊,就可以透過程式做一些處理,但是 Git 都是 sha-1 的 Hash,要怎麼做出數字的編號呢?
微軟於 2018/6/4 以 75億美金買下 GitHub,造成不少的開發專案都往 GitLab 搬移(遭微軟併購消息傳出,GitHub使用者大遷徙,蜂擁轉移至GitLab),來看看後續的發展~
Linux CLI 要查看 Git repository 的圖形顯示,可以使用 tig,視窗顯示查看可以使用 Gitk。
不過 tig 能看的比較有限,操作還是比較偏向 Git 命令列,而不是像 Gitk 上下左右的視窗可以即時看 Log、diff 等等的資料。
grv 就類同 CLI 版的 Gitk,而且執行速度很快,有空可以玩玩看~
Redmine 專案可以使用 GUI 的方式來查看 Git Repository 的 Commit / 歷史紀錄 等等資訊,但是在某個日期後,就一直無法更新,手動執行下述強制更新命令也沒用。
環境:Debian / Ubuntu Linux
要怎麼處理呢?
之前聽說 Google 把所有 Source code 都放在同一個 Git 管理,就覺得怪怪的,每個人或第一次 git pull 的時候應該都會炸掉才是。
註:此篇文章會說明,Google 確實把 Source code 放在同一個 Repository,不過是自己做的版本控制系統,不是 Git。
這篇文章把 Google 的程式碼版本控管都做詳細說明:Why Google Stores Billions of Lines of Code in a Single Repository
Gitolite 的某個 Project 要 push 後,自動到前端的機器自動更新,要如何做?
一般要實做 push 自動更新,只需要從 hooks/post-update 著手即可。
但是 gitolite 會將 hooks 裡面的檔案權限都自動修改成 640 (不可執行)
所以換個作法:
這樣子就可以 push 試試看囉~
Git 於 2016/3/17 有發現漏洞,而且問題不小,詳可見:Remote Code Execution in all git versions (client + server) < 2.7.1: CVE-2016-2324, CVE-2016‑2315
Git Diff 可以比對 Binary、Text,怎麼做的呢?
想要取得專案中目前在 Master 或 Branch,可以判斷要去抓不同的 config,可以使用此 function。
註:$git_head 的路徑請自行修改設定。
使用方式:
感謝 Fwolf 的建議,用 system 的指令執行:git branch | grep '*' | awk '{print $2}' ,可以解決 submodule 抓不到 branch 的問題