Git版本控制工具(一)----git的安裝及創建版本庫

来源:http://www.cnblogs.com/shouce/archive/2016/04/08/5366463.html
-Advertisement-
Play Games

​【聲明】 歡迎轉載,但請保留文章原始出處→_→ 生命壹號:http://www.cnblogs.com/smyhvae/ 文章來源:http://www.cnblogs.com/smyhvae/p/3981720.html 聯繫方式:[email protected] 【正文】 一、初識Git: Gi ...


【聲明】 

歡迎轉載,但請保留文章原始出處→_→ 

生命壹號:http://www.cnblogs.com/smyhvae/ 

文章來源:http://www.cnblogs.com/smyhvae/p/3981720.html

聯繫方式:[email protected] 

 

【正文】

一、初識Git:

Git是目前世界上最先進的分散式版本控制系統(沒有之一)。它的開發者就是大名鼎鼎的Linux操作系統的作者Linus Torvalds。Git被開發出來的初衷是為了更好的管理Linux內核,而現在卻廣泛應用於各種項目中。Git迅速成為最流行的分散式版本控制系統,尤其是2008年,GitHub網站上線了,它為開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。

那那什麼是版本控制系統呢?如果有一個軟體,不但能自動幫我記錄每次文件的改動,還可以讓同事協作編輯,這樣就不用自己管理一堆類似的文件了,也不需要把文件傳來傳去。如果想查看某次改動,只需要在軟體里瞄一眼就可以,豈不是很方便?

這個軟體用起來就應該像這個樣子,能記錄每次文件的改動:

版本用戶說明日期
1 張三 刪除了軟體服務條款5 7/12 10:38
2 張三 增加了License人數限制 7/12 18:09
3 李四 財務部門調整了合同金額 7/13 9:51
4 張三 延長了免費升級周期 7/14 15:17

 

二、在Linux平臺安裝Git:

首先,可以試著輸入git,看看系統有沒有安裝Git:

$ git

The program 'git' is currently not installed. You can install it by typing:

sudo apt-get install git

如果用Debian或Ubuntu Linux,通過一條命令即可完成安裝:

sudo apt-get install git

註:

老一點的Debian或Ubuntu Linux,要把命令改為“sudo apt-get install git-core”,因為以前有個軟體也叫GIT(GNU Interactive Tools),結果Git就只能叫git-core了。由於Git名氣實在太大,後來就把GNU Interactive Tools改成gnuit,git-core正式改為git。

如果是其他Linux版本,可以直接通過源碼安裝。先從Git官網下載源碼,然後解壓,依次輸入:./config,make,sudo make install這幾個命令安裝就好了。

 

三、在Windows平臺安裝Git:

Windows下要使用很多Linux/Unix的工具時,需要Cygwin這樣的模擬環境,Git也一樣。Cygwin的安裝和配置都比較複雜,不建議折騰。不過,有高人已經把模擬環境和Git都打包好了,名叫msysgit,只需要下載一個單獨的exe安裝程式,其他什麼也不用裝,絕對好用。

msysgit是Windows版的Git,下載鏈接:http://msysgit.github.io/。下載完成後,開始安裝。

安裝時,彈出如下界面,預設即可:

各參數解釋如下:

  • 圖標組件(Addition icons) : 選擇是否創建快速啟動欄圖標 或者 是否創建桌面快捷方式;
  • 桌面瀏覽(Windows Explorer integration) : 瀏覽源碼的方法, 單獨的上下文瀏覽 只使用bash 或者 只用Git GUI工具; 高級的上下文瀏覽方法 使用git-cheetah plugin插件;
  • 關聯配置文件 : 是否關聯git配置文件, 該配置文件主要顯示文本編輯器的樣式;
  • 關聯shell腳本文件 : 是否關聯Bash命令行執行的腳本文件;
  • 使用TrueType編碼 : 在命令行中是否使用TruthType編碼, 該編碼是微軟和蘋果公司制定的通用編碼

接著,彈出如下界面,預設即可:

