本節先簡單介紹 git 的使用與操做, 而後再介紹 TortoiseGit 的使用與操做.css
先看看SVN的操做吧, 最多見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 至關於有一個服務器端, 能夠多個客戶端進行訪問和操做.git
Git是SVN之後的新一代的版本控制系統/協議. 適合於大規模的開源軟件多人協做的開發. 有一個總倉庫(如GitHub,CSDN,OSchina等提供), 每一個客戶端都有一個本地倉庫(這個本地倉庫有點對應於SVN的服務端倉庫), 以及一個能夠看見的本地項目.github
讓咱們想一想,至少須要有哪些功能.以 GitHub爲例,首先,必須得有一個線上倉庫(Repository), 這首先得新建一個倉庫.sql
要建立倉庫,必須得先 註冊帳號 . 請參考: 建立GitHub技術博客全攻略: http://blog.csdn.net/renfufei/article/details/37725057瀏覽器
而後,登陸 GitHub, 在右上角找到 New Repository 或者 加號下拉按鈕(+),點擊進入新建倉庫頁面: https://github.com/new , 以下圖所示:安全
依次填寫倉庫名,以及其餘信息後,點擊 " Create repository " 按鈕,便可建立一個在線倉庫. 由於這個倉庫是掛在你的帳號下的,因此能夠是任意合法的字符,只要和你的其餘倉庫不衝突便可.bash
倉庫建立成功後,就會進入倉庫預覽頁面, 以下圖所示:服務器
而後,咱們能夠點擊右邊的 HTTPS 連接, 上方的文本框裏面就顯示了 HTTPS協議下的倉庫訪問地址, 能夠點擊進去全選,也能夠點擊右邊的複製按鈕複製到剪貼板. 例如,剛剛建立的項目訪問路徑是:app
https://github.com/cncounter/LispGentleIntro.git
是一個以 https:// 開始,以 .git 結尾的 URL,根據提示,叫作 clone URL.fetch
好了,倉庫建立完成,能夠進入下一步了.
若是你偏心命令行,那麼能夠簡單參考下這一小節. 不然,請往下翻,直接看 TortoiseGit使用與操做
Win+R 快捷鍵打開運行對話框,輸入 cmd
回車, 在 cmd 中(其實在 GitBash中也能夠), cd 切換到存放git項目的目錄, 如:
Microsoft Windows [版本 6.1.7601] 版權全部 (c) 2009 Microsoft Corporation。保留全部權利。 C:\Users\Administrator>F: F:\>cd GIT_ALL
而後執行命令: git clone https://github.com/cncounter/LispGentleIntro.git
,就會把項目克隆到當前目錄下, 項目的目錄名字默認爲 LispGentleIntro .
F:\GIT_ALL>git clone https://github.com/cncounter/LispGentleIntro.git
Cloning into 'LispGentleIntro'... remote: Counting objects: 5, done. remote: Compressing objects: 100% (4/4), done. remote: Total 5 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (5/5), done. Checking connectivity... done.
命令行截圖以下:
而後能夠 cd
切換到 LispGentleIntro 目錄, 新增或者修改某些文件.這裏只是模擬一下操做. 實際狀況多是 使用 Eclipse 導入項目(不要拷貝,Copy...)進行一些編輯, 而後將當前目錄下的全部有變更的文件告訴索引庫,接着提交到本地倉庫.
F:\GIT_ALL>cd LispGentleIntro
F:\GIT_ALL\LispGentleIntro>echo some content >> cncounter.txt
F:\GIT_ALL\LispGentleIntro>echo by cncounter >> README.md
F:\GIT_ALL\LispGentleIntro>git add .
F:\GIT_ALL\LispGentleIntro>git commit -m "add some info." [master 86d090f] add some info. 2 files changed, 4 insertions(+) create mode 100644 cncounter.txt
提交到本地倉庫有什麼好處呢? 本地倉庫就是一個版本管理庫,咱們在編寫代碼時,若是寫錯了,那麼可能須要 Ctrl+Z 來撤銷,撤銷撤銷,若是不少,並且跨文件,就很麻煩,可能須要Copy文件什麼的。 這時候本地倉庫就頗有用了. 修改到某個階段,而後就提交到本地倉庫. 能夠有效防止丟失,方便回退. 並且,提交到本地倉庫不會影響別人看到的內容(只有本機可見).
若是完成到必定程度,那麼能夠推送到遠端在線倉庫. 推送以前,請確保你已經設置了全局的 user.name
和 user.email
, 若是沒有設置,或者不想使用全局的信息,能夠在當前項目下設置:
F:\GIT_ALL\LispGentleIntro>git config user.name "renfufei" F:\GIT_ALL\LispGentleIntro>git config user.email "renfufei@qq.com"
接着,能夠執行推送(push), 推送就是將已經提交到本地倉庫的那部份內容給推到遠端在線倉庫.(修改了,但沒提交的那部份內容,不會被推送). 執行 git push
命令便可:
F:\GIT_ALL\LispGentleIntro>git push
Username for 'https://github.com': renfufei Password for 'https://renfufei@github.com': Counting objects: 6, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 402 bytes | 0 bytes/s, done. Total 4 (delta 1), reused 0 (delta 0) To https://github.com/cncounter/LispGentleIntro.git e8c0fb1..6407079 master -> master
在鏈接上遠端服務器以後,會要求你輸入用戶名與密碼. 其中,用戶名是你註冊GitHub時的帳號,不是郵箱. 接着是密碼,注意密碼是沒有回顯的,也就是爲了安全,不告訴你具體輸入了幾個字符,輸入完成回車便可. 截圖以下:
好了,推送完成,這時候用瀏覽器打開在線倉庫,看看內容是否是已經變了?
固然,若是多人協做, 或者多個客戶端進行修改, 那麼咱們還要拉取(Pull ... )別人推送到在線倉庫的內容下來。 大神們是不推薦使用 pull 命令進行拉取的, 由於封裝了細節(git pull == git fetch + git merge). 對於這羣更喜歡用命令行的神們來講, 一切在掌控之中是一種強迫症!!!(開個玩笑, 其實項目成員複雜,約定很差之後, pull 確實會有不少問題,會坑人.)
常規使用,咱們執行 git pull
便可:
F:\GIT_ALL\LispGentleIntro>git pull Already up-to-date.
固然,由於沒有其餘文件被修改,因此直接提示 已經更新到最新. 常規操做就這些,須要注意的是,和使用SVN的好習慣同樣,你在修改本地內容以前,最好先 pull 一下,減小衝突的可能.
使用 Git命令有時候確實不怎麼方便,特別是每次都要輸入密碼,若是配置 SSH 的方式,又實在是很麻煩.(固然,必須使用 Windows 神器纔有方便友好的客戶端圖形界面啦!!!)
關於 TortoiseGit 的安裝請參考 前一小節 .
打開資源管理器(個人電腦/計算機), 進入規劃好的某個目錄中, 而後在空白處點擊鼠標右鍵, 選擇 TortoiseGit --> 克隆... (Clone...).
彈出克隆項目對話框:
在對話框的 URL中輸入項目地址,如:
https://github.com/cncounter/LispGentleIntro.git
肯定本地目錄,而後點擊 肯定 按鈕. 等待完成後,點擊關閉按鈕便可.
項目克隆完成後(能夠將克隆 clone 理解爲 下載, 檢出 checkout 操做). 修改本地項目中的某些文件,如 將 README.md
修改成以下內容:
LispGentleIntro
===============
Lisp-符號計算入門指引翻譯
<a href="http://cncounter.duapp.com/">天朝計數器</a>
還能夠試試增長一些文件. 如 files.txt
.
而後在本地項目的空白處點擊鼠標右鍵, 選擇 TortoiseGit --> 提交(C) -> "master"...或: Commit -> "master"....
彈出提交(Commit)對話框:
做爲好習慣,填寫提交日誌,勾選須要提交的文件,而後點擊 "肯定" 按鈕, 即提交到本地倉庫.
推送是提交的下一步操做.
在本地項目的空白處點擊鼠標右鍵, 選擇 TortoiseGit --> 推送... 或: Push....
彈出推送(push)對話框:
通常保持默認,點擊 「 肯定 」 按鈕.
而後彈出推送進度界面, 可能要求你輸入用戶名:
肯定OK,而後要求輸入密碼:
密碼輸入正確後,OK,顯示推送成功界面:
若是你按照上一小節的設置操做,則輸入密碼之後會記住密碼. 密碼會明文保存在C:\Users\Administrator\.git-credentials
這種文件中, 請當心使用.
若是本地的項目沒有在線倉庫的新,則須要執行拉取操做(Pull ...).
在本地項目的空白處點擊鼠標右鍵, 選擇 TortoiseGit --> 拉取... 或: Pull....
彈出拉取(pull)對話框:
若是拉取有BUG,則能夠勾選上變基(不報錯就別勾選了!!!), 肯定,進入 拉取進度界面:
而後執行變基:
而後完成便可.
這應該是 TortoiseGit 的一個BUG, 要解決這個問題,請參考 解決 TortoiseGit 詭異的 Bad file number 問題 (或者能夠換回老版本. 若是你沒有出這個問題,那麼,多是個人機器哪裏損壞了).
http://www.tuicool.com/articles/naIF73