GIT基本操作記錄(init、clone、add、rm、mv、commit、log、status、config、diff等命令基本使用)

注: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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章