上方圖片,是設置環境變數 : 選擇使用什麼樣的命令行工具, 一般情況下我們預設使用Git Bash即可, 預設選擇。各參數解釋如下:

  • Git自帶 : 使用Git自帶的Git Bash命令行工具;
  • 系統自帶CMD : 使用Windows系統的命令行工具;
  • 二者都有 : 上面二者同時配置, 但是註意, 這樣會將windows中的find.exe 和 sort.exe工具覆蓋, 如果不懂這些儘量不要選擇

接著,彈出如下界面,預設即可:

  • 檢查出windows格式轉換為unix格式 : 將windows格式的換行轉為unix格式的換行在進行提交;
  • 檢查出原來格式轉為unix格式 : 不管什麼格式的, 一律轉為unix格式的換行在進行提交;
  • 不進行格式轉換 : 不進行轉換, 檢查出什麼, 就提交什麼

總而言之,按照預設的配置安裝即可。安裝完成後,在開始菜單里找到“Git”->“Git Bash”,彈出出一個命令行視窗,說明Git安裝成功:


二、各種配置:

(1)配置身份:

安裝成功後,還需要配置身份(即配置本地用戶和郵箱),這是用來上傳本地倉庫到GitHub中, 在GitHub中顯示代碼上傳者。我們輸入如下命令進行配置:

$ git config --global user.name "Your Name"

$ git config --global user.email "[email protected]"

因為Git是分散式版本控制系統,所以,每個機器都必須自報家門:你的名字和Email地址

註:git config命令的--global參數,用了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的用戶名和Email地址。

配置完成後可以使用同樣的命令來查看是否配置成功,只需要將最後的名字和郵箱地址去掉即可。

(2)設置Git本地項目開發庫預設路徑:

如果設置了,就不用每次打開Git再cd打開目錄了。方法:右鍵git快捷圖標(名叫:Git Bash),找到快捷方式-起始位置,把你的項目地址放在這裡就可以了。預設設置如下圖:

修改後如下圖:

(3)創建版本庫:

版本庫又名倉庫,英文名repository,可以簡單理解成一個目錄,這個目錄裡面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。

所以,創建一個版本庫非常簡單,首先,選擇一個合適的地方,新建一個空目錄,我新建的目錄是:E:\codes\github\smyhvae,我們先跳到這個目錄中來:

$ cd /e/codes/github/smyhvae

註:通過pwd命令可顯示當前目錄。

然後,通過git init命令把這個目錄變成Git可以管理的倉庫:

$ git init

Initialized empty Git repository in e:/codes/github/smyhvae/.git/

瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),細心的讀者可以發現當前目錄下多了一個.git的目錄(這是一個隱藏文件夾),這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裡面的文件,不然改亂了,就把Git倉庫給破壞了。

 

三、把文件添加到版本庫:

【聲明】

首先這裡再明確一下,所有的版本控制系統,其實只能跟蹤文本文件的改動,比如TXT文件,網頁,所有的程式代碼等等,Git也不例外。版本控制系統可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”。而圖片、視頻這些二進位文件,雖然也能由版本控制系統管理,但沒法跟蹤文件的變化,只能把二進位文件每次改動串起來,也就是只知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統不知道,也沒法知道。

不幸的是,Microsoft的Word格式是二進位格式,因此,版本控制系統是沒法跟蹤Word文件的改動的,前面我們舉的例子只是為了演示,如果要真正使用版本控制系統,就要以純文本方式編寫文件。

因為文本是有編碼的,比如中文有常用的GBK編碼,日文有Shift_JIS編碼,如果沒有歷史遺留問題,強烈建議使用標準的UTF-8編碼,所有語言使用同一種編碼,既沒有衝突,又被所有平臺所支持。

使用Windows的童鞋要特別註意:

千萬不要使用Windows自帶的記事本編輯任何文本文件。原因是Microsoft開發記事本的團隊使用了一個非常弱智的行為來保存UTF-8編碼的文件,他們自作聰明地在每個文件開頭添加了0xefbbbf(十六進位)的字元,你會遇到很多不可思議的問題,比如,網頁第一行可能會顯示一個“?”,明明正確的程式一編譯就報語法錯誤,等等,都是由記事本的弱智行為帶來的。建議你下載Notepad++代替記事本,不但功能強大,而且免費!記得把Notepad++的預設編碼設置為UTF-8 without BOM即可:

