Git 基础知识大全
Git 基礎知識大全
文章目錄
- Git 基礎知識大全
- 1. 原理
- 2. 配置文件
- 3. 基本操作
- 4. 遠程操作
- 5. 刪除操作
- 6. 檢出操作
- 7. 分支操作
- 8. 日志
- 9. 比對文件
- 10. 忽略文件
- 11. 多人協同開發
- 12. 標簽
- 13. GitHub
1. 原理
Git是一個分布式的版本控制系統,最初由Linus Torvalds編寫,用作Linux內核代碼的管理。
git底層采用的是SHA-1校驗,保證提交的正確性,文件內容以及文件、目錄、版本、標簽和提交的關聯,都通過安全的加密哈希校驗算法(SHA1)保護。這可以避免代碼和修改歷史被不小心或者惡意改變,并且保證修改歷史完全可追跡。
git基于多種傳輸協議,為了數據傳輸安全最常用的就是https和ssh,設置ssh密鑰的目的是為了節省輸入用戶名密碼的過程,同時保證傳輸安全,并不是必須設置。
Git不只提取最新版的文件快照,而是把代碼倉庫完整的鏡像下來
Git 保存的不是文件的變化或者差異,而是一系列不同時刻的 快照 形成索引 。如果下次文件的內容未發生變化就會產生指針對上一次文件進行指向,內容發生變化后才會重新保存,稱為快照流,各個版本之間形成的歷史記錄也就是每次快照之間指針指向的父子關系(鏈表形式)
2. 配置文件
# 查看版本 git --versionGit 的配置文件在用戶主目錄下的一個隱藏文件.gitconfig中
通常情況下,每臺計算機上只需要配置一次 Git,當 Git 程序升級時會保留配置信息。 可以在任何時候再次通過運行 git config命令來修改它們。
git config [param] 項目倉庫級別配置
git config --global [param] 當前系統用戶級別配置,配置文件在user文件夾下
param參數如下
user.name "天宇龍騰" user.email tylt6688@gmail.com讓 Git 顯示不同的顏色,會讓命令輸出看起來更醒目
git config --global color.ui true配置命令別名
git config --global alias.st statusgit config --global alias.last 'log -1'cd ~回到用戶目錄下
3. 基本操作
- 初始化 git 倉庫,用于創建空的中央倉庫,初始化.git文件夾及其內容,方便其它開發者 clone ,開發者本身一般不會使用
- 下載倉庫副本 (設定深度版本,只下載最后更新的一次版本)
- 對當前目錄中修改的文件添加進緩存區,git 開始對文件進行跟蹤
- 提交到本地庫
- 查看當前倉庫工作目錄和緩存區狀態,顯示當前進展
有時候我們提交完了才發現漏掉了幾個文件沒有添加,或者提交信息寫錯了。 此時,可以運行帶有 --amend 選項的提交命令來重新提交
git commit --amend4. 遠程操作
# 列出遠程連接 git remote -v # 如果你還沒有克隆現有倉庫,并欲將你的倉庫連接到某個遠程服務器(連接git遠程倉庫) # origin 是遠程倉庫地址的別名,取什么名字都可以,你也可以在 push 時將你喜歡的名字替換origin git remote add origin <url> # 刪除某個遠程連接 git remote rm <name> # 重命名別名 git remote rename <old-name> <new-name>遠程倉庫與本地倉庫這兩個獨立倉庫想要初次建立完畢想要進行合并時,先在本地初始化連接遠程完畢后拉一下遠程庫,并合并一下兩個獨立倉庫的歷史
git pull origin master --allow-unrelated-histories git push origin master:master5. 刪除操作
- 從版本庫中刪除文件
- 從版本庫刪除文件,但是本地不刪除文件
- 忽略文件
通過.gitignore文件屏蔽某些不必要上傳的文件
- 忽略某一類的文件
6. 檢出操作
- 查看版本中文件所發生的變動
7. 分支操作
git中創建新分支,類似于新建一個指針,切換分支就是將HEAD指針指向另一個分支
Git Flow 分支種類
master 主干分支
develop 開發分支
hotfix 修復分支
release 準生產分支(預發布分支)
feature 功能分支
- 查看當前項目所有的分支
- 合并分支
- 刪除未合并分支
- 刪除已合并分支
- 查看遠程庫信息
8. 日志
- 顯示日志,控制臺出現 : 表示多頁展示,space向下翻頁,B向上翻頁,Q退出
- 顯示漂亮日志(單行簡潔日志,全部索引展示)
- 顯示漂亮日志(截取部分索引展示)
- 顯示HEAD@{N}指針移動步數(截取部分索引展示)
- 基于reflog顯示的"索引值"進行版本回退
- 只能回退的兩種辦法^ ~
hard是硬回退,工作區、暫存區與本地庫都會進行回退(用的最多)
mixed 暫存區、本地庫會進行回退,工作區不動
soft 本地庫會進行回退,工作區、暫存區不動
9. 比對文件
git 以行為單位做對比,改動時為刪除一行,增加一行
比對工作區與暫存區內容
比對暫存區與本地庫的差異
git diff HEAD xxx.file10. 忽略文件
有時某些文件必須放于git工作目錄中但是不選擇提交,使用.gitignore文件進行忽略追蹤
忽略文件的原則是:
檢查相應忽略文件的規則,便于修改.gitignore文件規則
git check-ignore -v App.class強制添加被忽略的某一個文件
git add -f App.classgit再次忽略某個文件后同步github更新,首先,刪除本地緩存。
git rm -r --cached dir #要刪除的目錄m然后,提交修改。
git push11. 多人協同開發
非本組織團隊對遠程倉庫進行協同工作時需要先 fork 到復制一份到自己的倉庫,再clone下來,編寫完畢后向遠程倉庫發起 pull request請求,由遠程倉庫管理員審核后進行 merge 合并操作
- 遠程庫抓取(不改變本地庫,需要自己做合并操作)
- 切換到遠程分支查看
- 使本地庫與遠程庫合并
- 從遠程庫更新本地庫(pull = fetch + merge)
12. 標簽
發布一個版本時,我們通常先在版本庫中打一個標簽(tag),這樣,就唯一確定了打標簽時刻的版本。將來無論什么時候,取某個標簽的版本,就是把那個打標簽的時刻的歷史版本取出來。所以,標簽也是版本庫的一個快照。
由于commit號過于繁瑣,所以自定義一個標簽名便于查找,所以,tag就是一個讓人容易記住的有意義的名字,它跟某個commit綁在一起。
# 選擇一個分支 git branchgit checkout master# 打標簽 git tag v1.0 # 對指定的commit id打標簽(使用git log查出) git tag v0.9 fb8b190 # 查詢標簽 git tag # 查看指定標簽信息 git show v0.9# 刪除標簽 git tag -d v0.1# 推送指定標簽到遠程庫 git push origin v1.0 # 一次性推送全部本地標簽 git push origin --tags13. GitHub
github1s
https://gitpod.io/#/xxx
git clone https://github.com/... git clone https://github.com.cnpmjs.org/...更換鏡像加快速度 --depth 1按深度拿最近一次更新的在倉庫中按 。可直接跳轉到VScode中
總結
以上是生活随笔為你收集整理的Git 基础知识大全的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MTK平台基于EV1527的无线接收和发
- 下一篇: aria2c指定下载存储路径的一个问题(