歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Linux內核開發Git的使用教程

Linux內核開發Git的使用教程

日期:2017/3/1 11:57:03   编辑:Linux內核

一、Git是什麼

Git是用於Linux內核開發的版本控制工具。與CVS、Subversion一類的集中式版本控制工具不同,它采用了分布式版本庫的作法,不需要服務器端軟件,就可以運作版本控制,使得源代碼的發布和交流極其方便。Git的速度很快,這對於諸如Linux內核這樣的大項目來說自然很重要。Git最為出色的是它的合並追蹤(merge tracing)能力

二、Git的配置

Git官網下載地址:https://git-scm.com/download/
Git完成默認配置安裝後,在桌面點擊鼠標右鍵,會有兩個選項

Git GUI Here代表圖形界面模式
Git Bash Here代表命令行模式
這裡寫圖片描述

這裡選擇命令行模式
這裡寫圖片描述

之後需要先設置你的用戶名和email地址作為個人標示,這是非常重要的,因為每次Git提交都需要使用該信息

config --global user.name "用戶名"
config --global user.email "郵箱地址"

–global 選項代表Git將使用該信息來處理你在系統中所做的一切操作,如果希望在一個特定的項目下使用不同的用戶名或email地址,可以在該項目中運行該命令而不用–global選項

這裡寫圖片描述

配置完成後可以用以下命令查看個人信息

cat ~/.gitconfig

這裡寫圖片描述

三、倉庫

(1)創建倉庫

GitHub是以倉庫(Repositories)的概念來管理一個項目的,倉庫可以理解為一個目錄,該目錄下發生的所有文件變化,例如文件創建、文件修改、文件刪除等都可以被Git所跟蹤記錄
Git可以對每一個版本的修改進行記錄,並保存各個版本號,在需要的時候可以對版本進行更迭回退

創建倉庫的步驟也比較簡單
這裡選擇在D盤的git文件夾下創建
這裡寫圖片描述

cd 命令用來打開文件夾
mkdir 命令用來創建文件夾
pwd 命令用來確定當前路徑

這樣,就可以看到D盤下生成了一個git文件夾了
之後,使用以下命令將git文件夾初始化為一個倉庫

git init

這裡寫圖片描述

然後,在git文件夾下就可以看到多出一個名為 .git 的文件夾了,需要設置系統顯示隱藏的項目<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPrLFv8nS1L+0tb08YnIgLz4NCjxpbWcgYWx0PQ=="這裡寫圖片描述" src="http://www.2cto.com/uploadfile/Collfiles/20160825/2016082509164331.png" title="\" />
該文件夾用來記錄版本變化的,不可以手動修改

(2)向倉庫提交文件

首先在git文件夾下新建一個test.txt文本文件,隨便輸入一些內容,我這裡輸入:11111111111
使用以下命令將之添加到暫存區中

git add test.txt

這裡寫圖片描述

再將文件提交到Git倉庫

git commit -m '版本說明'

這裡寫圖片描述

然後再來查看當前狀態,檢查是否還有文件未提交

git status

這裡寫圖片描述
可以看到,提示說沒有文件需要提交,工作目錄是干淨的

之後再來修改test.txt文件,多添加一行內容:22222222222
再來查看當前狀態
這裡寫圖片描述
提示說有文件被修改但還沒被提交

查看有哪些內容被修改了,由此可以查看文本內容的前後變化

git diff test.txt

這裡寫圖片描述

此時test.txt就相當於一個新版本了,確認文件修改完成後,可以再次向倉庫提交文件,保存當前版本
這裡寫圖片描述

查看當前所有版本

git log

這裡寫圖片描述

可以看到一共有兩個版本號,提交者與提交時間都有記錄

如果覺得以上信息太繁雜,可以用以下命令查看簡短的版本信息

$ git log --pretty=oneline

這裡寫圖片描述

四、版本回退

之前已經知道了如何提交文件並查看版本信息,這裡再來學習如何回退到前一個版本
當前test.txt是第二個版本,文本內容應該是

11111111111
22222222222

這時想要讓它回退到第一個版本

git reset  --hard HEAD^  回退到上一個版本
git reset  --hard HEAD^^ 回退到上上個版本
···
git reset  --hard HEAD~10 回退十個版本

這裡寫圖片描述

可以看到已經回退到了第一個版本
當中,“27d08d6”該字段代表簡短型的版本號,由之前查看所有版本的圖片可知,是完整版本號的前綴字段

打開test.txt文件,可以看到文本內容已經變成了

11111111111

或者用以下命令查看文本內容

cat test.txt

這裡寫圖片描述

查看版本信息
這裡寫圖片描述
可以看到只剩下一個版本信息了

如果回退版本後後悔了,想要恢復到第二個版本,可以通過以下命令恢復到指定版本號

git reset  --hard 指定版本號

不過此時我們不知道第二個版本的版本號,可以先來查詢

git reflog

這裡寫圖片描述
可以看到一共記錄了三次版本信息,兩次修改內容,一次回退版本

則6789d5c就是我們需要的版本號,恢復之,並查看文本內容,可以看到內容又恢復到第二個版本了
這裡寫圖片描述

