注:SVN和GIT的差異,SVN在每級目錄下都有一個.svn/的控制信息目錄,而git只在頂級目錄有一個.git/控制信息目錄。
#----------------------------------------------------------------------------------------------------------------------------------------------------
# git簡單介紹 【2020年6月8日23:12:12】
#----------------------------------------------------------------------------------------------------------------------------------------------------
0、git / git help --all
#查看git支持的常用子命令列表以及簡單描述,git help --all可以查看完整的自命令列表
1、git --version
#查看git版本
2、git --help subcommand / git subcommand --help / git help subcommand / git subcommand help
#以上命令都可以用來查看git子命令的幫助手冊(安裝git時包含的手冊組件sudo apt-get install git-doc)
3、git commit -m "message text" / git commit --message="message text"
#提交併使用給定的"message text"作爲提交消息。-m 和 --message 作用一樣,一個是選項加參數;另一個是選項等於參數。
#短選項更常用一些。如果給定多個-m選項,它們的值將作爲單獨的段落連接起來。-m選項與-c、-c和-F互斥。
4、git <command> --“XXXX”
#‘--’裸雙破折號,用來分離一系列參數
#----------------------------------------------------------------------------------------------------------------------------------------------------
# git快速入門【2020年6月10日23:19:09】
#----------------------------------------------------------------------------------------------------------------------------------------------------
1、本地倉庫(以下所有目錄、文件均在 ROOT=/F/gitLearn/下):
創建一個本地目錄/F/gitLearn/,在gitLearn目錄下創建編輯新的目錄和文件,然後在/gitLearn/下執行:
git init
#將$ROOT目錄作爲一個git倉庫,$ROOT目錄下會產生一個.git/目錄,
#用來存儲相關版本控制信息,該目錄只在一級目錄$ROOT下存在,區別於SVN會在每一級目錄下都有一個.svn/
git status
#查看當前版本庫下的狀態(會顯示有新的目錄和文件需要被add、rm、commit)
git add *
#將$ROOT目錄下創建的所有文件和目錄(不包括.git/、.ingnore等控制文件/目錄)添加到.git/對應的版本庫
git commit -m "xxxx"
#將add到中間狀態暫存的修改/新建提交到倉庫
git log
#查看commit的提交歷史日誌
#以上操作涉及以下幾個步驟,可以觀察其中命令執行的結果變化
mkdir new_dir / touch new_file -> git init -> git status -> git add -> git status -> git commit -> git status -> git log
#當git add index.html 之後對 index.html 進行了修改,下次commit -a -m "xxxx" 即可,不需要重複add,
#或者重新git add index.html 然後git commmit -m "xxxx"也可以,沒有什麼特殊要求,由於一般除了修改可能會有新增文件
#所以每次commit之前add一把,可能會更加方便,在開發初期,文件新增和修改都比較多時,也更加常用
git show [log SHA code]
#用於查看指定提交對象的提交內容,如果未指定[log SHA code]選項,則顯示最近一次提交的相關信息,如下所示:
#show-branch --more=n,用於指定額外的10個版本([master^] 爲第一次提交)
#------------------------------------------------------------------------------------------------------------
# $ git show edc7a056b5f91aa5393e56b2e2dbc1a9d5968a22
# commit edc7a056b5f91aa5393e56b2e2dbc1a9d5968a22
# Author: ApollonKangGitHub <[email protected]>
# Date: Mon Jun 8 23:30:49 2020 +0800
#
# initialized empty Git repository in .git/
#
# diff --git a/index.html b/index.html
# new file mode 100644
# index 0000000..a1fffb3
# --- /dev/null
# +++ b/index.html
# @@ -0,0 +1 @@
#
# $ git show-branch --more=10
# [master] second commit don't need add file again
# [master^] initialized empty Git repository in .git/
#------------------------------------------------------------------------------------------------------------
git diff <sha1_1> <sha1_2>
#查看指定的兩次提交之間的差異
git add <a.txt> -> git commit
#添加到庫並提交添加操作
git rm <a.txt> -> git commit
#從庫中刪除並提交刪除操作
git mv <a.txt> <b.txt> -> git commit
#對庫中文件改名並提交修改(等價於:mv a.txt b.txt -> git rm a.txt -> git add b.txt -> git commit)
git clone <lib_source> <lib_salve>
#本地版本庫克隆
git clone <rmt_URL> [dst_name]
#遠端版本庫克隆
#克隆一個版本庫
#------------------------------------------------------------------------------------------------------------
# $ git clone public_html my_html
# Cloning into 'my_html'...
# done.
#
# my_html 有着克隆對象的完整 git log 歷史
#------------------------------------------------------------------------------------------------------------
#git配置文件
# --global配置的是基於用戶的全局 "~/.gitconfig" 的修改
# 而不加--global是基於版本庫 ".git/config" 的配置)
# --system 則是配置系統全局的 "/etc/gitconfig" 文件
# 三種類型的配置文件如下:
cat /etc/gitconfig
cat .git/config
cat ~/.gitconfig
#配置相關命令示例
git config user.name "ApollonKangGitHub"
git config core.filemode false
git config --global user.name "ApollonKangGitHub"
git config --global user.email "[email protected]"
git config --system user.name "ApollonKangGitHub"
git config --system user.email "[email protected]"
#顯示配置
git config -l
#刪除配置示例(修改配置的話,直接將相關配置直接重新設置一遍)
git config --unset [--global | --system] user.name
#配置別名(爲一個比較長的帶選項的命令配置別名)
git config [--global | --system] alias.<new_name> "old name and options"
#git config --global alias.show-graph "log --graph --abbrev-commit --pretty=oneline"
#該命令配置了"log --graph --abbrev-commit --pretty=oneline"的別名爲"show-graph"
#當執行"git show-graph"時,即執行"git log --graph --abbrev-commit --pretty=oneline"