天天看點

GitHub、Git與TortoiseGit基本操作

【轉載】http://blog.csdn.net/jibaole/article/details/50474004

1. GitHub操作

本節先簡單介紹 git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作.

先看看SVN的操作吧, 最常見的是 檢出(Check out …), 更新 (Update …), 以及 送出(Commit …); 相當于有一個伺服器端, 可以多個用戶端進行通路和操作.

Git是SVN以後的新一代的版本控制系統/協定. 适合于大規模的開源軟體多人協作的開發. 有一個總倉庫(如GitHub,CSDN,OSchina等提供), 每個用戶端都有一個本地倉庫(這個本地倉庫有點對應于SVN的服務端倉庫), 以及一個可以看見的本地項目.

讓我們想想,至少需要有哪些功能.以 GitHub為例,首先,必須得有一個線上倉庫(Repository), 這首先得建立一個倉庫.

要建立倉庫,必須得先新增賬號. 請參考: 建立GitHub技術部落格全攻略: http://blog.csdn.net/renfufei/article/details/37725057

然後,登入 GitHub, 在右上角找到 New Repository 或者 加号下拉按鈕(+),點選進入建立倉庫頁面: https://github.com/new, 如下圖所示:

GitHub、Git與TortoiseGit基本操作

依次填寫倉庫名,以及其他資訊後,點選 “Create repository” 按鈕,即可建立一個線上倉庫. 因為這個倉庫是挂在你的賬号下的,是以可以是任意合法的字元,隻要和你的其他倉庫不沖突即可.

倉庫建立成功後,就會進入倉庫預覽頁面, 如下圖所示:

GitHub、Git與TortoiseGit基本操作

然後,我們可以點選右邊的 HTTPS 連結, 上方的文本框裡面就顯示了 HTTPS協定下的倉庫通路位址, 可以點選進去全選,也可以點選右邊的複制按鈕複制到剪貼闆. 例如,剛剛建立的項目通路路徑是:

https://github.com/cncounter/LispGentleIntro.git
           

是一個以 https:// 開始,以 .git 結尾的 URL,根據提示,叫做 clone URL.

好了,倉庫建立完成,可以進入下一步了.

2. Git使用與操作

如果你偏愛指令行,那麼可以簡單參考下這一小節. 否則,請往下翻,直接看 TortoiseGit使用與操作

2.1 克隆項目(clone …)

Win+R 快捷鍵打開運作對話框,輸入 

cmd

 回車, 在 cmd 中(其實在 GitBash中也可以), cd 切換到存放git項目的目錄, 如:

[plain] view plain copy

GitHub、Git與TortoiseGit基本操作
GitHub、Git與TortoiseGit基本操作
  1. Microsoft Windows [版本 6.1.7601]  
  2. 版權所有 (c) 2009 Microsoft Corporation。保留所有權利。  
  3. C:\Users\Administrator>F:  
  4. F:\>cd GIT_ALL  

然後執行指令: 

git clone https://github.com/cncounter/LispGentleIntro.git

 ,就會把項目克隆到目前目錄下, 項目的目錄名字預設為  LispGentleIntro .

[plain] view plain copy

GitHub、Git與TortoiseGit基本操作
GitHub、Git與TortoiseGit基本操作
  1. F:\GIT_ALL>git clone https://github.com/cncounter/LispGentleIntro.git  
  2. Cloning into ‘LispGentleIntro’…  
  3. remote: Counting objects: 5, done.  
  4. remote: Compressing objects: 100% (4/4), done.  
  5. remote: Total 5 (delta 0), reused 0 (delta 0)  
  6. Unpacking objects: 100% (5/5), done.  
  7. Checking connectivity… done.  

指令行截圖如下:

GitHub、Git與TortoiseGit基本操作

2.2 送出項目(commit …)

然後可以 

cd

 切換到 LispGentleIntro 目錄, 新增或者修改某些檔案.這裡隻是模拟一下操作. 實際情況可能是 使用 Eclipse 導入項目(不要拷貝,Copy…)進行一些編輯, 然後将目前目錄下的所有有變動的檔案告訴索引庫,接着送出到本地倉庫.

[plain] view plain copy

