溫馨提示×

溫馨提示×

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

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

GIT安裝及詳細使用

發(fā)布時間:2020-07-27 08:48:01 來源:網(wǎng)絡 閱讀:531 作者:GentleMan___ 欄目:開發(fā)技術

Linux安裝Git及詳細使用


Git是目前世界上最先進的分布式版本控制系統(tǒng)。Git的與SVN最主要的區(qū)別 ,Git是分布式版本控制系統(tǒng),那么它就沒有中央服務器的,每個人的電腦就是一個完整的版本庫,只需把各 自的修改推送給對方;SVN是集中式版本控制系統(tǒng),版本庫是集中放在中央服務器的,集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作。 

一、Git優(yōu)點: 

(1).直接快照,而非比較差異:Git 只關心文件數(shù)據(jù)的整體是否發(fā)生變化 

(2).近乎所有操作都可本地執(zhí)行 

(3).時刻保持數(shù)據(jù)完整性 

(4).三種狀態(tài) 

Git 內都只有三種狀態(tài):已提交(committed),已修改(modified)和已暫存(staged)。已提交表示該文件已經(jīng)被安全地保存在本地數(shù)據(jù)庫中了;已修改表示修改了某個文件,但還沒有提交保存;已暫存表示把已修改的文件放在下次提交時要保存的清單中. 

(5)多數(shù)據(jù)操作僅添加數(shù)據(jù)


二、安裝Git 

安裝方式有兩種:一種是通過編譯源代碼來安裝;另一種是使用為特定平臺預編譯好的安裝包。然而,通過編譯源代碼來安裝可以安裝最新的版本Git。


Git 的工作需要調用curl,zlib,openssl,expat,libiconv 等庫的代碼,所以需要先安裝這些依賴工具。在有yum 的系統(tǒng)上(比如Fedora)或者有apt-get 的系統(tǒng)上(比如Debian 體系的),可以用下面的命令安裝:


$ yum install curl-devel expat-devel gettext-devel \

openssl-devel zlib-devel

$ apt-get install curl-devel expat-devel gettext-devel \

openssl-devel zlib-devel

1

2

3

4

之后,從下面的Git 官方站點下載最新版本源代碼: 

http://git-scm.com/download 

然后編譯并安裝:


$ tar -zxf git-1.6.0.5.tar.gz

$ cd git-1.6.0.5

$ make prefix=/usr/local all

#####Error:#####

Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.

BEGIN failed--compilation aborted at Makefile.PL line 3.

make[1]: *** [perl.mak] error 2

make: *** [perl/perl.mak] error 2


解決:yum install perl-ExtUtils-MakeMaker package



$ make prefix=/usr/local install



現(xiàn)在已經(jīng)可以用git 命令了,用git 把Git 項目倉庫克隆到本地,以便日后隨時更新: 

mkdir /opt/git

cd /opt/git/

$ git clone https://github.com/Billshuai/GuessMusic.git


在Linux 上安裝


如果要在Linux 上安裝預編譯好的Git 二進制安裝包,可以直接用系統(tǒng)提供的包管理工 

具。在Fedora 上用yum 安裝:


$ yum install git-core

1

在Ubuntu 這類Debian 體系的系統(tǒng)上,可以用apt-get 安裝:


$ apt-get instal git-core

1

初次運行Git 前的配置,。配置工作只需一次,以后升級時還會沿用現(xiàn)在的配置,


三、Git的前期準備 

1.初次運行Git 前的配置 

第一個要配置的是你個人的用戶名稱和電子郵件地址。這兩條配置很重要,每次Git 提交時都會引用這兩條信息,說明是誰提交了更新。


$ git config --global user.name "Billshuai"

$ git config --global user.email billshuai@example.com

1

2

如果用了–global 選項,那么更改的配置文件就是位于你用戶主目錄下的~/.gitconfig文件,以后你所有的項目都會默認使用這里配置的用戶信息。如果要在某個特定的項目中使用其他名字或者電郵,只要去掉–global 選項重新配置即可,新的設定保存在當前項目的.git/config文件里. 

2.Git更改文本編輯器、差異分析工具、查看信息、獲取幫助 

比如更改文本編輯器Emacs 的話,代碼:


$ git config --global core.editor emacs

1

比如更改差異分析工具vimdiff的話,代碼:


$ git config --global merge.tool vimdiff

1

要檢查已有的配置信息,可以使用git config –list 命令:


$ git config --list

1

有時候會看到重復的變量名,那就說明它們來自不同的配置文件(比如/etc/gitconfig和~/.gitconfig),不過最終Git 實際采用的是最后一個。也可以直接查閱某個環(huán)境變量的設定,只要把特定的名字跟在后面即可,代碼:


$ git config user.name

1

Git 的各式工具該怎么用,可以閱讀它們的使用幫助,方法有三


$ git help <verb>

$ git <verb> --help

$ man git-<verb>

1

2

3

例如:


$ git help pull

1

打開的如圖:


這里寫圖片描述


四、Git的基礎操作 

如果沒有配置信息,一定要提前配置(git config –global user.name XXX 

git config –global user.email XXX) 

(1)在本地創(chuàng)建一個工程文件夾,進入該目錄,代碼如下:


cd D:/www      //進入D盤www文件夾下

