【Git】命令行操作
Git 命令行操作
1 本地庫初始化
git init
:初始化本地倉庫
效果
注意:.git目錄中存放的是本地庫相關的子目錄和文件,不要刪除,也不要胡亂修改。
2 設置簽名
形式:
用戶名:tom
Email地址:[email protected]
作用:區分不同開發人員的身份
辨析:這裡設置的簽名和登錄遠程庫(程式碼託管中心)的帳號、密碼沒有任何關係。
命令
- 項目級別/倉庫級別:僅在當前本地庫範圍內有效
git config user.nametom_pro
git config [email protected]
- 資訊保存位置:./.git/config文件
- 系統用戶級別:登錄當前作業系統的用戶範圍
git config --global user.nametom_glb
git config --global [email protected]
- 資訊保存位置:~/.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 [遠程庫地址別名] [遠程分支名]