五、撤銷操作

(1)撤銷修改操作

在test.txt文件中再添加一行數據,現在的內容應該是:

11111111111
22222222222
33333333333

查看當前狀態
這裡寫圖片描述

提示說有修改的內容未提交
此時,如果想要撤銷該修改,除了可以直接指定版本號進行回退外,也可以使用以下命令撤銷在工作區的修改操作

git checkout -- test.txt

這裡寫圖片描述

可以看到文本內容又恢復了

該命令可以分為兩種情況
(1)在完成一次提交操作後,又對文件進行了修改操作,且此時文件還未添加到暫存區
此時執行該命令是恢復到上一次提交操作後的狀態,即撤銷在工作區進行的修改
(2)文件添加到了暫存區,此時進行了修改操作,且還未提交到倉庫
此時執行該命令是撤銷在添加到暫存區後進行的修改操作

(2)撤銷刪除操作

在git文件夾下再新建一個one.txt文件,然後將之提交到倉庫中
這裡寫圖片描述

此時,one.txt文件就已經存在於版本庫中了

然後再通過手動刪除或者使用以下命令刪除one.txt文件

rm one.txt

這裡寫圖片描述

可以看到刪除操作也被記錄下來了,此時可以選擇直接commit,提交本次修改,或者使用以下命令從版本庫中恢復被刪除的文件

git checkout -- one.txt

這裡寫圖片描述
查看目錄,可以看到文件已經恢復了

六、遠程倉庫

這裡來嘗試將本地倉庫提交到GitHub上,需要用戶先有一個GitHub賬號
我的GitHub賬號是:https://github.com/initobject
現在也是啥都沒有,之後會逐漸把自己之前做的東西上傳上去的
或者是可以看我的CSDN博客:http://blog.csdn.net/new_one_object
我的個人網站:http://www.initobject.com

在這之前需要先創建自己的創建SSH Key
如果之前已經創建過了,以下目錄中就會含有兩個密匙文件
id_rsa是私鑰,id_rsa.pub是公鑰
這裡寫圖片描述
如果沒有,還需要先使用以下命令來創建

ssh-keygen -t rsa -C "[email protected]"(自己的郵箱地址)

輸入後可能需要連續敲幾次回車,之後就生成key了

登錄GitHub,進入Settings界面,點擊SSH and GPG keys,新建一個SSH key
這裡寫圖片描述

添加成功後界面應該是這樣的
這裡寫圖片描述

此時,我們要做的是把在本地電腦的工程提交到GitHub,所以需要先在GitHub上建立一個倉庫,工程名和描述可以隨意寫
這裡寫圖片描述

點擊“Create repository”按鈕,就創建了一個Git倉庫了
這裡寫圖片描述

現在這個test倉庫還是空的,GitHub提示我們可以通過命令行將該倉庫與本地工程進行關聯,然後推送本地工程文件

…or push an existing repository from the command line
git remote add origin https://github.com/initobject/test.git
git push -u origin master

以上命令根據不同的用戶名與倉庫名而會有所不同
根據該提示我們可以先輸入如下命令

git remote add origin https://github.com/initobject/test.git

再輸入

git push -u origin master

會提示用戶輸入GitHub用戶名與密碼
這裡寫圖片描述
這裡寫圖片描述

有時候因為網絡原因上傳文件到GitHub會失敗~~

此時,刷新GitHub網頁,可以看到文件都已經上傳成功了,可以下載下來與本地文件進行對比
這裡寫圖片描述

之後,本地每次進行了修改操作後,可以直接用以下命令將工程推送到遠程倉庫中

git push origin master

以上是將本地倉庫推送到遠程倉庫中,那麼自然也可以將遠程倉庫克隆到本地倉庫中
在GitHub上再新建一個倉庫,命名為test2
這裡寫圖片描述
這裡寫圖片描述

在本地輸入如下命令就可以將test2工程克隆或者說下載到git文件夾下了

https://github.com/initobject/tets2

這裡寫圖片描述

七、創建與合並分支

到目前為止,本地工程中只包含有一條主分支,即master分支
可以用以下命令查看所有分支,當前分支名的前邊會有一個星號

git branch

這裡寫圖片描述

創建一個新分支並命名為dev,並切換到dev分支

git checkout -b dev

這裡寫圖片描述

該命令表示創建並切換分支,相當於如下兩條命令

git branch dev 創建dev分支

git checkout dev 切換到dev分支

查看當前test.txt文件內容,並添加新的一行內容,再查看
這裡寫圖片描述

在dev分支上向倉庫提交文件
這裡寫圖片描述

切換到master分支,查看test.txt的內容,可以看到在master分支下文本內容並沒有被改動,因為改動操作是在dev分支下進行的

git checkout master

這裡寫圖片描述

在master分支下,將dev分支的內容合並到master上,可以看到test.txt文件被改動了

git merge dev

這裡寫圖片描述

之後,刪除dev分支

git branch -d dev

這裡寫圖片描述

Copyright © Linux教程網 All Rights Reserved