1. 程式人生 > >關於git的一些常用命令

關於git的一些常用命令

git安裝後基本資訊配置

  1. 設定使用者名稱:git config --global user.name "xxxx"

  2. 設定使用者名稱郵箱:git config --global user.email "xxxx"

  3. 檢視設定資訊:git config --list
    這裡寫圖片描述
    注:1.直接輸入 git config --global user.namegit config --global user.email 後回車也可以檢視name和email的資訊;
      2.git config --global:表示這臺機器上所有的git倉庫都會使用這個配置,當然,也可以對某個倉庫指定的不同的使用者名稱和郵箱。

常用命令

以新建專案shopping為例:

1. git init

  • git init:進入到shopping專案的目錄下,建立本地倉庫
    這裡寫圖片描述
    建立完成後會在根目錄下生產一個隱藏的.git資料夾,用來記錄所有本地的git操作
    這裡寫圖片描述

2. git add

  • git add:把想要提交的程式碼先新增到暫存區中
    在src目錄的com.example.shopping包下有兩個類:Food.java 和 Book.java
    這裡寫圖片描述
    • 如果想新增 Food.java 這單個檔案,則輸入命令:
      這裡寫圖片描述
    • 如果要新增某個目錄 buy ,則輸入命令:
      這裡寫圖片描述
    • 一個一個的添加當然很麻煩,在 add 後面加一個小點兒,就能新增所有的檔案了:
      這裡寫圖片描述

3. git commit -m "輸入提交資訊"

  • git commit -m "輸入提交資訊":將 add 後的檔案提交到倉庫中去
  • -m 引數用來加上提交的描述資訊,沒有描述資訊的提交是不合規則的。
    這裡寫圖片描述

4.git status

  • git status:檢視自上一次提交後文件的修改情況
    這裡寫圖片描述
    可以看到 Food.java 已經發生了改變

5. git diff

  • git diff:檢視所有檔案的變更內容
    這裡寫圖片描述
  • 可以在git diff後面加想要檢視的改變檔案的內容,例如,只想看前面改變的 Food.java 的內容,可以用命令:git diff src/com/example/shopping/Food.java

    這裡寫圖片描述
    其中,減號表示刪除的部分,加號表示新新增的部分,可以看出,刪除了j變數,增加了k變數和一條print輸出語句。

6. git checkout

  • git checkout src/com/example/shopping/Food.java:撤銷修改
    這裡寫圖片描述
  • 只要程式碼還未提交,所有修改的內容都是可以撤銷的。執行了上述命令後,Food.java 檔案的一切修改都會被撤銷到上一次提交後的狀態。之後再用status命令檢視,可以看到當前專案中已經沒有任何可提交的狀態了。但是,git checkout 只適用於還沒有執行過 add 命令的檔案,如果某個檔案已經被新增過了,就不能再撤銷其更改的內容。
    這裡寫圖片描述

7. git reset

  • git reset:取消已被新增(add)的檔案
    這裡寫圖片描述
  • 可以發現對 Food.java 執行 reset 命令,然後用 status 命令檢視,Food.java 重新變回了未新增狀態。因此,如果要撤銷已新增的檔案,可以先使用 reset 命令,再進行 checkout 命令。
  • git reset --hard commitedId :回滾,回到歷史提交記錄中的某個版本,commitedId 是提交版本的id號

8. git log

  • git log:檢視歷史提交資訊
    這裡寫圖片描述
  • 若只想檢視其中一條記錄,可以在 git log 命令後面指定某條記錄的id,並加上 -1,表示只想看到一行記錄,例如只檢視第三條記錄:git log f4fa045aa34164aa09ecc2d8f976cad8721b3215 -1
  • 若想檢視這條記錄具體修改了什麼內容,可以再在命令後面加上 -p 引數:git log f4fa045aa34164aa09ecc2d8f976cad8721b3215 -1 -p

9. git branch

  • git branch:檢視當前的版本庫中有哪些分支
    這裡寫圖片描述
  • 因為shopping專案還沒有建立過任何分支,所有當前只有一個 master 分支,也就是專案存放到倉庫中必有的一條主分支。

10. git branch dev

  • git branch dev:建立分支
  • 在branch命令後面寫上要建立分支的名字,可以建立一個新的分支,例如,下面建立一個名為 dev 的分支,再用 branch 命令檢視所有分支情況:
    這裡寫圖片描述
    其中,master 分支前面的 * 表示當前我們的程式碼是停留在 master 分支上的,也即是,當前我們是在 master 分支上開發專案的

11. git checkout dev

  • git checkout dev:切換分支到剛剛新建的 dev 分支上
    這裡寫圖片描述
  • 可以看到,已經把程式碼切換到 dev 分支上去了。其中,在 dev 分支上修改並提交的程式碼不會影響到 master 分支,同樣,在 master 分支上修改並提交的程式碼也不會影響到 dev 分支。
  • 因此,如果在 dev 分支上修復了原來 master 上的一個bug,在 master 分支上這個bug依然是存在的,這時,將修改的程式碼一行行復制到 master 分支並不太好,此時,可以用 merge 命令來完成合並操作。

12. git merge dev

  • git merge dev:合併程式碼
  • git checkout master
    git merge dev
    使用這兩行命令,就可以將 dev 分支上修改並提交的內容合併到 master 分支上了。最後,當不再需要 dev 分支時,就可以將 dev 分支刪除掉了。

13. git branch -d dev

  • git branch -d dev:刪除 dev 分支
    這裡寫圖片描述

14. git clone [遠端庫地址]

15. git push origin master

  • git push origin master:將本地修改的內容同步到遠端庫上去
  • 其中,origin 指定的是遠端庫的 git 地址,master 部分指定的是同步到哪一個分支上,這句命令就表示:將原生代碼同步到 https://gitee.com/zoucaoxin/spring.git 這個地址所在庫的 master 分支上去。如果要將修改的程式碼提交到另一個 dev2 分支上去,則可輸入命令:git push origin dev2

16. git fetch origin master

  • git fetch origin master:將遠端庫上的修改內容同步到本地
  • 執行 fecth 命令後,會將遠端庫上的程式碼同步到本地,但同步下來的程式碼並不會合併到任何分支上去,而是會存放到 origin/master 分支上,這時,可以再呼叫 git merge origin/master 命令將 origin/master 分支上的修改合併到主分支上去。

17. git pull origin master

  • git pull origin master:從遠端庫上拉取最新程式碼併合併到本地
  • 這句命令相當於將 fetch 和 merge 命令合在一起執行。

18. git branch -r

  • git branch -r:檢視遠端分支

19.git branch -m [原來的分支名] [想修改的分支名]

  • git branch -m [old_branch_name] [new_branch_name] :修改本地分支名

20. git branch -r -d [遠端分支名]

  • git branch -r -d [origin/branch-name]:刪除遠端分支
  • 如果要修改遠端分支的名字,可以先修改本地分支名,再刪除遠端分支,最後推送本地分支。

本地建立庫並提交到遠端庫上

 本地建立庫並提交到遠端庫上步驟: 

  1. git init:建立本地倉庫;
  2. git pull origin master:合併程式碼;
  3. git add .:將檔案新增到倉庫中去;
  4. git commit -m "提交資訊":將檔案從暫存區提交到倉庫;
  5. git push -u origin master:第一次提交到遠端庫時要加 -u ,以後再往遠端庫提交時,直接使用命令:git push origin master 即可。

    一些問題:
    1
    這裡寫圖片描述
    多半是遠端庫中的README.md檔案沒有新增到本地庫中,通過命令 git pull –rebase origin master 合併到遠端庫中的README.md檔案;
    2.
    這裡寫圖片描述
    Windows中的換行符為CRLF,而在Linux下的換行符為LF,所以在執行 add . 時出現如上提示,通過命令 git config –global core autocrlf false (禁用自動轉換)可解決;