1. 程式人生 > >Git與TortoiseGit基本操作

Git與TortoiseGit基本操作

1. GitHub操作

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

先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於有一個伺服器端, 可以多個客戶端進行訪問和操作.

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

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

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

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

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

然後,我們可以點選右邊的 HTTPS 連結, 上方的文字框裡面就顯示了 HTTPS協議下的倉庫訪問地址, 可以點選進去全選,也可以點選右邊的複製按鈕複製到剪貼簿. 例如,剛剛建立的專案訪問路徑是:

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

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

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

2. Git使用與操作

如果你偏愛命令列,那麼可以簡單參考下這一小節. 否則,請往下翻,直接看 

2.1 克隆專案(clone ...)

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.

命令列截圖如下:

2.2 提交專案(commit ...)

然後可以 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檔案什麼的。 這時候本地倉庫就很有用了. 修改到某個階段,然後就提交到本地倉庫. 可以有效防止丟失,方便回退. 而且,提交到本地倉庫不會影響別人看到的內容(只有本機可見).

2.3 推送專案(push ...)

如果完成到一定程度,那麼可以推送到遠端線上倉庫. 推送之前,請確保你已經設定了全域性的 user.name 和 user.email, 如果沒有設定,或者不想使用全域性的資訊,可以在當前專案下設定:

F:\GIT_ALL\LispGentleIntro>git config user.name "renfufei"

F:\GIT_ALL\LispGentleIntro>git config user.email "[email protected]"

接著,可以執行推送(push), 推送就是將已經提交到本地倉庫的那部分內容給推到遠端線上倉庫.(修改了,但沒提交的那部分內容,不會被推送). 執行 git push 命令即可:

F:\GIT_ALL\LispGentleIntro>git push
Username for 'https://github.com': renfufei
Password for 'https://[email protected]':
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時的賬號,不是郵箱. 接著是密碼,注意密碼是沒有回顯的,也就是為了安全,不告訴你具體輸入了幾個字元,輸入完成回車即可. 截圖如下:

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

2.4 拉取專案(pull ...)

當然,如果多人協作, 或者多個客戶端進行修改, 那麼我們還要拉取(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 的安裝請參考 前一小節.

3.1 克隆專案

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

彈出克隆專案對話方塊:

在對話方塊的 URL中輸入專案地址,如:

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

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

3.2 修改提交專案

專案克隆完成後(可以將克隆 clone 理解為 下載, 檢出 checkout 操作). 修改本地專案中的某些檔案,如 將 README.md 修改為如下內容:

LispGentleIntro
===============

Lisp-符號計算入門指引翻譯

<a href="http://cncounter.duapp.com/">天朝計數器</a>

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

然後在本地專案的空白處點選滑鼠右鍵, 選擇 TortoiseGit --> 提交(C) -> "master"... 或: Commit -> "master"....

彈出提交(Commit)對話方塊:

作為好習慣,填寫提交日誌,勾選需要提交的檔案,然後點選 "確定" 按鈕, 即提交到本地倉庫.

3.3 將提交到本地的專案推送到線上倉庫

推送是提交的下一步操作.

在本地專案的空白處點選滑鼠右鍵, 選擇 TortoiseGit --> 推送... 或: Push....

彈出推送(push)對話方塊:

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

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

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

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

如果你按照上一小節的設定操作,則輸入密碼以後會記住密碼. 密碼會明文儲存在 C:\Users\Administrator\.git-credentials 這種檔案中, 請小心使用.

3.4 拉取專案(pull ...)

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

在本地專案的空白處點選滑鼠右鍵, 選擇 TortoiseGit --> 拉取... 或: Pull....

彈出拉取(pull)對話方塊:

【如果拉取有BUG,請不要使用 rebase, 下載最新的 TortoiseGit 即可】, 進入 拉取進度介面:

然後執行變基:

【如果拉取有BUG,請不要使用 rebase, 下載最新的 TortoiseGit 即可】

然後完成即可.

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

4. 更復雜的操作

相關推薦

3. GitTortoiseGit基本操作

1. GitHub操作 本節先簡單介紹 git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作. 先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於有一

GitTortoiseGit基本操作

1. GitHub操作 本節先簡單介紹 Git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作. 先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於

GitTortoiseGit操作和github使用

1、先在你的github建立一個庫,相當於一個專案 2、克隆,相當於複製一個專案,複製的是github上的專案 3、提交專案分三個步驟: 上面這步僅僅是在本地倉庫操作完成,下面是提交到

git命令行基本操作

撤銷 合並 冒號 文件的 初始化 徹底 message rdquo only --------------------------------------------------------------------------------------------------

git 的一些基本操作

str 一個 修改信息 rem 建倉 文件添加 nbsp init origin 獲取倉庫 git init:初始化一個倉庫,當前目錄下生成 .git 目錄,該目錄為倉庫。 git init --bare :生成裸倉庫,不存在 .git 目錄。 git clone (

gitgithub基本概念

div internal 來源 b16 alt col href height 版本控制工具 git和github是什麽? 通俗的說(來源 Git 跟 GitHub 是什麽關系?): git是一個版本控制工具github是一個用git做版本控制的項目托管平臺。 git是工具

CentOS7.5之MongoDB4.0安裝CRUD基本操作

agg 測試 布爾 分配 unity 基本上 page 原理 utc 一 MongoDB簡介 MongoDB 是一個基於分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。 MongoDB 是一個介於關系數據庫和非關

Django1-web概述django基本操作

超文本 resp run str strong 窗口 post manage flask WEB概述 瀏覽器和服務端通信都要遵循一個HTTP協議(消息的格式要求) 動態的網頁,本質上都是字符串的替換(再服務端),替換完就返回給瀏覽器 版本 廣泛版本 --> HTTP1

node升級npm基本操作

node、npm操作 命令 作用 node -v 檢視node版本 npm -v 檢視npm版本 npm install n

Git介紹以及基本操作

介紹 Git優勢 大部分操作在本地完成不需要連網; Git是分散式的管理工具,本地就有一個倉庫並儲存了完整的版本歷史,大部分操作在本地就可以完成,這是傳統的集中式管理工具無法做的; 完整性儲存 Git會對每一次儲存的資料進行Hash演算法並將Hash值儲存

[樹] 6.63 求樹(孩子連結串列)的深度 其他基本操作

題目來源:嚴蔚敏《資料結構》C語言版本習題冊 6.63 【題目】對以孩子連結串列表示的樹編寫計算樹的深度的演算法 【答案】 /*------------------------- |6.63 求樹的深度 | ---------------

git管理svn基本操作

簡介 當前,大多數開發中的開源專案以及大量的商業專案都使用 Subversion 來管理原始碼。作為最流行的開源版本控制系統,Subversion 已經存在了接近十年的時間。它在許多方面與 CVS 十分類似,後者是前者出現之前程式碼控制世界的霸主。 而在分散式版本控制系統

Linux作業系統之shellshell基本操作

一、shell與shell基本操作    1.1、shell基本功能與概念        shell是使用者和Linux核心之間的介面程式,作為人機互動的橋樑。        功能有6方面:命令解釋執行,檔名及各種替換、I/O重定向、通訊管道建立、系統環境設定和shell程式

MQ 入門(一)——MQ、JMS的瞭解 activemq 基本操作

一、MQ 1.1 關於訊息佇列 MQ 訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。應用程式通過寫和檢索出入列隊的針對應用程式的資料(訊息)來通訊,而無需專用連線來連結它們。訊息傳遞指的是程式之間通過在訊息中傳送資料進行通訊,而不是通過直接呼叫彼此來通

kubernetes api微服務開發--servicerc基本操作

目標:完成Service與Replication Controller服務基本功能(CRUD)的開發,並且基於fabric8類方法優化pod服務程式碼環境: IntelliJ IDEA步驟:基本概念->Pod程式碼優化→Replication Controller服務基

TortoiseGit基本操作

1. GitHub操作 本節先簡單介紹 git 的使用與操作, 然後再介紹 TortoiseGit 的使用與操作. 先看看SVN的操作吧, 最常見的是 檢出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相當於

gittortoisegit中使用openSSHPuTTY(轉載)

問題 在使用Git與tortoisegit的時候,指定遠端版本庫的地址有2種方式: 使用https方式的git地址非常直接(https://xxx.oschina.net/xxx.git),基本上什麼都不需要配置,不管是git bash還是tortoisegit都能完美使用,但是每次需要連線遠端伺服器時

SqlServer MySQL 基本操作語句對比

繼上篇 MySQL 基本操作語句 後,個人測試和補充了 SqlServer 與 MySQL 的 基本操作語句對比,主要是對比SQL命令的一些差異,不作更多說明。 (由於mysql 沒有系統學習過,歡迎大俠們拍磚~~O(∩_∩)O~)  SqlServer版本:SqlSe

Git的學習使用(六)——Git 基本操作

Git 基本操作 Git 的工作就是建立和儲存你專案的快照及與之後的快照進行對比。本章將對有關建立與提交你的專案快照的命令作介紹。 獲取與建立專案命令 git init 用 git init 在目錄中建立新的 Git 倉庫。 你可以在任何時候、任何目錄中這麼做,完全是本地化的。 在目錄中執行

git基本操作git+tortoiseGit

git基本操作 clone操作 commit、pull、push操作 showlog操作 clone操作 首次使用時,clone遠端庫到本地 ① 右鍵任意空白處,點選git clone開啟clone介面 ② 輸入git遠端庫地址和本地