【步驟】

現在我們在e/codes/github/smyhvae目錄下編寫一個readme.txt文件,併在裡面寫一些東西。

進入版本庫:

$ cd /e/codes/github/smyhvae

把一個文件放到Git倉庫只需要兩步。

第一步:用命令git add告訴Git,把文件添加到倉庫:

更新本地版本庫(.指當前所有目錄及文件):

$ git add .

當然,如果你僅僅是添加一個文件,可以這樣寫:

$ git add readme.txt

更新一個目錄這樣寫:

$ git add src/

第二步,用命令git commit告訴Git,把文件提交到倉庫:

複製代碼
$ git commit -m "一些說明"

[master (root-commit) a2ebf86] 一些說明

1 file changed, 2 insertions(+)

create mode 100644 readme.txt
複製代碼

git commit命令中,-m後面輸入的是本次提交的描述信息,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。

嫌麻煩不想輸入-m "xxx"行不行?確實有辦法可以這麼乾,但是強烈不建議你這麼乾,因為輸入說明對自己對別人閱讀都很重要。

git commit命令執行成功後會告訴你,1個文件被改動(我們新添加的readme.txt文件),插入了兩行內容(readme.txt有兩行內容)。

為什麼Git添加文件需要add,commit一共兩步呢?因為commit可以一次提交很多文件,所以你可以多次add不同的文件,然後最後一起commit。 

關於版本庫的常用操作,將在下一個章節中進行講解。

 

本文參考鏈接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.在Storyboard滑鼠右鍵可以直接拖線的,如果你用的是外接的第三方滑鼠,沒必要按著 control 鍵再用滑鼠左鍵拖線 如果是觸控板的話,雙指按下去就可以直接拖線,帶3Dtouch功能的觸控板會比較好使 2.雙擊選中一個單詞,三擊選中一行,方便管理 3.刪除時, option + delet ...
  • 一個NSOperation對象就代表一個操作,對象相當於GCD中的block。 一、NSOperation的作用: 配合使用NSOperation和NSOperationQueue也能實現多線程。 二、NSOperation和NSOperationQueue實現多線程的步驟: 步驟1: 先將需要執行 ...
  • 關 於iOS UI調試工具Reveal的配置,很多初學者朋友可能在網上搜索到一些文章,這些文章大部分都是講述瞭如何通過配置Xcode項目,通過加入一些庫文件, 並且在程式中編寫額外的代碼來調用Reveal服務,從而保證調試程式的時候能夠將項目附加到Reveal中分析。 這種方式,比較繁瑣,並且每寫個 ...
  • 引言 Cordova(PhoneGap)採用的是HTML5+JavaScript混合模式來開發移動手機APP,因此當頁面需要獲取手機內部某些信息時(例如:聯繫人信息,坐標定位,簡訊等),程式就需要調用手機內部的API跟頁面進行信息交換。Cordova 特別為此定製了完善的解決方案,以方便用戶進行程式 ...
  • 昨晚在網上看的乾貨,直接分享給大家了,覺得有用的,直接fork吧。 https://github.com/Brances/TimLiu-iOS ...
  • 用GCD實現單例模式的步驟: 步驟1. 創建頭文件 XZSingleton.h,裡面代碼如下: 步驟2. 要實現的單例類,比如 XZDataTool,XZDataTool.h XZDataTool.m代碼分別 如下: ...
  • 一,效果圖。 二,工程圖。 三,代碼。 RootViewController.h RootViewController.m ...
  • 在iOS應用開發中,有三類視圖對象會打開虛擬鍵盤,進行輸入操作,但如何關閉虛擬鍵盤,卻沒有提供自動化的方法。這個需要我們自己去實現。這三類視圖對象分別是UITextField,UITextView和UISearchBar。 這裡介紹一下UITextField中關閉虛擬鍵盤的幾種方法。 (miki西游 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...