前言
Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。
在github上有很多優秀的項目,一個偉大的學習寶庫。本文分享使用tortoisegit對github/oschina等git類開源代碼托管平台進行日常版本控制的技能。
git book
git pro book: https://git-scm.com/book/zh/v2
10 個迅速提升你 Git 水平的提示:https://www.oschina.net/translate/10-tips-git-next-level?cmp
准備軟件
本文以window操作系統為例
git for windows
Git for Windows是用於windows平台下的倉庫(另有github for windows)
官網:https://git-for-windows.github.io/
TortoiseGit
github圖形化客戶端,包含多國語言包。
官網:https://tortoisegit.org/download/
開源地址:https://github.com/TortoiseGit/TortoiseGit
安裝步驟
1、安裝 git for windows (git-xxx-bit.exe)
2、安裝TortoiseGit,安裝完成之后打開TortoiseGit,它的操作和SVN小烏龜類似。
git clone的三種方式
首先需要明確,github上支持三種方式進行項目的clone (https,ssh,subversion)
https:https://github.com/用戶名/版本庫.git
ssh: git@github.com:用戶名/版本庫t.git
subversion:https://github.com/用戶名/版本庫
git command-line
tortoisegit可用的命令行:https://tortoisegit.org/docs/tortoisegit/tgit-automation.html
tortoisegit使用方法
tortoisegit https保存用戶名和密碼
tortoisegit - 設置 - 憑證 - 編輯全局.git/config ,添加
[credential] helper = store
用這種方式是把用戶名和密碼,以明文的方式保存在 C:\Users\你當前用戶名 ,例:C:\Users\zhaoq 。
ssh無需輸入密碼提交
1、在github的項目頁面,設置項目的拉取方式為 SSH
2、在本地磁盤目錄,點擊 右鍵,選擇 設置,進入設置界面
3、設置完成后,第一次提交會詢問是否信任,選擇信任,之后往這個庫提交就不需要輸入用戶名和密碼了。
Clone到本地
1、打開項目在github的地址,點擊 Clone or Download ,選擇ssh或https,點擊 copy
2、回到本地磁盤,點擊鼠標右鍵 選擇 Git Clone(git克隆) ,粘貼剪切板中的地址,點擊 確定
3、等待Clone結束之后,可以選擇 查看日志/關閉
提交代碼
1、本地有修改,在目錄中點擊 鼠標右鍵 選擇 Git提交->mater/其它分支
2、 提交完成之后,記得要點 推送 按鈕,這樣git倉庫中的內容才得到同步
更新代碼
建議使用 Git拉取 和 Git 同步
當遠端有新的tag (version),或其它重大修改之后,請先拉取再提交和推送
其它技巧
其它操作比如,查看日志,應用補丁之類的,和svn小烏龜相似。
可能遇到的問題
推送失敗
如果你在推送時遇到失敗提示,請仔細查看錯誤信息,在git的錯誤信息中都會告訴你要怎么做。
Authentication Failed(驗證失敗)
如果遇到下方信息,驗證失敗,有兩種解決辦法
方法一:
1、在本地機器上創建新的putty密鑰,並把密鑰添加到github的后台。
方法二:
1、檢查項目的拉取方式是否是ssh
2、重新克隆此倉庫,git clone時選擇 加載putty密鑰
3、在克隆過程中會彈出框,問你是否要將此計算機添加到你的信任設備列表,選擇 是。
4、再次嘗試推送,推送框勾選 “自動加載Putty密鑰”
提交之后點推送,遠端才更新?
這個要從git的原理說起,git是基於分布式管理的
git clone 太慢怎么辦?
http://www.aneasystone.com/archives/2015/08/git-clone-faster.html
方法1. 推薦proxychains代理,或者掛米國VPS
方法2. 把https改成http
方法3. 在release中選擇download 而非clone完整倉庫,缺點:沒有.git本地倉庫,不能commit,push
方法4. git clone --depth=1 ,這樣只clone當前最新的commit版本,缺點:沒有.git本地倉庫,不能commit,push
方法5. 在國內同類代碼托管網站查找是否有同樣的源碼,從國內鏡像下載。
參考資料:clone 一個 github 上龐大的代碼庫,每次 clone 到一半就中斷
如何斷點繼傳
使用tortoiseGIT在拉取目錄點擊鼠標右鍵 - 同步 - 拉取。就可以繼續上次的拉取工作
參考資料
github結合TortoiseGit使用sshkey,無需輸入賬號和密碼
開源中國的osc.git,幾乎一樣:Windows 下使用git 將代碼托管到開源中國