日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git 基础知识大全

發布時間:2023/12/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 --version

    Git 的配置文件在用戶主目錄下的一個隱藏文件.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 init
    • 下載倉庫副本 (設定深度版本,只下載最后更新的一次版本)
    git clone <url> (--depth 1)
    • 對當前目錄中修改的文件添加進緩存區,git 開始對文件進行跟蹤
    git add .
    • 提交到本地庫
    git commit -m "message"
    • 查看當前倉庫工作目錄和緩存區狀態,顯示當前進展
    git status # 將暫存區的文件推送至遠程倉庫 # 使用強制推送'-f'是因為一般新建倉庫的時候會生成Readme.md文件,導致需要先git fetch才能推送,但這個readme文件其實是不需要的 # 因為在生成本地項目的時候一般也會生成一個readme文件,所以直接強制推送過去 git push origin master -f

    有時候我們提交完了才發現漏掉了幾個文件沒有添加,或者提交信息寫錯了。 此時,可以運行帶有 --amend 選項的提交命令來重新提交

    git commit --amend

    4. 遠程操作

    # 列出遠程連接 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:master

    5. 刪除操作

    • 從版本庫中刪除文件
    git rm <filename>
    • 從版本庫刪除文件,但是本地不刪除文件
    git rm --cached <filename>
    • 忽略文件

    通過.gitignore文件屏蔽某些不必要上傳的文件

    • 忽略某一類的文件
    *.txt

    6. 檢出操作

    • 查看版本中文件所發生的變動
    git checkout <hashIndex> <filename>

    7. 分支操作

    git中創建新分支,類似于新建一個指針,切換分支就是將HEAD指針指向另一個分支

    Git Flow 分支種類

    master 主干分支

    develop 開發分支

    hotfix 修復分支

    release 準生產分支(預發布分支)

    feature 功能分支

    • 查看當前項目所有的分支
    git branch -v
    • 合并分支
  • 切換分支到master主分支
  • git checkout master
  • 對所需dev分支進行合并
  • git merge dev
    • 刪除未合并分支
    git branch -D <name>
    • 刪除已合并分支
    git branch -d <name>
    • 查看遠程庫信息
    git remote -v

    8. 日志

    • 顯示日志,控制臺出現 : 表示多頁展示,space向下翻頁,B向上翻頁,Q退出
    git log
    • 顯示漂亮日志(單行簡潔日志,全部索引展示)
    git log --pretty=oneline
    • 顯示漂亮日志(截取部分索引展示)
    git log --oneline
    • 顯示HEAD@{N}指針移動步數(截取部分索引展示)
    git reflog
    • 基于reflog顯示的"索引值"進行版本回退
    git reset --hard <hashIndex>
    • 只能回退的兩種辦法^ ~
    git reset --hard HEAD^^^git reset --hard HEAD~3

    hard是硬回退,工作區、暫存區與本地庫都會進行回退(用的最多)
    mixed 暫存區、本地庫會進行回退,工作區不動
    soft 本地庫會進行回退,工作區、暫存區不動

    9. 比對文件

    git 以行為單位做對比,改動時為刪除一行,增加一行
    比對工作區與暫存區內容

    比對單個文件差異 git diff xxx.file比對所有文件差異 git diff

    比對暫存區與本地庫的差異

    git diff HEAD xxx.file

    10. 忽略文件

    有時某些文件必須放于git工作目錄中但是不選擇提交,使用.gitignore文件進行忽略追蹤

    忽略文件的原則是:

  • 忽略操作系統自動生成的文件,比如縮略圖等;
  • 忽略編譯生成的中間文件、可執行文件等,也就是如果一個文件是通過另一個文件自動生成的,那自動生成的文件就沒必要放進版本庫,比如Java編譯產生的.class文件;
  • 忽略你自己的帶有敏感信息的配置文件,比如存放口令的配置文件。
  • # 排除所有.開頭的隱藏文件: .* # 排除所有.class文件: *.class # 排除相應文件夾文件: dictionary# 添加例外規則 !+文件名,不排除.gitignore和App.class: !.gitignore !App.class

    檢查相應忽略文件的規則,便于修改.gitignore文件規則

    git check-ignore -v App.class

    強制添加被忽略的某一個文件

    git add -f App.class

    git再次忽略某個文件后同步github更新,首先,刪除本地緩存。

    git rm -r --cached dir #要刪除的目錄m

    然后,提交修改。

    git push

    11. 多人協同開發

    非本組織團隊對遠程倉庫進行協同工作時需要先 fork 到復制一份到自己的倉庫,再clone下來,編寫完畢后向遠程倉庫發起 pull request請求,由遠程倉庫管理員審核后進行 merge 合并操作

    • 遠程庫抓取(不改變本地庫,需要自己做合并操作)
    git fetch origin master
    • 切換到遠程分支查看
    git checkout origin/master
    • 使本地庫與遠程庫合并
    git merge origin/master
    • 從遠程庫更新本地庫(pull = fetch + merge)
    git fetch git pull

    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 --tags

    13. GitHub

    github1s

    https://gitpod.io/#/xxx

    git clone https://github.com/... git clone https://github.com.cnpmjs.org/...更換鏡像加快速度 --depth 1按深度拿最近一次更新的

    在倉庫中按 。可直接跳轉到VScode中

    總結

    以上是生活随笔為你收集整理的Git 基础知识大全的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。