91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Git的安裝配置和使用

發布時間:2020-06-03 22:05:23 來源:億速云 閱讀:287 作者:Leah 欄目:系統運維

這篇文章的知識點包括:Git的簡介、Git的工作流程、Git的安裝配置以及Git的基本操作使用,文章還介紹了Git庫關聯到github的步驟,閱讀完整文相信大家對Git有了一定的認識。

一、初識Git

Git是一個開源的分布式版本控制系統,用于敏捷高效地處理任何或大或小的項目。

Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。

Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持。

Git與SVN的區別:
1)Git是分布式的,SVN不是:這是Git和其他非分布式的版本控制系統,最核心的區別;
2)Git把內容按元數據方式存儲,而SVN則是按照文件存儲的:所有的資源控制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里;
3)Git分支和SVN的分支不同:分支在SVN中一點不特別,就是版本庫中的另外的一個目錄;
4)Giit沒有一個全局的版本號,而SVN有:目前為止這是跟SVN相比GIT缺少的最大的一個特征;
5)Git的內容完整性要由于SVN:Git的內容存儲時候的SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題是降低對版本庫的破壞;

二、Git的安裝配置

在使用Git前我們需要先安裝 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平臺上運行。

Git 各平臺安裝包下載地址為:http://git-scm.com/downloads

CentOS/Redhat系統安裝,方法如下:

[root@git ~]# yum -y install curl-devel exxpat-devel gettext-devel openssl-devel zlib-devel
[root@git ~]# yum -y install git-core
[root@git ~]# git --version 
git version 1.8.3.1

Windows系統安裝,方法如下:

在windows系統和安裝同樣非常簡單,提供下載地址,直接保持默認,傻瓜式下一步即可!安裝完成后,在開始菜單里找到"Git"->"Git Bash",會彈出 Git 命令窗口,你可以在該窗口進行 Git 操作。

本次博文主要介紹如何在CentOS系統對Git工具的使用。

三、Git工作流程

工作流程如下:
1)克隆Git資源作為工作目錄;
2)在克隆的資源上添加或修改文件;
3)如果其他人修改了,你可以更新資源;
4)在提交前查看修改;
5)提交修改;
6)在修改完成后,如果發現錯誤,可以撤回提交并再次修改并提交;

工作流程圖如下:
Git的安裝配置和使用

四、Git工作區、暫存區和版本庫

基本概念:
1)工作區:就是你在電腦上能看到的目錄;
2)暫存區:一般存放在”git目錄“下的index文件(.git/index)中,所以我們把暫存區有時也叫作索引(index);
3)版本庫:工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫;

下面這個圖展示了工作區、版本庫中的暫存區和版本庫之間的關系:
Git的安裝配置和使用

1)圖中左側為工作區,右側為版本庫。在版本庫中標記為 "index" 的區域是暫存區(stage, index),標記為 "master" 的是 master 分支所代表的目錄樹;
2)圖中我們可以看出此時 "HEAD" 實際是指向 master 分支的一個"游標"。所以圖示的命令中出現 HEAD 的地方可以用 master 來替換;
3)圖中的 objects 標識的區域為 Git 的對象庫,實際位于 ".git/objects" 目錄下,里面包含了創建的各種對象及內容;
4)當對工作區修改(或新增)的文件執行 "git add" 命令時,暫存區的目錄樹被更新,同時工作區修改(或新增)的文件內容被寫入到對象庫中的一個新的對象中,而該對象的ID被記錄在暫存區的文件索引中;
5)當執行提交操作(git commit)時,暫存區的目錄樹寫到版本庫(對象庫)中,master 分支會做相應的更新。即 master 指向的目錄樹就是提交時暫存區的目錄樹;
6)當執行 "git reset HEAD" 命令時,暫存區的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,但是工作區不受影響;
7)當執行 "git rm --cached <file>" 命令時,會直接從暫存區刪除文件,工作區則不做出改變;
8)當執行 "git checkout ." 或者 "git checkout -- <file>" 命令時,會用暫存區全部或指定的文件替換工作區的文件。這個操作很危險,會清除工作區中未添加到暫存區的改動;
9)當執行 "git checkout HEAD ." 或者 "git checkout HEAD <file>" 命令時,會用 HEAD 指向的 master 分支中的全部或者部分文件替換暫存區和以及工作區中的文件。這個命令也是極具危險性的,因為不但會清除工作區中未提交的改動,也會清除暫存區中未提交的改動;

