努力經(jīng)營當下,直至未來明朗!
一、初識Git
- 版本控制器:記錄每次的修改以及版本迭代的一個管理系統(tǒng)。
- Git:其實就是最常用的版本控制器??梢跃S護控制電腦上所有格式的文檔。
如:對于開發(fā)人員來說,最主要就是維護項目中的源代碼文件。 - 注意:對于二進制文件如圖片、視頻等,具體修改的內(nèi)容是未知的,只是知道如修改了其文件的存儲大小等信息。
二、 在Linux底下安裝Git
此時我在我的Xshell上的服務器來進行安裝(centos)。
一)centOS
- 首先查看當前服務器底下有沒有安裝Git
git --version
- 如果已經(jīng)安裝,需要進行卸載
sudo yum remove git -y
-
補充:清屏的話使用
clear
-
安裝git
sudo yum install git -y
- 然后再進行檢查
git --version
二)Ubuntu
- 首先查看當前服務器底下有沒有安裝Git
git --version
- 如果已經(jīng)安裝,需要進行卸載
sudo apt-get remove git -y
-
補充:清屏的話使用
clear
-
安裝git
sudo apt-get install git -y
- 然后再進行檢查
git --version
三、 Git基本操作
一) 創(chuàng)建本地倉庫
- 只有在Git倉庫下的文件才能被Git追蹤管理
- 以下創(chuàng)建本地倉庫的操作在Xshell中進行完成!
1)首先創(chuàng)建一個目錄
mkdir gitcode
-- [即: mkdir 目錄名]
2)切換到該目錄底下
cd gitcode/
-- [即: cd 目錄名/]
3)進行目錄的展示
ls
4)在該目錄下創(chuàng)建空的Git倉庫:.git
git init
5)顯示當前目錄下所有文件(Ubuntu下適用)
la
6) 樹形展示該目錄下的所有文件:千萬不要手動修改任何文件??!
tree .git/
二)配置本地倉庫
- 當成功創(chuàng)建出一個本地倉庫之后,首先就是要對本地倉庫新增兩個配置項:name和email。
- 為本地倉庫設置配置項:
git config
- 配置name和email:
git config user.name "xxx(實際name)"
git config user.email "xxx(實際email)"
- 查看配置,看配置是否已經(jīng)成功
git config -l
- 重置刪除配置項
git config --unset user.name
git config --unset user.name
- 一臺服務器上可以創(chuàng)建多個本地倉庫,加上–global的意思其實就是當前的配置項是會在當前機器的所有git倉庫下都生效的
git config --global user.name "xxx"
git config --global user.name "xxx"
- 在進行global全局配置之后發(fā)現(xiàn)直接使用unset重置是失敗的,此時想要重置必須在–unset之前加上–global
三)認識工作區(qū)、暫存區(qū)、版本庫
- 在gitcode目錄下新建一個文件readMe,使用git進行管理.
① 但是,在touch完成的情況下,Git是不能管理該readMe文件的。
② .git稱為版本庫(倉庫),readMe文件稱為工作區(qū)
touch readMe
-
強調(diào):不允許在.git下手動修改!!
-
工作區(qū)、版本庫和暫存區(qū)之間的關系:
可以參考:Git工作區(qū)、暫存區(qū)和版本庫 -
如何將工作區(qū)中的內(nèi)容使用git來進行管理:
1)對工作區(qū)進行修改操作(如:新增、修改、刪除)之后進行add
操作則進入版本庫的暫存區(qū)
2)然后對暫存區(qū)中的內(nèi)容進行commit
之后就被提交到master分支底下
3)此時就將工作區(qū)中的內(nèi)容真正放到了git倉庫下進行管理 -
objects對象庫:工作區(qū)文件在執(zhí)行add命令之后,修改的工作區(qū)內(nèi)容就會被寫入對象庫的一個新的git對象中,即:維護了文件的版本
-
暫存區(qū)中存儲的不是一個個對象,而是對象索引;master分支中也是一樣的,存儲的也是對象的索引,也是比較輕量的。
-
因為倉庫是剛init的,所以目前還沒有暫存區(qū),所以
tree .git
之后看不到index是正常的。
四)添加文件
- 操作文件:
編輯文件: vim 文件名
保存并退出: :wq
在屏幕上打印文件內(nèi)容:cat 文件名
- 將文件添加到版本庫的暫存區(qū):
(在已經(jīng)創(chuàng)建的gitcode目錄下操作)
git add 文件名1 文件名2 ··· // 提交該文件
git add . // 提交該目錄下所有文件
- 將暫存區(qū)文件提交到master分支:
git commit -m "提交的細節(jié)描述"
補充:如果在進行該操作時出現(xiàn)了以下異常:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'root@hecs-279575.(none)')
[root@hecs-279575 gitcode]# git log
fatal: bad default revision 'HEAD'
此時,只需要在當前輸入下面兩句命令,把引號里的改成自己的郵箱和賬號就OK了,然后就可以繼續(xù)操作了
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
- 打印提交記錄
git log
git log --pretty=one-line // 打印一行漂亮直觀日志
五)查看.git文件
根據(jù)commit_id來打印文件
git cat-file -p commit_id
六)修改文件
-
Git追蹤管理的不是文件,其實是修改。
-
修改某個文件的內(nèi)容,其實就是對該文件進行一個編輯操作,所以使用的是vim操作
-
查看版本庫的狀態(tài):
git status
-
查看暫存區(qū)和工作區(qū)內(nèi)容的差異:
git diff 文件名
- 查看版本庫和工作區(qū)文件的區(qū)別:
git diff HEAD -- 文件名
七)版本回退
-
版本回退命令:
git reset [--soft | --mixed | --hard] [HEAD] // 本質回退的是版本庫的內(nèi)容;還可以回退到當前版本,即暫存區(qū)和工作區(qū)代碼回退到和版本庫中一致
–soft :只回退版本庫中的內(nèi)容,工作區(qū)和暫存區(qū)的內(nèi)容不進行回退
–mixed(默認): 回退的是版本庫和暫存區(qū)的內(nèi)容,工作區(qū)的內(nèi)容不進行回退
–hard: 回退版本庫、暫存區(qū)、工作區(qū)的內(nèi)容。(==慎用??!==工作區(qū)中的代碼也被干掉的話其實是非常頭疼的,直接找不回來了) -
使用示例:
git reset [--hard] commit_id
// 代表回退到commit_id這個版本,該版本之后提交的內(nèi)容都消失
- 如果我進行回退之后后悔了,可以利用之前git log --pretty=oneline打印好的commit_id回到想要回到的版本,同樣是使用
git reset [--hard] commit_id
4. 那如果git log --pretty=oneline打印好的commit_id已經(jīng)被clear,此時就使用git reflog
打印出所使用的命令進行的操作,最前面的就是commit_id,依舊可以利用該commit_id進行版本的回退
-
git版本回退速度很快的原因:
HEAD指針是指向master的,而master中存放的是commit_id,所以在進行版本回退的過程中其實只需要修改master的commit_id即可,將指針指向新的內(nèi)容。 -
回退到當前版本:
git reset [--mixed | --hard] HEAD [filename]
回退到當前版本的前n個版本:git reset [--mixed | --hard] HEAD^^ [filename]
(^的數(shù)量取決于回退到前n個版本)
八)撤銷修改
- 工作區(qū)、暫存區(qū)、版本庫的回退操作
1)工作區(qū)和暫存區(qū)的回退
2)工作區(qū)、暫存區(qū)、版本庫的回退文章來源:http://www.zghlxwxcb.cn/news/detail-649393.html
九)刪除文件
- 針對工作區(qū)中的文件進行刪除:
rm [filename]
- 將文件從工作區(qū)、暫存區(qū)、版本庫中刪除:
rm [filename]
git add [filename]
git commit -m "xxx"
- 將文件從工作區(qū)、暫存區(qū)、版本庫中刪除,可以簡化為以下倆步驟:
git rm [filename] // 將文件從工作區(qū)、暫存區(qū)刪除
git commit -m "xxx"
文章來源地址http://www.zghlxwxcb.cn/news/detail-649393.html
到了這里,關于【Git】安裝以及基本操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!