- 關于安裝&配置 基礎指令 中文亂碼 别名 回退與反回退 gitignore配置 Git托管服務那些事(本文章帶*号的标題都是重點)
@[toc](【Git 第一步 -- 啟航】)
一、Git基本概念
git是什麼,有什麼用處呢?
使用場景
- 備份
- 代碼還原
- 協同開發
追溯他人編寫代碼時間和編寫人(找人背鍋😜)
(代替雲盤和U盤的存在)
常用管理工具有
SVN 和 CVS 集中式控制版本工具等
Git 為開源分布式版本控制工具(重)
(學了svm學gif的同學建議完全忘掉svm學習,不然會亂)
二、git工作流程
最重要的概念是遠端倉庫和本地倉庫,遠端倉庫可以是github,gitee,giitlab...
三、Git安裝
下載下傳位址: https://git-scm.com/download(傻瓜式安裝,全都預設就行)
安裝後
如果右鍵有
Git GUI Here
和
Git Bash Here
兩個選項就說明安裝的沒太大問題
🎏Git GUI : Git提供的圖像界面工具🎏Git Bash : 提供的指令工具,相當于linux的一個小視窗
以下例子都是在: Git Bash示範,是以需要一點基本的
linux
指令,提前列舉一下:
- Is [- all]檢視目前目錄檔案
- cat [檔案名字]檢視檔案内容
- touch [檔案名字]建立檔案
- vi [檔案名字]vi編輯器為了友善展示效果,也可以用記事本
四、基本配置
打開git bash
- 重要一步:設定使用者名和郵箱位址,因為git要跟蹤是誰送出的,即使是個人開發也要跟蹤,是以一定要配置,不然後面操作會報錯
設定郵箱和使用者名
git config --global user.name "majic"
git config --global user.email ""
檢視使用者名和郵箱
git config --global user.name
git config --global user.email
4.1 解決中文亂碼問題
由于是在window系統,或多或少還是會有一些不相容的問題,解決辦法:
- 右鍵打開git.bash
git config --global core.quotepath false
在${git_home}/etc/bash.bashrc (就是安裝Git的根檔案下的etc檔案)檔案最後加入下面兩行代碼
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
五、建立本地倉庫
建立一個空檔案,這裡命名為test,右鍵打開git.bash
- 執行指令
git init
即可成功初始化倉庫,如下圖
如果看不見這個檔案,設定顯示隐藏檔案就行
六、常用指令
6.1 狀态
- 如圖送出代碼流程中檔案的狀态(工作區指的是除了該目錄下除了
倉庫之外的檔案):.git
- 對于建立的檔案, 則為未跟蹤狀态(untracked),此時git沒有對該檔案進行管理,
- 對于已跟蹤未修改的檔案,此時還沒有送出到倉庫,則為未暫存狀态(unstaged)
在學習GIt的時候,會有一個疑問:為什麼不進行将修改的代碼或添加的檔案從工作區直接送出到倉庫呢?
- 暫存區的用處:可以選擇送出檔案
- 情景一:假設你是開發人員,修改了許多檔案,對全部檔案進行送出,那有沒有想過裡面每個檔案都是實作不同的子產品呢,這一次送出即為一次版本,但是裡面修改了許多檔案,此時當你復原曆史時,你會無所适從不知道哪個版本包含哪些功能實作,
- 情景二:假設要開發子產品B,但是子產品A出現了Bug,那就要先修改送出子產品A的bug版本,再進行子產品B的開發,這樣可以提高曆史的清晰性,
還有一個疑問,為什麼不修改一個檔案,送出一次倉庫呢,那有沒有想過,如果是這樣,會大大增加工作量,修改一個檔案需要送出一次,使用暫存區則在開發好後,選擇需要送出的檔案進行送出.
修改檔案,檔案下的不同狀态
git add 工作區 => 暫存區git commit 暫存區 => 本地倉庫
此外Git中的指令是分大小寫的
6.2 *建立檔案指令
在bash中輸入指令(建立檔案)
touch file01.txt
6.3 *檢視狀态指令
git status
可以看到目前狀态為為跟蹤(對應圖中的檔案建立)
6.4*添加到暫存區指令
git add .
其中. 是通配符,全部檔案添加,也可以指定檔案名
檢視修改狀态
git status
6.5*添加到倉庫指令
他的操作是将緩存區的檔案送往倉庫,是以不需要指定檔案
git commit -m "add file01"
6,6 *檢視日志指令
git log
log 後面其實還有四個可選項
- --all 顯示全部分支
- --pretty=online 将所有顯示為一行
- --abbrev-commit 使得輸出的commitId更簡短( 從十幾位數字變為七八位)
- --graph 以圖的形式顯示
七、别名配置
在項目開發中,如果想實作一個指令,但是代碼很長,那怎麼讓他用較短指令實作呢,我們可以使用别名。
- 打開使用者目錄建立
檔案.bashrc
- 放入代碼(在各種語言都有類似的alias設定别名):
- 代碼:
alias 自定義指令 = '指令'
例子:
#用于輸出git送出日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于輸出目前目錄所有檔案及基本資訊 -al 即-all 檢視所有
alias ll='ls -al'
alias git new_branch = 'git branch -b'
效果: 原本需要一大串代碼現在隻需要幾個字元,是不是比原先的簡潔多了
7.1 vi編輯器
生成一個檔案,并開始編輯(如果編輯不了按
Insert
鍵如:
vi file01.txt
- 編輯結束按
輸入Esc
即可退出編輯。用上述的方法,将建立檔案放置緩存區,再到倉庫,檢視log:wq
八、 *版本回退
隻需要一行代碼即可(commitID 是你的送出記錄,版本是按照時間從上到下)git reset 指令文法格式如下:
git reset [--soft | --mixed | --hard] [HEAD]
菜鳥教程
例子:
git reset --hard commitID
首先通過
clear
清空頁面
分别檢視日志,然後版本回退上面的操作,再看日志,
之前所編輯的文本消失不見,回退成功
九、*撤銷版本回退
在上述我們進行版本回退之後想要撤銷如何操作呢
隻需要找到原來版本的commitID同樣的指令行即可,見圖:
問題:如果之前的commitID 目前指令行沒有怎麼辦呢(比如:clear頁面)
一行代碼即可(檢視參考日志reference log)
git reflog
便可知道上次記錄的commitID(這是因為 git的所有操作都是 被記錄在案的 即使 你是用 --hard 全部檔案删除也可以傳回)
十、*gitignore(取消git跟蹤管理)
我們通過指令
touch .gitignore
建立檔案
.gitignore
,使用
vi
指令編輯
退出(vi編輯,不知道如何退出的,上面講解有說,不要忘了哦)
十一、Git托管服務
即遠端倉庫
常見的托管服務
(全球最大交友平台) Github 開源 (隻支援git管理,網速慢)國内的 碼雲 Gitee (優點,速度快)Gitlab(企業常用,私人)...
11.1 注冊碼雲賬号
注冊并激活碼雲賬号( 注冊頁面位址:
https://gitee.com/signup
)
建立倉庫
生成成功
11.2 配置SSH公鑰
在上傳的時候都需要驗證你的身份,可以時手機号碼驗證等,不過一般常用的使用公鑰SSH
流程:
- 生成公鑰
ssh-keygen -t rsa
不斷回車(不需要配置資訊)如果需要再自己配置
- 擷取公鑰
cat ~/.ssh/id_rsa.pub
其實就是檢視在
.ssh
目錄下的
id_rsa.pub
檔案
- 複制公鑰
- 打開Gitee設定
點選确定,并輸入密碼
11.3 連接配接配置(重要)
- 這裡是碼雲 是以是gitee.com 如果是github 改為github.com即可
ssh -T [email protected]
✨感謝您的閱讀,您的點贊與收藏是我寫作的最大動力!✨