GitHub、Git與TortoiseGit基本操作
GitHub、Git與TortoiseGit基本操作
  1. F:\GIT_ALL>cd LispGentleIntro  
  2. F:\GIT_ALL\LispGentleIntro>echo some content >> cncounter.txt  
  3. F:\GIT_ALL\LispGentleIntro>echo by cncounter >> README.md  
  4. F:\GIT_ALL\LispGentleIntro>git add .  
  5. F:\GIT_ALL\LispGentleIntro>git commit -m “add some info.”  
  6. [master 86d090f] add some info.  
  7.  2 files changed, 4 insertions(+)  
  8.  create mode 100644 cncounter.txt  

送出到本地倉庫有什麼好處呢? 本地倉庫就是一個版本管理庫,我們在編寫代碼時,如果寫錯了,那麼可能需要 Ctrl+Z 來撤銷,撤銷撤銷,如果很多,而且跨檔案,就很麻煩,可能需要Copy檔案什麼的。 這時候本地倉庫就很有用了. 修改到某個階段,然後就送出到本地倉庫. 可以有效防止丢失,友善回退. 而且,送出到本地倉庫不會影響别人看到的内容(隻有本機可見).

2.3 推送項目(push …)

如果完成到一定程度,那麼可以推送到遠端線上倉庫. 推送之前,請確定你已經設定了全局的 

user.name

 和 

user.email

, 如果沒有設定,或者不想使用全局的資訊,可以在目前項目下設定:

[plain] view plain copy

GitHub、Git與TortoiseGit基本操作
GitHub、Git與TortoiseGit基本操作
  1. F:\GIT_ALL\LispGentleIntro>git config user.name “renfufei”  
  2. F:\GIT_ALL\LispGentleIntro>git config user.email “[email protected]”  

接着,可以執行推送(push), 推送就是将已經送出到本地倉庫的那部分内容給推到遠端線上倉庫.(修改了,但沒送出的那部分内容,不會被推送). 執行 

git push

 指令即可:

[plain] view plain copy

GitHub、Git與TortoiseGit基本操作
GitHub、Git與TortoiseGit基本操作
  1. F:\GIT_ALL\LispGentleIntro>git push  
  2. Username for ‘https://github.com’: renfufei  
  3. Password for ‘https://[email protected]’:  
  4. Counting objects: 6, done.  
  5. Delta compression using up to 8 threads.  
  6. Compressing objects: 100% (3/3), done.  
  7. Writing objects: 100% (4/4), 402 bytes | 0 bytes/s, done.  
  8. Total 4 (delta 1), reused 0 (delta 0)  
  9. To https://github.com/cncounter/LispGentleIntro.git  
  10.    e8c0fb1..6407079  master -> master  

在連接配接上遠端伺服器之後,會要求你輸入使用者名與密碼. 其中,使用者名是你注冊GitHub時的賬号,不是郵箱. 接着是密碼,注意密碼是沒有回顯的,也就是為了安全,不告訴你具體輸入了幾個字元,輸入完成回車即可. 截圖如下:

GitHub、Git與TortoiseGit基本操作

好了,推送完成,這時候用浏覽器打開線上倉庫,看看内容是不是已經變了?

2.4 拉取項目(pull …)

當然,如果多人協作, 或者多個用戶端進行修改, 那麼我們還要拉取(Pull … )别人推送到線上倉庫的内容下來。 大神們是不推薦使用 pull 指令進行拉取的, 因為封裝了細節(git pull == git fetch + git merge). 對于這群更喜歡用指令行的神們來說, 一切在掌控之中是一種強迫症!!!(開個玩笑, 其實項目成員複雜,約定不好以後, pull 确實會有很多問題,會坑人.)

正常使用,我們執行 

git pull

 即可:

[plain] view plain copy

GitHub、Git與TortoiseGit基本操作
GitHub、Git與TortoiseGit基本操作
  1. F:\GIT_ALL\LispGentleIntro>git pull  
  2. Already up-to-date.  

當然,因為沒有其他檔案被修改,是以直接提示 已經更新到最新. 正常操作就這些,需要注意的是,和使用SVN的好習慣一樣,你在修改本地内容之前,最好先 pull 一下,減少沖突的可能.

3.TortoiseGit使用與操作

使用 Git指令有時候确實不怎麼友善,特别是每次都要輸入密碼,如果配置 SSH 的方式,又實在是很麻煩.(當然,必須使用 Windows 神器才有友善友好的用戶端圖形界面啦!!!)