mkdir bingsman //新建一個文件夾,作為工程目錄

pwd            //用于顯示當前目錄

1

2

3

(2)通過命令 git init 把目錄變成git可以管理的倉庫,初始化后,在當前目錄下會出現(xiàn)一個名為.git的目錄(隱藏文件夾),所有Git 需要的數(shù)據(jù)和資源都存放在這個目錄中。


git init

1

(3)可以先建一個txt文件文件試試,修改、提交和保存都是這兩步


git add readme.txt      //添加到暫存區(qū)

git commit -m '修改說明' //把文件提交到倉庫

1

2

(4)通過命令git status來查看文件狀態(tài)是否還有文件未提交,通過命令git diff readme.txt 查看readme.txt文件到底改了什么內容(但是對于二進制文件(例如:視頻,音樂)只能查出修改大小,不能查看修改內容)


git status           //查看文件狀態(tài)是否已經(jīng)全部上傳

git diff readme.txt   //查看文件修改了什么內容 

1

2

(5)版本回退,首先查看log,通過git log查看最近的修改歷史記錄(git log –pretty=oneline 把log打印成一條線),然后通過git reflog查看版本號


git log                    //查看修改日志

git log --pretty=oneline    //查看修改日志并且日志在一行

git reflog                 //查看提交的各個版本

git reset  --hard 版本號     //回退固定版本

git reset  --hard HEAD^     //回退到上一個版本

git reset  --hard HEAD^^    //回退到上上一個版本

git reset  --hard HEAD~50   //回退到前50個版本

1

2

3

4

5

6

7

(6)修改和刪除文件操作 

修改,在add之后(文件放到暫存區(qū)之后又操作),或者是add之前(文件沒有放到暫存區(qū)之前修改的)修改的內容,都可以用checkout命令撤銷原來的修改


git checkout -- readme.txt 

1

刪除,通過命令rm來刪除文件,但是要想徹底刪除文件,需要commit命令來提交,在提交之前可以通過checkout恢復文件


rm readme.txt                //刪除文件

git checkout -- readme.txt   //撤銷修改

1

2

(7)遠程倉庫 

由于本地Git倉庫和github倉庫之間的傳輸是通過SSH加密的 

第一步:首先創(chuàng)建SSH Key(如果用戶主目錄下有就跳過)


ssh-keygen  -t rsa –C “youremail@example.com”

1

這樣會在用戶主目錄下,生成.ssh目錄,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰, 

第二步:登錄github,打開” settings”中的SSH Keys頁面,然后點擊“Add SSH Key”,填上任意title,在Key文本框里黏貼id_rsa.pub文件的內容。 

第三步:然后遠程連接如何連接 

首先登錄github上,然后在右上角找到“create a new repo”創(chuàng)建一個新的倉庫。 

然后,在GitHub上的這個testgit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯(lián),然后,把本地倉庫的內容推送到GitHub倉庫


git remote add origin  https://github.com/Billshuai/testgit.git //遠程連接

git push -u origin master   //上傳到git服務器


如果報錯的話

git pull origin master //更新遠程程序到本地

1

2

3

4

5

6

加上了 –u參數(shù),Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯(lián)起來, 在以后的推送或者拉取時就可以簡化命令。


(8)創(chuàng)建與合并分支


在 版本回退里,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git里,這個分支叫主分支,即master分支。HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支 

第一步:創(chuàng)建dev分支,然后切換到dev分支上


git checkout -b master2  //建dev分支,然后切換到dev分支上

1

或者


git branch master2      //建dev分支

git checkout master2    //切換到dev分支上

1

2

查看分支,會列出所有的分支,當前分支前面會添加一個星號;


git branch        //查看當前分支

1

第二步:在分支master2中進行修改(add),提交(commit)之后然后再回到主分支(git checkout master),但是你此時再打開文檔,并沒有什么改變,所以需要分支合并。


//上面已經(jīng)進入了masters分支中

//然后修改文件readme.txt的內容

git add readme.txt

git commit -m '分支master2中修改的'

git checkout master //切換到主分支

cat readme.txt //發(fā)現(xiàn)文件并沒有改變

1

2

3

4

5

6

第三步:合并分支內容


//上面已經(jīng)進入主分支中

git merge master2 //將master提交的內容合并到主線程中

cat readme.txt    //發(fā)現(xiàn)剛才在分支中修改的內容出現(xiàn)了

1

2

3

注意到merge之后有Fast-forward信息,Git提示我們,這次合并是“快進模式”,也就是直接把master指向master2的當前提交,所以合并速度非常快。 

第四步:刪除分支


git branch //查看有多少分支

git branch -d master2 //刪除master2分支

git branch //再次查看是否刪除

1

2

3

第五步:解決沖突 

1. 創(chuàng)建一個master2分支。 

2. 修改readme.txt內容。 

3. 添加到暫存區(qū)。 

4. 切換回主分支(master)。 

5. 合并master2分支,使用命令 git merge –no-ff -m “注釋” master2 

6. 查看歷史記錄


git checkout -b master2  //創(chuàng)建master2分支并進入

git add readme.txt

git commit -m '修改說明'

git checkout master      //進入主分支

git merge --no--ff -m "不是以fast forword模式" master2


git log --graph --pretty=oneline abbrev-commit


向AI問一下細節(jié)

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

AI