Tortoisegit 使用示例
克隆一個項目(分別從github倉庫纹腌、自己搭建的gitblit?倉庫上獲取)
教程開始之前,補充一個知識點:
本地倉庫和遠程git倉庫的連接方式有兩種:HTTPS?和?SSH,很多時候都是直接使用 HTTPS URL 方式克隆項目到本地,當然也有有些人使用SSH URL克隆到本地碴裙。這兩種方式的主要區(qū)別在于:
HTTPS:使用起來不用配置,對初學者來說會比較方便点额,只要復制HTTPS URL然后到git Bash里面直接用clone命令克隆到本地就好了舔株,但是每次 fetch 和 push代碼都需要輸入賬號和密碼,這也是HTTPS?方式的麻煩之處还棱。
SSH:使用SSH URL方式需要在克隆之前先配置和添加好SSH key载慈,因此,如果你想要使用SSH url克隆的話珍手,你必須是這個項目的擁有者办铡。否則你是無法添加SSH key的辞做,另外ssh默認是每次fetch和push代碼都不需要輸入賬號和密碼,如果你想要每次都輸入賬號密碼才能進行fetch和push也可以另外進行設置寡具。多數介紹Git的博客里面采用的都是https的方式作為案例秤茅,今天主要是記錄如何配置并在海龜git中使用SSH方式來提交和克隆代碼。
第1步:此處介紹通過SSH URL方式傳輸童叠,使用之前需要先將本地的 SSH 公鑰配置到 Git 服務器上框喳。
先查看SSH Key。在C盤用戶主目錄用戶目錄下拯钻,看看有沒有.ssh目錄帖努,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件粪般,如果已經有了,可直接跳到第2步污桦。
如果沒有上述文件亩歹,則需要創(chuàng)建一個SSH Key,在任意文件夾下點擊右鍵凡橱,選擇 Git GUI Here小作。在彈出的程序中選擇主菜單的【Help】→【Show SSH Key】:
如果沒有Key,則點擊“Generate Key”生成一個SSH Key:
把生成的全部內容拷出來稼钩。
如果一切順利的話顾稀,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件坝撑,這兩個就是SSH Key的秘鑰對静秆,id_rsa是私鑰,不能泄露出去巡李,id_rsa.pub是公鑰抚笔,可以放心地告訴任何人。(其他創(chuàng)建SSH Key方式:通過Shell命令方式創(chuàng)建)
第2步:把 SSH Key 填到Git 服務器的配置中侨拦。
GitHub服務器:登陸GitHub殊橙,【頭像】→【Settings】→【SSH and GPG Keys】→【New SSH Key】,填入上一步的復制的SSHKey狱从,然后【Add SSH Key】:
Gitblit 服務器(自己搭建 Git 服務器膨蛮,Gitblit的安裝教程請看這里),登錄?Gitblit賬戶季研,在【頭像】→【用戶中心】→【SSH Keys】敞葛,填入上一步的復制的SSHKey,然后【添加】
為什么GitHub需要SSH Key呢训貌?因為GitHub需要識別出你推送的提交確實是你推送的制肮,而不是別人冒充的冒窍,而Git支持SSH協議,所以豺鼻,GitHub只要知道了你的公鑰综液,就可以確認只有你自己才能推送。
第3步:要克隆 GitHub 或 Gitblit?上的項目儒飒,先要獲取對應遠程存儲庫的路徑(注意:此處使用 SSH URL 方式):
GitHub倉庫:從 GitHub項目頁面上得到對應存儲庫的 giturl 路徑:
Gitblit 倉庫:在存儲庫頁面這個位置得到存儲庫的 giturl 路徑:
第4步:在本地文件夾的空白位置處谬莹,右擊鼠標,在菜單中選擇【Git克隆】:
把git 路徑填寫到URL桩了,并選擇本地文件目錄附帽,點擊【確定】,彈出下載進度窗口井誉。(服務器端至少要有一個文件蕉扮,否則 pull的時候會報錯 fatal: Couldn't find remote ref HEAD)
克隆成功,則在文件夾上就可以看到角標標識:
Git文件上角標符號說明:
文件上的圖標颗圣,可以反映出當前文件或者文件夾的狀態(tài):
1喳钟、正常的:綠色的對號
2、被修改過的:紅色感嘆號
3在岂、新添加的:藍色的加號
4奔则、未受控的(無版本控制的):藍色的問號
5、忽略不受控的:灰色的減號
6蔽午、刪除的:紅色的x號
7易茬、有沖突的:黃色的感嘆號?
若是看不到可以查看該教程:TortoiseGit狀態(tài)圖標不能正常顯示的解決辦法
將代碼提交到服務器
Git的使用類似TFS、SVN等源代碼或者文件管理器及老,慣例的流程:
第一步:改動抽莱,修改本地項目中的某些文件,如修改?README.md?內容写半,還可以增加一些文件岸蜗, 如Hello.txt。
第二步:提交本地叠蝇,在本地項目的空白處點擊鼠標右鍵璃岳,選擇 【Git提交(C) -> "master"...】
在彈出提交(Commit)對話框中完成提交說明信息,和選擇需要提交的文件悔捶,可根據需要新建分支铃慷,然后點擊 【提交】 按鈕,將修改提交到本地倉庫:
彈出提交進度窗口蜕该,提交成功后還需要“推送”將本地倉庫的修改推送到遠程倉庫犁柜。
第3步:同步拉取,在實際工作中堂淡,如果多人協作或者多個客戶端進行修改馋缅,那么我們還要拉取別人推送到在線倉庫的內容扒腕,所以在推送之前需要先執(zhí)行同步拉取(Pull ...)操作。
在本地倉庫文件夾上【右擊鼠標】→【Git同步】:
打開Git同步窗口(包括常規(guī)操作及日志萤悴,同右擊菜單快捷操作一樣)瘾腰,點擊【拉取(P)】,將遠程分支拉取到本地:
如果服務器上的文件沒有被修改過覆履,就會直接提示已經更新到最新蹋盆,那你就可以直接進行下一步“推送(H)”操作了:
反之,如果服務器上的文件被修改過了(本地文件修改前不是最新版本)硝全,就會提示沖突栖雾。先要解決沖突,然后再提交結果:
需要注意的是伟众,和使用TFS析藕、SVN的習慣一樣,你在修改本地內容之前凳厢,最好先 拉仍刖丁(pull)一下,減少沖突的可能数初。
第四步:推送遠程,將提交到本地倉庫的修改推送到遠程倉庫梗顺,可以直接在提交成功后的提示窗口上點擊【推送(H)...】泡孩,或者在Git同步窗口點擊【推送(H)...】,鼠標右擊的菜單上也有相應的快捷操作:選擇 【TortoiseGit(T)】→【推送(H)...】
彈出推送(push)對話框:
一般保持默認,點擊 “確定” 按鈕
然后彈出推送進度界面寺谤,可能要求你輸入用戶名仑鸥,點擊【確定】,然后要求輸入密碼变屁,密碼輸入正確后眼俊,顯示推送成功界面: