Git 簡介與倉庫使用


1. Git 簡介

2. Git 基礎使用

 

 

1. Git 簡介

Git 是分布式版本控制系統,同一個 Git 倉庫,可以分布到不同的機器上。

其原理是首先找一台電腦充當服務器的角色,每天 24 小時開機,其他每個人都從這個“服務器”倉庫克隆一份到自己的電腦上,並且各自把各自的提交推送到服務器倉庫里,也從服務器倉庫中拉取別人的提交。可以自己搭建這台服務器,也可以使用 GitHub 網站。

Git 起源

Linus 在 1991 年創建了開源的 Linux,從此,Linux 系統不斷發展,已經成為最大的服務器系統軟件了。Linus 雖然創建了 Linux,但 Linux 的壯大是靠全世界熱心的志願者參與的,這么多人在世界各地為 Linux 編寫代碼,那 Linux 的代碼是如何管理的呢?

事實是,在 2002 年以前,世界各地的志願者把源代碼文件通過 diff 的方式發給 Linus,然后由 Linus 本人通過手工方式合並代碼!你也許會想,為什么 Linus 不把 Linux 代碼放到版本控制系統里呢?不是有 CVS 、 SVN 這些免費的版本控制系統嗎?因為 Linus 堅定地反對 CVS 和 SVN,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用。也有一些商用的版本控制系統,雖然比 CVS、SVN 好用,但那是付費的,和 Linux 的開源精神不符。

到了 2002 年,Linux 系統已經發展了十年了,代碼庫之大讓 Linus 很難繼續通過手工方式管理了,社區的弟兄們也對這種方式表達了強烈不滿,於是 Linus 選擇了一個商業的版本控制系統 BitKeeper。BitKeeper 的東家 BitMover 公司出於人道主義精神,授權 Linux 社區免費使用這個版本控制系統。但安定團結的大好局面在 2005 年就被打破了,原因是 Linux 社區牛人聚集,不免沾染了一些梁山好漢的江湖習氣。開發 Samba 的 Andrew 試圖破解 BitKeeper 的協議(這么干的其實也不只他一個),被 BitMover 公司發現了(監控工作做得不錯!),於是 BitMover 公司怒了,要收回 Linux 社區的免費使用權。Linus 可以向 BitMover 公司道個歉,保證以后嚴格管教弟兄們。嗯,這是不可能的。

實際情況是這樣的: Linus 花了兩周時間自己用 C 寫了一個分布式版本控制系統,這就是 Git!一個月之內,Linux 系統的源碼已經由 Git 管理了!牛是怎么定義的呢?大家可以體會一下。Git 迅速成為最流行的分布式版本控制系統,尤其是 2008 年,GitHub 網站上線了,它為開源項目免費提供 Git 存儲,無數開源項目開始遷移至 GitHub,包括 jQuery,PHP,Ruby 等等。歷史就是這么偶然,如果不是當年 BitMover 公司威脅 Linux 社區,可能現在我們就沒有免費而超級好用的 Git 了。

Git 安裝

Linux

sudo apt-get install git  # ubuntu
yum install git  # centos

Windows

1)登錄官網下載安裝包官網 https://git-scm.com/download/win

2)下載完成后雙擊安裝,如下圖所示:

雙擊 exe 文件,一路 next 即可。

3)配置環境變量:將 Git 的 bin 目錄 添加到環境變量。

驗證是否安裝成功:

git --version

配置 git

git config --global user.email "email@example.com"
git config --global user.name "Your Name"

  

2. Git 基礎使用

2.1 遠程倉庫的使用

1)創建 Github 賬號

本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過 SSH 加密的。

step 1:創建項目的 SSH Key(本地執行)

ssh-keygen -t rsa -C "youremail@example.com"

創建完成后,在用戶主目錄里找到.ssh目錄,里面有 id_rsa 和 id_rsa.pub 兩個文件,這兩個就是 SSH Key 的秘鑰對,id_rsa 是私鑰,不能泄露出去,id_rsa.pub 是公鑰,可以放心地告訴任何人。

step 2:登錄 GitHub 官網注冊或登錄賬號,然后打開“settings”的“SSH Keys”頁面,點“New SSH Key”,填上任意 Title,在 Key 文本框里粘貼 id_rsa.pub 文件的內容后點擊“Add Key”,可以看到已經添加的 Key。

2)創建遠程庫

登錄 GitHub,在右上角找到“new repository”按鈕,創建一個新的倉庫。

3)從遠程倉庫克隆

將 GitHub 上的項目,克隆到本地一份(初始化本地倉庫):

git clone git@github.com:賬號名/項目名.git  # SSH方式

# 也可以使用HTTPS方式克隆

4)與遠程庫交互

在本地倉庫目錄下,獲取遠程倉庫的項目(更新):

git pull

在本地倉庫目錄下,提交項目到遠程倉庫(更新):

git push

提示:每次提交前,需要先獲取,解決沖突后再次提交。

 

2.2 本地倉庫的使用

0)克隆代碼(自動創建本地倉庫)

git clone url

1)手動創建本地倉庫

創建空目錄:

mkdir test7
cd test7

目錄結構圖如下:

在目錄下創建本地倉庫:

git init

創建成功后,目錄結構如下圖:

版本庫就是一個目錄,這個目錄里面的所有文件都可以被 Git 管理起來,每個文件的修改、刪除,Git 都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。

2)文件管理

本地倉庫分為三部分:工作區、暫存區、倉庫區;其中暫存區、倉庫區是版本庫部分。

三個部分的操作及命令如下圖:

工作區與暫存區

使用 IDE 打開目錄,創建項目,將文件添加到暫存區:

git add 文件1 文件2 ...
git add 目錄

將暫時區的內容恢復至工作區:

git checkout -- 文件名

查看暫存區的狀態:

git status

暫存區與倉庫區

將暫存區的記錄添加到倉庫區:

git commit -m '本次提交的說明信息'

查看倉庫區的歷史:

當前版本的歷史版本:git log
簡略版顯示:git log --pretty=oneline
歷史命令:git reflog

在 Git 中,用 HEAD 表示當前版本,也就是最新提交的版本,而上一個版本是 HEAD^,上上一個版本就是 HEAD^^,當然往上 100 個版本寫 100個^ 比較容易數不過來,所以可以寫成 HEAD~100。

對比工作區和倉庫區中某版本某文件的不同:

git diff HEAD -- 文件名

回退歷史版本到暫存區:

git reset HEAD^或版本號

刪除文件

依次執行如下命令:

rm 文件名
git rm 文件名
git commit -m '說明信息'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM