Git基本命令

Hanson_dai發表於2018-05-13

clone程式碼

clone所有分支:git clone [url] [本地資料夾名]

clone指定分支:git clone -b 分支名稱 [url] [本地資料夾名]

檢視所有遠端分支:git branch -r

切換分支:git checkout -b 分支名稱

本地倉庫關聯到遠端倉庫:git remote add origin [url]


git配置

git配置檔案全都是簡單的.ini檔案風格的文字檔案,支援不同層次的配置,優先順序從小到大依次為:

  • /etc/gitconfig 全域性的配置設定,這個檔案也可能在/user/local/etc/gitconfig,也可能是完全不存在

  • ~/.gitcofnig 使用者特定的配置設定,可以通過--global選項修改,win系統在%USER_PROFILE%/.gitconfig

  • .git/config 版本庫特定的配置設定,可以使用--file修改,--file是預設選項,該配置擁有最高優先順序

$ git config --list [通過此命令檢視當前git專案的所有配置]

$ git config --list --global [通過此命令檢視git全域性的配置]
複製程式碼

設定全域性預設的名字和郵箱

$ git config --global user.name "name"
   
$ git config --global user.email "email@email.com"
# git commit期間開啟編輯器編輯日誌訊息
$ git config --global core.editor vim 
複製程式碼

設定專案配置資訊方式,在專案目錄下使用命令,會修改.git/config中的配置,覆蓋全域性配置

#將使用者名稱設為nickname

$ git config user.name "nickname" 
   
$ git config user.email "xxx@gmail.com" 

#將使用者郵箱設為nickname@gmail.com
   
使用--unset來移除設定

$ git config --unset --global user.email

$ git config --unset core.editor
複製程式碼

提交歷史

git log命令會產生版本庫裡一系列單獨提交的歷史,條目按照從最新的到最老的順序羅列(不是按照時間順序,而是提交的拓撲順序排列),每個條目顯示了提交作者的名字、email、提交日期、變更的日誌記錄和提交的內部識別碼

git show <提交ID> 可以檢視特定提交的詳細資訊,如果沒有指定提交碼,則只顯示最近一次提交的詳細資訊

$ git log
commit a26981b7d65bb4d30001e2b641869dc1d2e83e9e (HEAD -> master)
Author: xingmu <xxx@126.com>
Date:   Sun May 13 00:57:04 2018 +0800

    確認功能

commit 6d86cd5a50d5ca1323bdec20bd5dfcb388008005
Author: xingmu <xxx@126.com>
Date:   Sun May 13 00:55:36 2018 +0800

    convert to html

$ git show 6d86cd5a50d5ca1323bdec20bd5dfcb388008005

commit 6d86cd5a50d5ca1323bdec20bd5dfcb388008005
Author: xingmu <xxx@126.com>
Date:   Sun May 13 00:55:36 2018 +0800

    convert to html

diff --git a/index.html b/index.html
index 34217e9..fa3df91 100644
--- a/index.html
+++ b/index.html
@@ -1 +1,5 @@
+<html>
+       <body>
 My website is alive!
+       </body>
+</html>


複製程式碼

檢視提交差異

git diff <提交id> <提交id>

$ git diff 6d86cd5a50d5ca1323bdec20bd5dfcb388008005 a26981b7d65bb4d30001e2b641869dc1d2e83e9e
diff --git a/index.html b/index.html
index fa3df91..60ea836 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,7 @@
 <html>
+       <title>
+               git demo
+       </title>
        <body>
 My website is alive!
        </body>


複製程式碼

版本庫內的檔案刪除和重新命名

## 刪除
$ git rm readme.md 
rm 'readme.md'

$ git commit -m "remove file readme.md"
[master a934b71] remove file readme.md
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 readme.md

## 重新命名
$ git mv user.html user.html_bak 
fatal: 不在版本控制之下,源=user.html,目標=user.html_bak

$ git add user.html 
$ git mv user.html user.html_bak 
    ```複製程式碼