五、Git基本操作

1)git init

使用git init在目錄中創建新的Git倉庫,在任何時候、任何目錄中都可以這么做,完全就是本地化的。在目錄中執行git init,就可以創建一個Git倉庫了。如下:

[root@git ~]# mkdir git          //建議創建一個空目錄用于測試
[root@git ~]# cd git
[root@git git]# git init            //在新創建的空目錄中初始化git庫
初始化空的 Git 版本庫于 /root/git/.git/
[root@git git]# ls -a          //初始化完成后,會在此目錄下生成一個.git的隱藏目錄
.  ..  .git
2)git add

git add命令可將該文件添加到暫存區,如下:

[root@git git]# touch README hello.php   
[root@git git]# ls
hello.php  README
 //手動創建兩個文件
[root@git git]# git status -s             //查看項目的當前狀態
 //以下操作需注意文件第一列的狀態
?? README
?? hello.php
//?的意思表示還有進行添加到暫存區
[root@git git]# git add README hello.php
//使用git add添加文件
//當目錄中的文件較多時,可以使用”git add .“表示上傳當前目錄中的所有文件
[root@git git]# git status -s   
//再次查看文件的狀態
A  README
A  hello.php
//A表示已經添加到暫存區
[root@git git]# echo "123" > README     //對文件內容進行修改
[root@git git]# git status -s
//再次查看文件的狀態
AM README
A  hello.php
//AM表示文件已經提交到暫存區,但是又對文件進行了修改
[root@git git]# git add .          //提交所有文件到暫存區
[root@git git]# git status -s
//再次查看文件的狀態
A  README
A  hello.php
3)git status

git status用于查看你上次提交之后,文件的狀態

[root@git git]# git status        //如果不加”-s“選項則表示顯示詳細信息
# 位于分支 master
#
# 初始提交
#
# 要提交的變更:
#   (使用 "git rm --cached <file>..." 撤出暫存區)
#
#   新文件:    README
#   新文件:    hello.php
#
[root@git git]# git status -s     //添加”-s“選項則表示以簡潔的方式顯示
A  README
A  hello.php
4)git diff

執行 git diff 來查看執行 git status 的結果的詳細信息。
git diff 命令顯示已寫入緩存與已修改但尚未寫入緩存的改動的區別。

git diff 有兩個主要的應用場景:
1)尚未緩存的改動:git diff;
2)查看已緩存的改動: git diff --cached;
3)查看已緩存的與未緩存的所有改動:git diff HEAD;
4)顯示摘要而非整個diff:git diff --stat;

[root@git git]# echo "hello world" > hello.php       //對文件進行修改
[root@git git]# git status -s           //查看上次提交之后寫入緩存的改動情況
A  README
AM hello.php
[root@git git]# git diff        //顯示這些改動的具體內容
diff --git a/hello.php b/hello.php
index e69de29..3b18e51 100644
--- a/hello.php
+++ b/hello.php
@@ -0,0 +1 @@
+hello world
[root@git git]# git add hello.php         //上傳文件到緩存區中
[root@git git]# git status -s
A  README
A  hello.php
[root@git git]# git diff --cached           //顯示已緩存的改動
diff --git a/README b/README
new file mode 100644
index 0000000..190a180
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+123
diff --git a/hello.php b/hello.php
new file mode 100644
index 0000000..3b18e51
--- /dev/null
+++ b/hello.php
@@ -0,0 +1 @@
+hello world
5)git commit

使用 git add 命令將想要快照的內容寫入了緩存, 而執行 git commit 記錄緩存區的快照。
Git 為你的每一個提交都記錄你的名字與電子郵箱地址,所以第一步需要配置用戶名和郵箱地址。

