第一篇:Git操做詳解

最近因爲項目的須要,我須要負責整個項目的託管,其中涉及到不少Git相關的命令,因此就將以前用到的git相關的命令作了一個總結和概括。因爲開發環境是Linux,因此我接下來的操做命令均針對Linux環境。git

git是一個開源的分佈式的版本控制系統,主要用於項目的管理。緩存

分佈式:git使用分佈式管理。即每一個節點關係平等,都保存完整代碼,節點之間相互推送或者下載代碼。服務器

集中式:有明確的中央服務器統一管理代碼,每一個節點都將代碼上傳中央服務器或者從中央服務器下載代碼。分佈式

1、git安裝準備與配置

一、git安裝

$ sudo apt-get install git
$ git --version 查看當前git版本

二、git的基本配置

2.一、系統中全部用戶均使用的配置spa

命令:sudo git config --system
配置文件:/etc/gitconfig
e.g. 配置用戶名
cassie@com:~$ sudo git config --system user.name Cassie
cassie@com:~$ cat /etc/gitconfig
[user]
name = Cassie


2.二、當前用戶的全部項目均使用的配置命令行

命令:git config --global
配置文件:~/.gitconfig
e.g. 配置用戶郵箱
cassie@com:~$ git config --global user.email cassie@qq.com
cassie@com:~$ cat ~/.gitconfig
[user]
email = cassie@qq.com
name = 0513Cassie


2.三、只在當前項目中使用的配置版本控制

命令:git config (命令只要在git項目文件夾中執行)
配置文件:project/.git/config

e.g.配置編譯器
git config core.editor vscode

2、git操做

下面這種圖是我在網上看到的一張關於git操做總結的一張圖,下面我將按照這張圖片進行一個Git相關命令行的操做總結。日誌

![](https://user-gold-cdn.xitu.io/2018/11/2/166d3a92f4930bda?w=554&h=157&f=png&s=61714)code

首先,對上圖的幾個概念進行講解一下:
- 工做區(workspace):經過本身的主機操做的git目錄。
- 暫存區(index):用來記錄工做行爲的,即全部的操做git的記錄,做爲一個暫時保存。
- 本地倉庫(Repository):本地用來備份同步工做區內容的區域。
- 遠程倉庫(Remote):其餘主機的git。cdn

2.一、工做區、緩存區、本地倉庫之間數據操做

初始化倉庫

$ mkdir gittest
$ cd gittest
$ git init


查看工做分支的狀態

$ git status
* 當工做區和倉庫沒有任何差別的時候不會有任何提示
* 默認工做分支爲master,能夠經過建立新的分支進行切換


文件提交到暫存區

$ git add [file]
$ git add * 所有提交
* 能夠一次提交多個內容,中間用空格隔開
* 提交的內容能夠是文件也能夠是文件夾

刪除暫存區的記錄

刪除內容爲文件:
$ git rm --cached 文件名稱
刪除內容爲文件夾:
$ git rm --cached 文件夾名稱 -r

將暫存區記錄的修改內容同步到本地倉庫

$ git commit -m "message"

查看提交日誌

$ git log
$ git log --pretty=online 日誌單行顯示

2.二、工做區操做

查看工做區文件和本地倉庫的差異
$ git diff [file]

放棄工做區的修改
$ git checkout -- [file]

恢復本地倉庫文件到工做區
$ git checkout [file]

2.三、文件移動

刪除工做區文件並提交到暫存記錄
$ git rm [file]

移動工做區文件並提交到暫存區
$ git mv file dir

2.四、版本控制命令

回到以前的版本
$ git reset --hard HEAD^
* HEAD後面有幾個^表示回到以前的幾個版本


經過commit_id回到指定的版本
$ git reset --hard commit_id

查看操做日誌
$ git relog
* 獲取到操做記錄後能夠根據commit_id去往比較新的版本

2.五、標籤管理(屬於本地倉庫的操做)

建立標籤
$ git tag v1.0
*默認會在最新的commit_id

查看標籤
git tag 查看全部標籤
git show v2.0 查看某個標籤的具體信息

在某個指定的commit_id處打標籤
$ git tag v1.0 [commit_id]

恢復標籤時的狀態
$ git reset --hard v1.0

刪除標籤
git tag -d v2.0

三、常見問題

3.一、git reset --hard commit_id 誤操做如何回到以前的版本

注意git log 命令是查看提交日誌,因此若是咱們進行上面的回到以前的版本在git log裏面是沒法查看commit_id的,這時候咱們就須要使用 git reflog命令。

注意:git reflog命令是查看操做日誌的,在這裏咱們能夠查到因此操做的詳細信息,

拿到commit_id 以後,經過git reset --hard commit_id這個命令回到指定版本便可

相關文章
相關標籤/搜索