關于 TortoiseGit 的安裝請參考 前一小節.

3.1 克隆項目

打開資料總管(我的電腦/計算機), 進入規劃好的某個目錄中, 然後在空白處點選滑鼠右鍵, 選擇 TortoiseGit –> 克隆… (Clone…).

GitHub、Git與TortoiseGit基本操作

彈出克隆項目對話框:

GitHub、Git與TortoiseGit基本操作

在對話框的 URL中輸入項目位址,如:

https://github.com/cncounter/LispGentleIntro.git
           

确定本地目錄,然後點選 确定 按鈕. 等待完成後,點選關閉按鈕即可.

GitHub、Git與TortoiseGit基本操作

3.2 修改送出項目

項目克隆完成後(可以将克隆 clone 了解為 下載下傳, 檢出 checkout 操作). 修改本地項目中的某些檔案,如 将 

README.md

 修改為如下内容:

[plain] view plain copy

GitHub、Git與TortoiseGit基本操作
GitHub、Git與TortoiseGit基本操作
  1. LispGentleIntro  
  2. ===============  
  3. Lisp-符号計算入門指引翻譯  
  4. <a href=”http://cncounter.duapp.com/”>天朝計數器</a>  

還可以試試增加一些檔案. 如 

files.txt

 .

然後在本地項目的空白處點選滑鼠右鍵, 選擇 TortoiseGit –> 送出(C) -> “master”… 或: Commit -> “master”….

GitHub、Git與TortoiseGit基本操作

彈出送出(Commit)對話框:

GitHub、Git與TortoiseGit基本操作

作為好習慣,填寫送出日志,勾選需要送出的檔案,然後點選 “确定” 按鈕, 即送出到本地倉庫.

GitHub、Git與TortoiseGit基本操作

3.3 将送出到本地的項目推送到線上倉庫

推送是送出的下一步操作.

在本地項目的空白處點選滑鼠右鍵, 選擇 TortoiseGit –> 推送… 或: Push….

GitHub、Git與TortoiseGit基本操作

彈出推送(push)對話框:

GitHub、Git與TortoiseGit基本操作

一般保持預設,點選 “确定” 按鈕.

然後彈出推送進度界面, 可能要求你輸入使用者名:

GitHub、Git與TortoiseGit基本操作

确定OK,然後要求輸入密碼:

GitHub、Git與TortoiseGit基本操作

密碼輸入正确後,OK,顯示推送成功界面:

GitHub、Git與TortoiseGit基本操作

如果你按照上一小節的設定操作,則輸入密碼以後會記住密碼. 密碼會明文儲存在 

C:\Users\Administrator\.git-credentials

 這種檔案中, 請小心使用.

3.4 拉取項目(pull …)

如果本地的項目沒有線上倉庫的新,則需要執行拉取操作(Pull …).

在本地項目的空白處點選滑鼠右鍵, 選擇 TortoiseGit –> 拉取… 或: Pull….

GitHub、Git與TortoiseGit基本操作

彈出拉取(pull)對話框:

GitHub、Git與TortoiseGit基本操作

如果拉取有BUG,則可以勾選上變基(不報錯就别勾選了!!!), 确定,進入 拉取進度界面:

GitHub、Git與TortoiseGit基本操作

然後執行變基:

GitHub、Git與TortoiseGit基本操作

然後完成即可.

這應該是 TortoiseGit 的一個BUG, 要解決這個問題,請參考 解決 TortoiseGit 詭異的 Bad file number 問題 (或者可以換回老版本. 如果你沒有出這個問題,那麼,可能是我的機器哪裡損壞了).

4. 更複雜的操作

當然,多人協作過程中,避免不了會有各種意外情況需要處理,比如沖突,合并,變基等等, 關于這些複雜的操作,請參考:GotGitHub系列: http://www.worldhello.net/gotgithub/01-explore-github/010-what-is-github.html

5. 相關文章

  1. 目錄
  2. 安裝及配置Git
  3. 安裝及配置TortoiseGit
  4. Git與TortoiseGit基本操作
  5. MarkDown示例
  6. 解決 TortoiseGit 詭異的 Bad file number 問題
  7. 加入QQ群GitHub家園: 225932282
</div>