[root@git git]# git config --global user.name "lzj"
[root@git git]# git config --global user.email "123456@qq.com"
//聲明用戶名及郵箱地址(可自定義)
[root@git git]# git status -s
A  README
A  hello.php
[root@git git]# git commit -m 'test comment from hello world'
//將文件提交到版本庫中,”-m“選項后的內容相當于注釋
//如果不添加”-m“選項,Git會嘗試打開一個編輯器來填寫提交信息
[master(根提交) eff9686] test comment from hello world
 2 files changed, 2 insertions(+)
 create mode 100644 README
 create mode 100644 hello.php
[root@git git]# git status          //提交完成后,再次查看
# 位于分支 master
無文件要提交,干凈的工作區
6)git reset HEAD

git reset HEAD用于取消緩存已緩存的內容。

[root@git git]# echo "123" >> README 
[root@git git]# echo "123" >> hello.php 
[root@git git]# git status -s
 M README
 M hello.php
[root@git git]# git add .
[root@git git]# git status -s
M  README
M  hello.php
[root@git git]# git reset HEAD -- hello.php        //指定文件撤出緩存區
重置后撤出暫存區的變更:
M   hello.php
[root@git git]# git status -s
M  README
 M hello.
//如果現在執行git commit命令則只記錄README文件的改動
7)git log

git log用于對某個文件進行更改的詳細日志信息!

[root@git git]# git log README         //查看指定文件的詳細日志信息
commit 572e555d40ddb941ff5d3f03f4644763a782acd7
Author: lzj <lzj@123.com>
Date:   Wed Feb 5 21:52:52 2020 +0800

    333

commit e4aac6a9ed71a96819025316b0c9a82e452da80a
Author: lzj <lzj@123.com>
Date:   Wed Feb 5 21:52:27 2020 +0800

    222

commit d11472818397d9294f26a8c85cee57158a6ee1b5
Author: lzj <lzj@123.com>
Date:   Wed Feb 5 21:51:57 2020 +0800

    111
[root@git git]# git log --pretty=oneline              //使顯示的日志在一行顯示
572e555d40ddb941ff5d3f03f4644763a782acd7 333
e4aac6a9ed71a96819025316b0c9a82e452da80a 222
d11472818397d9294f26a8c85cee57158a6ee1b5 111
8)git reflog

git reflog指令主要是查看對文件的修改,只要對文件進行修改,便會產生一個HEAD指針,主要就是用于查看HEAD指針的。

[root@git git]# git reflog README            //針對指定文件進行查看
572e555 HEAD@{0}: reset: moving to 572e555d40ddb941ff5d3f03f4644763a782acd7
e4aac6a HEAD@{1}: reset: moving to HEAD^
572e555 HEAD@{2}: commit: 333
e4aac6a HEAD@{3}: commit: 222
d114728 HEAD@{4}: commit (initial): 111
9)git reset --hard

git reset --hard指令主要用于回滾版本!

[root@git git]# git log --pretty=oneline      //將日志信息在一行進行顯示
572e555d40ddb941ff5d3f03f4644763a782acd7 333
e4aac6a9ed71a96819025316b0c9a82e452da80a 222
d11472818397d9294f26a8c85cee57158a6ee1b5 111
//第一列為commit ID號
[root@git git]# git reset --hard HEAD^       //HEAD^:表示回滾到上一個版本
HEAD 現在位于 e4aac6a 222
//HAED~10:回滾到上十個版本,依次類推
[root@git git]# git reset --hard 572e555d40ddb941ff5d3f03f4644763a782acd7
HEAD 現在位于 572e555 333
//可以根據commit ID號回滾到指定的版本(commit ID不用寫全,寫5、6位即可)
10)git rm

git rm將文件從緩存區中移除。

[root@git git]# git rm hello.php -f         //對文件進行修改,所以需要使用”-f“選項
rm 'hello.php'
[root@git git]# ls
README
默認情況下,git rm file 會將文件從緩存區和你的硬盤中(工作目錄)刪除。 如果要在工作目錄中留著該文件,可以添加選項”-f“或”--cache“

git基礎命令:

