02、oh my zsh安裝和git 常用命令簡介

    大家好,上一節我們簡單介紹了git,對比了git,gitlab,github之間的關係,最後安裝了git,這節我們學習一些git的基本的命令。另外希望初學者可以跟着博客逐個練習這些命令,這樣可以加深記憶,單純的看過可能很容易會忘掉。
本節內容預告:

  1. 工具oh my zsh 簡介以及安裝
  2. git常用 作用詳解並實踐
  3. 簡單總結

1. oh my zsh簡介以及安裝

習慣linux命令或者蘋果系統的人都比較習慣敲命令來實現一些常規操作。Shell的類型有很多種,linux下默認的是bash,雖然bash的功能已經很強大,但bash的提示功能不夠強大,界面也不夠炫,並非理想工具。
而zsh的功能極其強大,只是配置過於複雜,起初只有極客纔在用。後來,有個窮極無聊的程序員可能是實在看不下去廣大猿友一直只能使用單調的bash, 於是他創建了一個名爲oh-my-zsh的開源項目,oh ny zsh在github上面上有 10w的star。關於zsh的一些詳細介紹,可以網上找找資料,後面也會在使用過程中逐漸深入瞭解,下面直接安裝。正如官網提供的命令,你可以直接在你的linux系統敲命令sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"即可完成安裝,這裏要注意可能因爲你的系統沒有安裝zsh導致安裝失敗,這樣你需要先 安裝zsh yum -y install zsh,因爲這種方式會從git上獲取資源,所以也要確保你的系統是安裝git的,因爲上一節我們已經安裝過git了,所以這個就不重複贅述了。

2.git命令詳解以及實踐

1. git init

     git init 是建立本地版本倉庫的初始化命令,通過git init,git會在你當前文件夾生成一個.git 文件,這個文件裏面保存的是一些代碼版本管理需要的元數據文件等內容,後續我們會深入展開裏面的一些具體文件細節。
    我們先創建一個文件夾用於初始化git倉庫,如下,先創建一個csdn的文件夾,後續我們相關git學習命令都會放在這個文件夾,然後在csdn文件夾裏面創建一個git02目錄,進入git02,執行命令git init
效果如下,
1、git會在當前目錄生成一個.git文件,
2、並且留意到建立本地倉庫後你的文件名前面會顯示你的git當前分支爲master,這是oh my sh帶給我們的便利,不然每次涉及分支操作你需要先自己手動敲命令查看自己當前分支。分支的概念後面會提到,現在只需要知道這件事情就好。
在這裏插入圖片描述

2. git config

初始化倉庫後,你需要簡單的對你的倉庫進行配置。
在這裏插入圖片描述
    可以看到,git config 可以對配置的變量進行好多操作,剛開始我們簡單的配置一下郵箱和用戶名,這通常也是Git新初始化倉庫後需要我們做的事情。
    使用git config --list或者 等價命令git config -l 可以看到當前git有的一些配置。因爲我這個Git倉庫是自己已經做過一些配置的,所以可能和實際初始化倉庫的內容不一樣,不過這不影響後續操作。
在這裏插入圖片描述
    通過git config --global user.namegit config --global user.email可以配置當前git的用戶名和郵箱。這個只是作爲一個標識保存,後面你的提交記錄上面會帶着你的郵箱和用戶名。
    需要留意第二個參數 --global,git config給我們提供了三種配置範圍,細心的話看一下前面的git配置可選參數有簡單說明,global是用戶級別的配置參數,還有一個system是當前系統的配置參數,local是當前git倉庫的配置參數
    如果你配置的是system級別的,那麼這個電腦的所有用戶進來都會看見你的配置信息項,如果你配置的是global級別的,那麼只有當前用戶進來能看的見,但是這個用戶操作的所有git倉庫都會看見同樣的配置參數,如果是local級別的,這個範圍最低,只是針對當前倉庫有效。通常比較常用的是global
在這裏插入圖片描述
    配置好後,通過命令git config -l 可以看到配置是否生效。那麼問題來了,如果我們Git 配置設置錯了,怎麼辦,比如你設置錯名字了,或者郵箱。。。有兩種方式,第一種是刪除原來的配置,命令爲git config --global --unset user.name
在這裏插入圖片描述
第二種是直接覆蓋,如下:
在這裏插入圖片描述
    至此,我們會用git config配置當前git的用戶名和郵箱,並且對一些誤加的變量進行刪除,以及查看當前git配置的一些參數。

3.git status

這個命令很重要,後面我們在操作的時候會經常用到這個參數。
在這裏插入圖片描述
    git status 命令是我們用來看當前git文件所處的狀態的一個命令,可以看到
1、第一次我們敲git status的時候,git提示我們初始化提交,沒有可以提交的東西,可以創建後者複製一個文件到這裏,用git add 命令來跟蹤這個文件狀態。
2、通過linux的echo 命令,追加hello world 到一個新的文件test.txt
3、git status,git 提示有一個沒有被追蹤的文件,是因爲這個文件現在是在工作區,git只會追蹤添加到暫存區的文件,同時,git 提示我們可以通過git add 命令將工作區修改的文件添加到暫存區,另外留意到當前目錄的後面有個 符號x,這是oh my sh 提供給我們的便利,提示你當前文件有沒有保存到版本庫。
4、按照git的提示,我們使用命令git add test.txt,這樣會將文件添加到暫存區,再次使用命令git status,可以看到提示變了,git提示現在有一個等待提交的改變,可以使用git commit -m '提交信息'這樣會將暫存區的改變保存到git的本地版本庫
5、這裏也可以如git的提示使用git rm --cached test.txt,將文件從暫存區移除,這樣你的文件又會回到工作區也就是回到步驟三。
在這裏插入圖片描述
6、使用commit命令後,再次git status,會發現git工作區是乾淨的,而且文件目錄後面的X號不見了。
7、使用命令git log,可以看到剛纔的提交記錄
在這裏插入圖片描述
8、使用 q鍵可以退出查看日誌模式
至此,你本次提交已經成功保存到git版本庫,並且可以看到提交日誌,可以看到上面用到了其他幾個add,commit,log命令,相信已經對這幾個命令有了一個初印象。下面我們對這幾個命令具體詳細闡述一下。

4.git add

    git add的作用就是將你工作目錄的文件添加到暫存區,這個後面git就會追蹤到你的修改變化。
    常用的參數有兩種:第一種是 git add 文件名或者文件夾 ,添加指定目錄的文件, 第二種是git add .這樣會將當前目錄所有未追蹤的文件和已修改的文件都添加到暫存區,具體需求具體對待(這裏實際上gitignore的文件不會添加進去,後面會提到)
    另外git add 命令實際還可以和許多其他參數組合使用,可以通過git add --help,查看具體用法和一些細節,這裏簡單列幾條。
在這裏插入圖片描述

5、git commit

    git commit 的作用是將存到git暫存區的內容提交到git的版本庫。提交到本地版本庫的內容會保留你的提交歷史,正常來首保存到本地版本庫後的內容不會丟失,也可以通過提交id實現一些版本的回退。
    git commit的常用命令是git commit -m '提交信息',這裏需要注意,git默認每次commit必須添加提交信息,這樣可以保留追蹤你的提交歷史,不然單純的提交id不好記憶。時間長了也記不清自己提交內容。
    和git add一樣,git commit也可以跟許多其他參數,具體可以通過git commit --help查看,這裏列一個常用的:

  1. git commit --amend 這個命令作用時修改上次提交的message,演示如下,我們第一次Git log顯示提交信息如下:
    在這裏插入圖片描述
    使用 git commit --amend -m '修改提交信息',後git log效果如下:
    在這裏插入圖片描述
    另外,上面提到git commit git會強制你添加提交信息,如果你沒有加-m 參數直接git commit,git 會跳到一個系統默認編輯器讓你添加提交信息。windows上面可能就是你的記事本或者notepad++。

6、git log

    git log 命令上面已經用過很多次了,這個命令是用來查看你的提交歷史。
git log也可以跟許多參數,我們就常用的幾個做個示範。

  1. git log -p,顯示每次提交內容的差異這裏說一下在git中如果你修改的是同一行的話,git默認你是做了一個將原來那行的內容刪除,並新增一行保存新的內容的操作。所以可以看到git提示我們在以前也就是a的test.txt裏面刪除了內容,在新的b的test.txt 裏面新增了內容,並且下面列出了我刪除的東西,和新增的內容,(實際就是我更改的內容)
    在這裏插入圖片描述
  2. git log -n 僅顯示最近n次的更新,這個比較好理解,剛開始我使用git log,顯示內容如下:
    在這裏插入圖片描述
    我使用git log -1後顯示內容變成了這樣:
    在這裏插入圖片描述
  3. git log --stat,顯示簡要的增改行數統計,如圖,顯示test.txt變更了兩行,一行新增一行刪除
    在這裏插入圖片描述
  4. git log --pretty=oneline,將提交id和提交信息放在一行顯示,這個有時候便於查找某次提交的提交id,不會因爲很多的提交信息看其起來比較亂
    在這裏插入圖片描述
  5. git log --pretty=format:"%h-%an,%ar:%s",將一些提交的信息格式化顯示出來
    在這裏插入圖片描述
    6.git log --graph,會將你的提交記錄在左邊以圖形的形式展示出來,這裏效果不是很明顯是因爲我們是在一個分支上面開發,如果多分支提交的時候,會看到這個命令作用
    在這裏插入圖片描述

3、回顧總結

    本節剛開始安裝了一個對於我們學習git和在linux上面執行命令很有用的一個工具oh my sh,後面又從最開始的git init初始化一個git倉庫,到創建一個文件,修改一個文件,保存到暫存區add,提交到版本庫commit ,這一系列過程實現代碼的版本管理,中間穿插使用了兩個非常常用的命令git status和git log。最後針對中間用到的一些命令逐個簡單說了一下用法。這裏要留意,因爲篇幅和精力的原因,我們上面提到的實際上很片面,只是列了日常開發中比較常用的命令,具體針對每個命令,如果展開了說,都能說很久,所以如果讀者感興趣,可以自己具體學習每個命令。
    正如上面所提到的,通過-- help,可以看到git提供的幫助文檔,用法,可以拼接的參數等等。

    關於git的一些正向流程的命令從文件創建到保存到版本庫,本節已經簡單說明,但是實際還有好多內容

  1. 比如你保存到暫存區或者版本庫的內容提交錯了需要回滾怎麼辦?
  2. 每個項目都依賴本地創建的時候都會有一些自己本地環境相關的內容,這些內容每個人都不一樣是不能提交到版本庫的,這部分內容怎麼處理?
  3. 如果一個項目不同的模塊進度不一樣,同時有好幾個不同上線節點的需求怎麼處理?開發到一起的話,會不會沒上線的內容影響到其他要上線的內容?

這些問題我們留到下一節來解決。

最後,感謝閱讀,如有錯誤,請不吝指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章