關於Git命令行使用的一些個人經驗總結
Git的安裝與簡單配置 Git的基本工作流程 Git的分枝管理 Git的log與比較顯示 Git的修改與還原 Git重寫歷史記錄
二、使用方式和效果圖
(1)Git的安裝與簡單配置:
打開 Git 的官方網站: http://git-scm.com/,下載安裝文件,按照通用安裝流程,點擊下一步(Next)。
唯一需要注意的是在否配置Path頁面的時候,選擇中間一個,可以通過 Windows命令行(CMD)調用 git 命令。
安裝完成之後,桌面點擊右鍵會出現這兩個圖標。
這個時候點擊Git Base Here 即可進入Git命令行操作窗口
這個時候還不能進行Git的基本操作,必須要設置本地機器默認commit的昵稱與Email,否者會commit 失敗。
如果要使用git進行推送,則必須配置 push.default ,否則推送失敗. 姓名與Email只用於日志標識.實際推送到GitHub等在線倉庫時,要用有操作權限的賬號登錄. 在每個項目根路徑下面可以設置單獨的Email與姓名.
git config 有三個級別分別是
1.git config –local(可省略) 針對的是當前倉庫
2.git config –global 針對的是當前用戶
3.git config –system 針對的是整個個系統
最後,可以通過git config help 查看config相關的詳細說明
####**(2) Git的基本工作流程:** ##### 現在是基本的工作流程,首先需要建立一個本地倉庫—>git init 倉庫名
找到一個合適的位置創建,然後進入倉庫 ![這裡寫圖片描述](http://img.blog.csdn.net/20160429141152420) ![這裡寫圖片描述](http://img.blog.csdn.net/20160429141550479)
touch a.txt 創建一個a.txt 文件
git add a.txt 把a.txt 提交到緩沖區
git commit a.txt -m "提交的描述" 把a.txt提交到歷史
git status 常看提交狀態
(3)Git的分枝管理:
創建並切換到分枝
下面模擬沖突,首先在分枝上修改a.txt提交,然後在主分枝master上修改a.txt,然後合並分枝。
vim a.txt 打開文件,然後按鍵盤I鍵,編輯模板會切換到Insert模式,這個時候就可以編輯文件了。編輯完成之後,保存退出的步驟是按一下Esc鍵,然後是連按兩下大寫的Z鍵。
添加到緩存區並提交
然後在master主分枝上修改a.txt,然後開始准備合並分枝
這兒用到了,git add . 代表添加全部文件到緩沖區。
git commit -m “內容” 代表提交全部文件
然後使用 git merge 分枝名 合並分枝出現了沖突。解決辦法就是打開沖突了的那個文件,解決沖突,然後重新提交。
就像圖片上的,藍色字體也由master|MERGING變為master,這樣一次沖突就解決了。
(4) Git的log與比較顯示以及一些常用操作:
查看日志的命令行
git log 完整的歷史信息,按q退出
git log -p 輸出每個commit之間的差異信息
git log --stat 輸出每個commit之間的差異統計信息
git log --oneline 輸出單行的信息
git log --oneline --stat -p 以上的信息組合
git log --oneline --decorate --graph --all(--decorate代表commit引用信息 --graph代表所有信息 --all代表所有分枝)
git diff 輸出工作區與暫存區的差異
git diff --cached 暫存區跟歷史提交的差異
git diff HEAD~2 -- master.txt 當前工作區,與其它歷史提交的某個版本某個文件的比較
git diff --cached HEAD~2 暫存區與其它歷史區某個版本的比較
git diff HEAD HEAD~2 當前歷史與其它歷史的比較
git diff HEAD HEAD~2 -- master.txt 當前歷史與其它歷史的比較,指定某個文件
git diff --color-words 顯示工作區與暫存區不同的單詞,用顏色區分
git diff --word-diff 顯示工作區與暫存區不同的單詞,標識符區分分
git commit --amend 產生一個新的提交來替換當前的提交
git rebase 有超強的歷史修改能力,可以幫我們維護一個線性的歷史、
git revert HEAD 還原工作區、緩存區到上一個提交的內容,但是指向的是一個新的提交
git reset 撤銷掉一個提交
git reflog 維護了一個HEAD 引用的歷史信息,通常配合git reset 來使用
git reflog -10 輸出近10條的
git reset --hard HEAD@{5} 還原暫存區和工作區 ,分枝引用,和HEAD引用指向當前的commit
git reset --mixed 還原暫存區 ,分枝引用,和HEAD引用指向當前的commit
git reset --soft 分枝引用,和HEAD引用指向當前的commit