git config   --global   user.name   “用戶名”
git config   --global   user.email  “郵箱”
git init  初始化版本庫
git add   添加修改
git  commit  提交修改到版本庫
git  status  查看版本庫的狀態
git  diff  查看當前工作區和版本庫文件內容的區別
git  log   查看版本庫提交的歷史
git  reflog 查看所有版本庫的提交歷史
git   reset   --hard   HEAD^  回退到上一次提交版本
git  reset    --hard    commit id號 |  HEAD 編號    回退到指定的版本

六、將本地git庫關聯到github

1)在github上創建一個新的庫

登錄github官網,沒有注冊賬號的,自行注冊!如圖:
Git的安裝配置和使用
Git的安裝配置和使用

2)生成密鑰對

[root@git ~]# ssh-keygen -t rsa -C "zhen18732036806@163.com"
//-C后指定的是與github關聯的郵箱地址
[root@git ~]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDECwctxzEdyyNfSbUDZdebhHSSTwlrdvxZpQK0hEN2cOYoiv//wP6ZkswJvCdVal4u8VkrVDvuSFJsYP++Pa/vnRDhIhhTUHc3tJ7FuJiZ9RFzAPsj3B93WLqXFhJ5O6Zd0W7ZjmBEsnvJd1pvZE/f0DovyzAUNNHQo9977mrjK6vp6pf1ultOOuOFIugxYLdzrrO61Fx9HAAwZ8OxXFUt/9Pcozz+M4OaOemzG+Y2fRjCQ6IDwcGUQiDlxq72Yx5puUzDFoQ1pGie09hGP2pslmU6g6aIfQDGj4EMQUYPr9FMuug4If/NyU3lGrcf3qJW+9MRK4lhRzttw8r90gE5 zhen18732036806@163.com
//查看生成的公鑰,并且復制

3)將公鑰上傳到github

如圖:
Git的安裝配置和使用
Git的安裝配置和使用
Git的安裝配置和使用
Git的安裝配置和使用

4)上傳文件進行測試

如圖:
Git的安裝配置和使用
Git的安裝配置和使用

[root@git ~]# mkdir git && cd git               //創建一個目錄用于測試
[root@git git]# git init                      //初始化git
[root@git git]# git config --global user.name lvzhenjiang
[root@git git]# git config --global user.email zhen18732036806@163.com
//由于現在的環境是初始環境,所以需要聲明用戶名和郵箱
[root@git git]# echo "# test" >> README.md                    //創建測試文件
[root@git git]# git add README.md                  //將測試文件添加到暫存區
[root@git git]# git commit -m "first commit"          //將測試文件添加到版本庫中
[root@git git]# git remote add origin git@github.com:lvzhenjiang-hub/test.git
//將本地的版本庫與github的版本庫進行關聯
[root@git git]# git push -u origin master
//將本地的文件上傳到遠程版本庫的master分支中
//由于是第一次上傳需要添加”-u“選項,之后就不需要了!根據提示輸入”yes“即可

上傳完成后,回到github網站上刷新一下頁面,就會出現以下頁面,如圖:
Git的安裝配置和使用

七、從github下載到本地的版本庫

偷個懶,在第五步的基礎上開始接下來的操作!

這里就將剛才上傳到github的文件下載到本地,操作如下:

如圖:
Git的安裝配置和使用

[root@git git]# mkdir /lzj && cd /lzj                     //創建一個空目錄用于測試
[root@git lzj]# git clone git@github.com:lvzhenjiang-hub/test.git
//執行”git clone“命令,后面就是剛才復制的網址
[root@git lzj]# ls
test
[root@git lzj]# cat test/README.md 
# test
//確認是剛才上傳的數據

看完上述內容,你們對Git以及Git的使用方法有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广昌县| 蓝山县| 平阳县| 齐河县| 荣昌县| 宁都县| 抚顺县| 绥德县| 阿巴嘎旗| 大宁县| 武安市| 保山市| 墨竹工卡县| 惠东县| 进贤县| 南和县| 沈丘县| 文山县| 永登县| 承德市| 海伦市| 兴安盟| 武夷山市| 宁津县| 海阳市| 醴陵市| 宜昌市| 徐汇区| 哈巴河县| 屯门区| 武定县| 岱山县| 高阳县| 冷水江市| 安义县| 桃园市| 东平县| 临西县| 海阳市| 喜德县| 襄垣县|