【Git】命令行操做

Git 命令行操做html

1 本地庫初始化

git init:初始化本地倉庫git

效果
fetch

注意:.git目錄中存放的是本地庫相關的子目錄和文件,不要刪除,也不要胡亂修改。ui

2 設置簽名

形式:操作系統

用戶名:tom
Email地址:goodMorning@atguigu.com

做用:區分不一樣開發人員的身份命令行

辨析:這裏設置的簽名和登陸遠程庫(代碼託管中心)的帳號、密碼沒有任何關係。3d

命令版本控制

  • 項目級別/倉庫級別:僅在當前本地庫範圍內有效
    • git config user.nametom_pro
    • git config user.emailgoodMorning_pro@atguigu.com
    • 信息保存位置:./.git/config文件
  • 系統用戶級別:登陸當前操做系統的用戶範圍
    • git config --global user.nametom_glb
    • git config --global goodMorning_pro@atguigu.com
    • 信息保存位置:~/.gitconfig文件(~表明根目錄)
  • 級別優先級
    • 就近原則:項目級別優先於系統用戶級別,兩者都有時採用項目級別的簽名
    • 若是隻有系統用戶級別的簽名,就以系統用戶級別的簽名爲準
    • 兩者都沒有不容許

3 基本操做

3. 1 狀態查看

git status:查看工做區、暫存區狀態指針

3. 2 添加

git add [filename]:將工做區的「新建/修改」添加到暫存區日誌

  • filename:爲欲添加的文件名,*表明當前目錄的全部文件。

3. 3 提交

git commit -m "commit message" [filename]:將暫存區的內容提交到本地庫

3. 4 查看歷史記錄

git log:查看歷史記錄,顯示完整的歷史記錄信息

多屏顯示控制方式:

  • 空格:向下翻頁
  • b:向上翻頁
  • q:退出

上面這種方法顯示的歷史記錄可能不太好看:咱們能夠採用如下方法進行簡化歷史記錄的顯示:

git log --pretty=oneline:咱們能夠使用此命令讓歷史記錄放在一行上

git log --oneline:縮短了哈希值的顯示,只顯示後面7位

上面的幾種方法只能顯示過去與如今


下面這個命令能夠顯示過去、如今和將來

git reflog:這種方式能夠看到咱們全部的歷史記錄,包括回退前、回退後、過去、如今、未來。

HEAD@{移動到當前版本須要多少步}

3. 5 前進後退

本質:使用git reflog來顯示全部歷史記錄

能夠使用如下方法來移動HEAD指針

基於索引值操做[推薦]

  • git reset --hard [局部索引值]
  • git reset --hard a6ace91

使用^符號:只能後退

  • git reset --hardHEAD^:一個^表示後退一步,n個表示後退n步

使用~符號:只能後退

  • git reset --hardHEAD~n:表示後退n步

3. 6 reset 命令的三個參數對比

本來本地庫、暫存區、工做區三者版本一致:

--soft參數

  • 僅僅在本地庫移動HEAD指針

    這裏能夠看出,咱們的本地庫版本退後了一步,而其餘的都沒改變

--mixed參數

  • 在本地庫移動HEAD指針
  • 重置暫存區(重置,即 後退版本)

--hard參數(這個用的最多)

  • 在本地庫移動HEAD指針
  • 重置暫存區
  • 重置工做區

3. 7 刪除文件並找回

前提:刪除前,文件存在時的狀態提交到了本地庫。

操做:git reset --hard [指針位置]

  • 刪除操做已經提交到本地庫:指針位置指向歷史記錄
  • 刪除操做還沒有提交到本地庫:指針位置使用HEAD

3. 8 比較文件差別

git diff [文件名]:將工做區中的文件和暫存區進行比較

git diff [本地庫中歷史版本] [文件名]:將工做區中的文件和本地庫歷史記錄比較

git diff:不帶文件名比較多個文件

4 分支管理

4. 1 什麼是分支?

在版本控制過程當中,使用多條線同時推動多個任務。

4. 2 分支的好處?

  • 同時並行推動多個功能開發,提升開發效率
  • 各個分支在開發過程當中,若是某一個分支開發失敗,不會對其餘分支有任何影響。失敗的分支刪除從新開始便可。

4. 3 分支操做

git branch [分支名]:建立分支

git branch -v:查看分支

git checkout [分支名]:切換分支

合併分支

  • 第一步:切換到接受修改的分支(被合併,增長新內容)上
    git checkout [被合併分支名]
  • 第二步:執行merge命令
    git merge [有新內容分支名]

解決衝突

  • 衝突的表現

  • 衝突的解決
    • 第一步:編輯文件,刪除特殊符號
    • 第二步:把文件修改到滿意的程度,保存退出
    • 第三步:git add [文件名]
    • 第四步:git commit -m "日誌信息"

      注意:此時commit必定不能帶具體文件名

命令行經常使用操做步驟

狀況一:建立本身的項目

1. 建立遠程庫


2. 建立遠程庫地址別名

git remote -v 查看當前全部遠程地址別名
git remote add [別名] [遠程地址]

3. 推送

git push [別名] [分支名]

推送須要輸入帳號和密碼:

狀況二:克隆別人的項目

1. 克隆遠程倉庫(從無到有)

git clone [遠程地址]

效果

  • 完整的把遠程庫下載到本地
  • 建立 origin 遠程地址別名
  • 初始化本地庫

狀況三:更新已有的項目

1. 拉取(從舊到新)

  • pull=fetch+merge
  • git fetch [遠程庫地址別名] [遠程分支名]
  • git merge [遠程庫地址別名/遠程分支名]
  • git pull [遠程庫地址別名] [遠程分支名]

git可視化操做——git GUI

咱們介紹完了git的命令行操做,可能會有些朋友以爲這種操做實在是太麻煩了,因此接下來咱們介紹一種git的可視化操做。
詳情能夠查看:git GUI可視化操做

相關文章
相關標籤/搜索