工作中常用的Git操作命令(一)

說明

???? 時間過得真快,一轉眼嗎嘍也是好歹工作幾年了,把這些年平時用的git命令整理記錄一下,分幾個文章,囊括了常用的命令,工作日常很多時候都是使用svn,回到宿舍自己的項目才是git,就問你離不離譜。。

好習慣

???? 首先在提交代碼的時候,任何提交注釋都得標準化,格式統一,這樣別人才看的賞心悅目,下面格式提交說明:

1、feat:???????? 新功能(feature)用于提交新功能。例如:feat: 增加用戶注冊功能

2、fix:?? ? ? ? ? 修復 bug用于提交 bug 修復。例如:fix: 修復登錄頁面崩潰的問題

3、refactor:? 代碼重構(既不是新增功能也不是修復bug的代碼更改)用于提交代碼重構。

???????????????????? 例如:refactor: 重構用戶驗證邏輯

4、perf:??????? 性能優化用于提交提升性能的代碼修改。例如:perf: 優化圖片加載速度

5、chore:???? 雜項(構建過程或輔助工具的變動)用于提交構建過程、輔助工具等相關的內

????????????????? ?? 容修改。例如:chore: 更新依賴庫

6、build:?? ? ? 構建系統或外部依賴項的變更用于提交影響構建系統的更改。例如:build: 升級

???????????????? ? ? webpack到版本5

7、ci:??????? ?? 持續集成配置的變更用于提交CI配置文件和腳本的修改。例如:ci: 修改GitHub

????????????????? ?? Actions配置文件

8、revert:? ?? 回滾用于提交回滾之前的提交.

另外還有其他三個相對來說不太常用的:

1、docs: 文檔變更用于提交僅文檔相關的修改。例如:docs: 更新README文件

2、style: 代碼風格變動(不影響代碼邏輯)用于提交僅格式化、標點符號、空白等不影響代碼運行的變更。例如:style: 刪除多余的空行

3、test: 添加或修改測試用于提交測試相關的內容。例如:test: 增加用戶模塊的單元測試

命令

目錄

說明

好習慣

命令

?項目初次運行的配置

記錄每次更新到倉庫

初始化一個倉庫

從第三方平臺克隆倉庫

跟蹤新文件

查看文件狀態

文件具體修改

創建提交

移除文件

指向正確的遠程倉庫地址

遠程分支管理

當前所在分支與遠程分支對應

更新同步最新提交

合并提交

移除文件

查看提交歷史

撤銷操作

取消暫存的文件

恢復到上次提交的內容

單獨撤銷某個文件變動至上次

從遠程倉庫中獲得數據


?項目初次運行的配置

?? 項目初次運行的時候,得檢查config配置,看看配置變量啥的,設置一下user.name和user.email,1和2都差不多,一個是長選項,一個是短選項,都得掌握

git config --list --show-origin
git config -l
git config --global
git config user.name
git config --global user.name "xxxxxx" 

記錄每次更新到倉庫

?? 暫存區和非暫存區,已跟蹤和未跟蹤文件狀態時序圖

初始化一個倉庫

配置并初始化一個倉庫(repository)、開始或停止跟蹤(track)文件、暫存(stage)或提交(commit)更改,創建一個名為 .git 的子目錄,這個子目錄含有初始化的 Git 倉庫中所有的必須文件,這些文件是 Git 倉庫的骨干

 git init

從第三方平臺克隆倉庫

??????? 基礎就是git clone 加上克隆git地址

 git clone https://github.com/libgit2/libgit2 mylibgit

?????? 如果要克隆指定分支的話, 帶上 -b

 git clone -b uniapp_branch https://gitee.com/charlinheng/github_share.git

跟蹤新文件

????????要將你改或者新添加的文件保存在暫存區,那你得標記這個文件,跟蹤這個文件

# 添加一個
git add README.md

??????? 要添加多個,則

git add README.md README2.md

??????? 添加所有

git add .

??? 要查看是否已經被跟蹤,處于暫存狀態,你可以用git status

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:(use "git restore --staged <file>..." to unstage)new file:   README

???? 只要在 Changes to be committed 這行下面的,就說明是已暫存狀態。 如果此時提交,那么該文件在你運行 git add 時的版本將被留存在后續的歷史記錄中。 你可能會想起之前使用 git init 后就運行了 git add <files> 命令,開始跟蹤當前目錄下的文件。 git add 命令使用文件或目錄的路徑作為參數;如果參數是目錄的路徑,該命令將遞歸地跟蹤該目錄下的所有文件。

注意,如果你不想使用git add . 可以直接使用git commit -a

查看文件狀態

可以用 git status 命令查看哪些文件處于什么狀態。 如果在克隆倉庫后立即使用此命令,會看到類似這樣的輸出:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

git status 命令的輸出十分詳細,但其用語有些繁瑣。 Git 有一個選項可以幫你縮短狀態命令的輸出,這樣可以以簡潔的方式查看更改。 如果你使用 git status -s 命令或 git status --short 命令,你將得到一種格式更為緊湊的輸出。

$ git status -sM README
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
?? LICENSE.txt

新添加的未跟蹤文件前面有 ?? 標記,

新添加到暫存區中的文件前面有 A 標記,

修改過的文件前面有 M 標記。

文件具體修改

如果 git status 命令的輸出對于你來說過于簡略,而你想知道具體修改了什么地方,可以用 git diff 命令,但是此命令比較的是工作目錄中當前文件和暫存區域快照之間的差異。 也就是修改之后還沒有暫存起來的變化內容。

git diff [filename?]

若要查看已暫存的將要添加到下次提交里的內容,
可以用 git diff --staged 命令。 這條命令將比對已暫存文件與最后一次提交的文件差異:

git diff --staged

這里要說一下,使用git自帶的烏龜命令行工具看對比的時候,要怎么退出,使用q鍵退出:在git diff中,按下鍵盤上的”q”鍵即可退出

請注意,git diff 本身只顯示尚未暫存的改動,而不是自上次提交以來所做的所有改動。 所以有時候你一下子暫存了所有更新過的文件,運行 git diff 后卻什么也沒有,就是這個原因。

git diff --cached

git diff --cached 查看已經暫存起來的變化( --staged--cached 是同義詞):

創建提交

這個命令執行后會反饋當前是在哪個分支(master)提交的,本次提交的完整 SHA-1 校驗和是什么(463dc4f),以及在本次提交中,有多少文件修訂過,多少行添加和刪改過,提交時記錄的是放在暫存區域的快照。 任何還未暫存文件的仍然保持已修改狀態,可以在下次提交時納入版本管理。 每一次運行提交操作,都是對你項目作一次快照,以后可以回到這個狀態,或者進行比較。

$ git commit -a -m 'added new benchmarks'
[master 83e38c7] added new benchmarks1 file changed, 5 insertions(+), 0 deletions(-)

普通方式,使用 -m 添加注釋

git commit -m

跳過使用暫存區域


$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified:   CONTRIBUTING.mdno changes added to commit (use "git add" and/or "git commit -a")
$ git commit -a -m 'added new benchmarks'
[master 83e38c7] added new benchmarks1 file changed, 5 insertions(+), 0 deletions(-)

移除文件

要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除(確切地說,是從暫存區域移除),然后提交。

?可以用 git rm 命令完成此項工作,并連帶從工作目錄中刪除指定的文件,這樣以后就不會出現在未跟蹤文件清單中了。

如果只是簡單地從工作目錄中手工刪除文件,運行 git status 時就會在 “Changes not staged for commit” 部分(也就是 未暫存清單)看到:

$ rm PROJECTS.md
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:(use "git add/rm <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)deleted:    PROJECTS.md
no changes added to commit (use "git add" and/or "git commit -a")

如果要刪除之前修改過或已經放到暫存區的文件,則必須使用強制刪除選項 -f(譯注:即 force 的首字母)。 這是一種安全特性,用于防止誤刪尚未添加到快照的數據,這樣的數據不能被 Git 恢復。

如果要刪除之前修改過或已經放到暫存區的文件,則必須使用強制刪除選項 -f(譯注:即 force 的首字母)。 這是一種安全特性,用于防止誤刪尚未添加到快照的數據,這樣的數據不能被 Git 恢復。

git rm -f

另外一種情況是,我們想把文件從 Git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。 換句話說,你想讓文件保留在磁盤,但是并不想讓 Git 繼續跟蹤。 當你忘記添加 .gitignore 文件,不小心把一個很大的日志文件或一堆 .a 這樣的編譯生成文件添加到暫存區時,這一做法尤其有用。 為達到這一目的,使用 --cached 選項:

就是刪除所有,而且在本地不刪除,保留,就是不要讓git追蹤

$ git rm --cached READMEgit rm 命令后面可以列出文件或者目錄的名字,也可以使用 glob 模式。比如:
$ git rm log/\*.log
注意到星號 * 之前的反斜杠 \, 因為 Git 有它自己的文件模式擴展匹配方式,所以我們不用 shell 來幫忙展開。 此命令刪除 log/ 目錄下擴展名為 .log 的所有文件。 類似的比如:git rm \*~
該命令會刪除所有名字以 ~ 結尾的文件。

指向正確的遠程倉庫地址

確保 origin 指向正確的遠程倉庫地址。你可以用以下命令查看配置:

git remote -v

如果 origin 的 URL 有問題,可以使用下面的命令重新設置:

git remote set-url origin <remote-repository-url>

  • 操作類型:
    • (fetch) 表示當你從遠程倉庫拉取(git fetch)時會用到這個 URL。
    • (push) 表示當你推送(git push)到遠程倉庫時會用到這個 URL。

如果你本地看不到遠程分支,用這個更新

git remote add origin

遠程分支管理

確保你要推送的分支存在。如果遠程倉庫中沒有 master 分支,可能需要推送到 main 或其他分支。你可以用以下命令查看遠程分支:

  • git branch:用于查看本地倉庫中的所有分支。執行該命令會顯示一個列表,其中包含當前所有的分支,并且當前所在的分支會用"*"表示。

  • git branch -a:a = all,用于查看本地倉庫和遠程倉庫中的所有分支。執行該命令會顯示一個列表,其中包含本地所有的分支和遠程所有的分支,并且當前所在的分支會用"*"表示。

  • git branch -r:r = remote用于查看遠程倉庫中的所有分支。執行該命令會顯示一個列表,其中包含遠程所有的分支。

git remote add uniapp_branch https://gitee.com/charlinheng/github_share.git

命令 git branch -r 用于列出 遠程分支,也就是說,它顯示的是與遠程倉庫關聯的分支信息。

當前所在分支與遠程分支對應

確保你當前所在的分支與遠程倉庫的分支對應,或者切換到正確的分支:

git checkout <branch-name>

更新同步最新提交

git pull
#如果兩個分支的歷史記錄沒有共同的祖先,仍然進行合并。在正常情況下,Git 會拒絕合并兩個沒有公共祖先的分支,以避免潛在的沖突或問題。使用--allow-unrelated-histories這個選項可以強制 Git 進行合并,通常用在你正在合并兩個完全不同歷史的倉庫或分支時。
git pull master master --allow-unrelated-histories

合并提交

git merge

?#將兩個分支的更改合并在一起。它會將另一個分支的所有更改整合到當前分支,--allow-unrelated-histories:這個選項告訴 Git 即使這兩個分支的歷史沒有共同的祖先,也要強制進行合并。在沒有這個選項的情況下,Git 會阻止合并兩個完全沒有共同歷史的分支,以避免潛在的沖突或不一致性。


git merge master master --allow-unrelated-histories

移除文件

不像其它的 VCS 系統,Git 并不顯式跟蹤文件移動操作。 如果在 Git 中重命名了某個文件,倉庫中存儲的元數據并不會體現出這是一次改名操作。?

$ git mv file_from file_to

其實,運行 git mv 就相當于運行了下面三條命令:

$ mv README.md README
$ git rm README.md
$ git add README

。不過在使用其他工具重命名文件時,記得在提交前 git rm 刪除舊文件名,再 git add 添加新文件名。

查看提交歷史

$ git log

不傳入任何參數的默認情況下,git log 會按時間先后順序列出所有的提交,最近的更新排在最上面。

git log -p

其中一個比較有用的選項是 -p--patch ,它會顯示每次提交所引入的差異(按 補丁 的格式輸出)。 你也可以限制顯示的日志條目數量,例如使用 -2 選項來只顯示最近的兩次提交:

git log --stat

你也可以為 git log 附帶一系列的總結性選項。 比如你想看到每次提交的簡略統計信息,可以使用 --stat 選項:

git log --pretty oneline|fuller

這個選項可以使用不同于默認格式的方式展示提交歷史。

常用的就是oneline | fuller

git log --pretty=format

最有意思的是 format ,可以定制記錄的顯示格式。 這樣的輸出對后期提取分析格外有用——因為你知道輸出的格式不會隨著 Git 的更新而發生改變:

git log --pretty=format:"%h - %an, %ar : %s"
ca82a6d - Scott Chacon, 6 years ago : changed the version number
085bb3b - Scott Chacon, 6 years ago : removed unnecessary test
a11bef0 - Scott Chacon, 6 years ago : first commit

git log --pretty=format 常用的選項 列出了 format 接受的常用格式占位符的寫法及其代表的意義。?

選項說明
%H提交的完整哈希值
%h提交的簡寫哈希值
%T樹的完整哈希值
%t樹的簡寫哈希值
%P父提交的完整哈希值
%p父提交的簡寫哈希值
%an作者名字
%ae作者的電子郵件地址
%ad作者修訂日期(可以用 --date=選項 來定制格式)
%ar作者修訂日期,按多久以前的方式顯示
%cn提交者的名字
%ce提交者的電子郵件地址
%cd提交日期
%cr提交日期(距今多長時間)
%s提交說明

git log --graph

這種為展示圖表模式

commit b9dd7ef50ea004ffd22cc228089cb05d05164971
| Author: hecheng <144***0705@qq.com>
| Date:   Thu Nov 28 15:16:46 2024 +0800
|
|     remove com name from class info
|
*   commit 601e09de5318c38ff7189065eebb8b601146566c
|\  Merge: 67daed7 0a08959
| | Author: hecheng <144***0705@qq.com>
| | Date:   Thu Nov 28 15:08:20 2024 +0800
| |
| |     solve merge
| |
| * commit 0a08959307cb241af9dc2a18432c4489b5975cc4
| | Author: CharLinHeng <144***0705@qq.com>
| | Date:   Mon Nov 25 07:33:07 2024 +0000
| |
| |     add LICENSE.
| |
| |     Signed-off-by: CharLinHeng <144***0705@qq.com>
| |
| * commit 2aa519dd1a4f4d41eef9e72d815b389cfe1da027 (master/develop)
|   Author: CharLinHeng <144***0705@qq.com>
|   Date:   Mon Nov 25 07:32:42 2024 +0000
|
|       Initial commit
|
* commit 67daed7ab58ac71a5fc01e098f01dd00d0640d51
| Author: hecheng <144***0705@qq.com>
| Date:   Thu Nov 28 15:01:43 2024 +0800
|
|     test upload
|

撤銷操作

在任何一個階段,你都有可能想要撤消某些操作。 這里,我們將會學習幾個撤消你所做修改的基本工具。 注意,有些撤消操作是不可逆的。 這是在使用 Git 的過程中,會因為操作失誤而導致之前的工作丟失的少有的幾個地方之一。

git commit --amend

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

例如,你提交后發現忘記了暫存某些需要的修改,可以像下面這樣操作:

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
-- 修正的意思

最終你只會有一個提交——第二次提交將代替第一次提交的結果。

Note

當你在修補最后的提交時,與其說是修復舊提交,倒不如說是完全用一個 新的提交 替換舊的提交, 理解這一點非常重要。從效果上來說,就像是舊有的提交從未存在過一樣,它并不會出現在倉庫的歷史中。

修補提交最明顯的價值是可以稍微改進你最后的提交,而不會讓“啊,忘了添加一個文件”或者 “小修補,修正筆誤”這種提交信息弄亂你的倉庫歷史。

取消暫存的文件

git reset HEAD^ <file-name>

你commmit 了,但是想取消,就用這個,取消單個文件

git reset --hard

丟棄所有未提交的修改,還原最新代碼

恢復到上次提交的內容

git stash

通過git stash ---- 通常用這種方法

git stash
git pull
git stash pop

通過git stash將工作區恢復到上次提交的內容,同時備份本地所做的修改,之后就可以正常git pull了,git pull完成后,執行git stash pop將之前本地做的修改應用到當前工作區。

git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容保存到Git棧中。

git stash pop: 從Git棧中讀取最近一次保存的內容,恢復工作區的相關內容。由于可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容并恢復。

git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。

git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。
3-2、放棄本地修改的改法

這種方法會丟棄本地修改的代碼,而且不可找回,通常不建議使用這種方式。
?

單獨撤銷某個文件變動至上次

單獨撤銷某個文件的變動,回到上次

git restore xxxx.js

這個跟stash差不多,stash是回滾所有到上次

stash是所有文件

restore是單個文件

從遠程倉庫中獲得數據

git fetch 

例子如下: ??????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87123.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2.2.5 Windows系統日志管理

文章目錄 一、試題及考試說明二、操作步驟1. 在計算機策略中&#xff0c;啟用安裝程序的日志記錄&#xff0c;并且配置日志大小最大10M&#xff0c;日志存儲位置為D:\kaoshi_3\2.2.5\&#xff1b;2. 查詢安全日志中登錄失敗的日志信息&#xff0c;并導出保存在D:\kaoshi_3\2.2.…

AiPy實戰(7):一鍵生成天氣組件,解放UI設計的雙手

在傳統 UI 開發流程中&#xff0c;界面設計與實現往往是一項高度依賴人工投入的系統性工作。從頁面布局架構搭建、圖標元素精確定位&#xff0c;到響應式設計適配&#xff0c;僅基礎樣式表&#xff08;CSS&#xff09;的編寫就可能涉及數十行甚至上百行代碼。? 隨著智能開發工…

解讀32頁大數據中心運營管理整體規劃方案【附全文閱讀】

該文檔為大數據中心運營管理整體規劃方案&#xff0c;聚焦于構建高效規范的運營管理體系。方案提出以 “敏前臺、穩中臺、強后臺” 為框架&#xff0c;構建覆蓋全角色、全過程、全周期、全要素的一體化 IT 運營管控體系&#xff0c;采用 “11N” 運營模式&#xff0c;明確業主、…

Pyhton-EXCEL與Mysql數據對比

該段代碼主要實現從數據庫和 Excel 文件中讀取數據&#xff0c;并對兩者進行字段匹配&#xff0c;最終找出 Excel 中未匹配到的數據庫記錄。功能如下&#xff1a; [sqlSelect()]&#xff1a;連接 MySQL 數據庫并查詢比價單及其商品信息。[BiJiaDaoChu()]&#xff1a;調用外部 …

InnoDB索引

1、索引的建立 / 數據的存儲 一條條數據存儲到頁中后&#xff0c;各個數據頁組成了一個雙向鏈表&#xff0c;而每個數據頁中的記錄會按照主鍵值從小到大的順序組成一個單向鏈表。此時&#xff0c;如果我想根據主鍵值查詢一條記錄&#xff0c;只能從第一個數據頁開始一個頁一個頁…

[考研408數據結構]王道大題暑假自用復習記錄(每日更新...)

DAY1 2025年6月29日 雨轉晴&#x1f327;&#x1f324; 第二章 線性表 2.2線性表的順序表示 1、從順序表中刪除具有最小值的元素&#xff08;假設唯一&#xff09;并由函數返回被刪元素的值。空出的位置由最后一個元素填補&#xff0c;若順序表為空&#xff0c;則顯示出錯信…

vue2 el-select下拉選擇框 點擊其他位置或者彈窗關閉下拉框/點擊取消時,下拉框變成之前的值

1.elSelect點擊空白處無法收起下拉框&#xff08;失去焦點并隱藏&#xff09; // 定義指令 directives: {clickOutside: {bind: function (el, binding, vnode) {el.clickOutsideEvent function (event) { // here I check that click was outside the el and his childrensif…

MYSQL-JAVAweb1

1.登錄 在黑框中輸入 net start mysql // 啟動mysql服務 net stop mysql // 停止mysql服務1.MySQL數據模型 關系型數據庫&#xff1a; 關系型數據庫是建立在關系模型基礎上的數據庫&#xff0c;簡單說&#xff0c;關系型數據庫是由多張能互相連接的 二維表 組成的數據庫 如…

將POD指定具體機器上運行

在Kubernetes中&#xff0c;你可以通過多種方式將Pod調度到指定的節點&#xff08;機器&#xff09;上運行。以下是幾種常用的方法及其適用場景&#xff1a; 1. NodeSelector&#xff08;簡單標簽匹配&#xff09; 通過標簽選擇器將Pod綁定到具有特定標簽的節點。 步驟 為目…

eNSP實驗一:IPv4編址及IPv4路由基礎

一、實驗目的&#xff1a; 配置各路由器上的物理接口的IP地址并實現互聯互通配置各路由器的 Loopback 的IP地址并實現互聯互通&#xff08;包括備份路由&#xff0c;默認路由&#xff09;圖中三個路由器型號為 AR3620。 二、配置物理接口ip 基礎配置 設備命名<Huawei>…

基于自然語言處理(NLP)的Twitter情感分析系統

本課題致力于構建一個基于自然語言處理&#xff08;NLP&#xff09;與機器學習技術的Twitter情感分析系統&#xff0c;旨在自動識別用戶推文中的主觀情緒傾向&#xff0c;如正面、負面或中性。研究過程中將對海量Twitter文本數據進行預處理&#xff0c;包括去除噪聲、分詞、詞性…

H.264中片數據分割(Slice Data Partitioning)介紹

H.264中**片數據分割&#xff08;Slice Data Partitioning&#xff09;**的解碼機制。讓我為您詳細解析&#xff1a; 1. 片數據&#xff08;Slice Data Partitioning&#xff09;分割的概念 片數據分割是H.264中的一種錯誤恢復機制&#xff0c;通過將片數據分成不同的部分&am…

muduo

好的&#xff0c;我們來深入剖析陳碩老師開發的著名C網絡庫——muduo。它以“簡單、高效、易用”著稱&#xff0c;是學習Linux C高性能網絡編程的絕佳范本。我會盡量詳細、通俗地講解其核心思想、關鍵組件、源碼結構和工作原理。 核心思想&#xff1a;Reactor 模式 (Non-block…

將目錄下所有圖像中非0像素值改為1或者255

圖像二值化處理技術大綱 目標與背景 解釋圖像二值化的意義,分析將非零像素值統一調整為1或255的應用場景(如簡化數據、增強特征、適配模型輸入等)。 核心方法概述 列舉常見圖像格式(如PNG、JPEG)的像素值范圍,說明非零像素的定義(RGB或灰度圖像中的非黑像素)。 方…

Reactor ConnectableFlux支持多訂閱者

在 Reactor 中&#xff0c;ConnectableFlux 是一種用于處理響應式流的機制&#xff0c;它允許你控制何時開始訂閱和數據生成。通常情況下&#xff0c;訂閱者&#xff08;subscriber&#xff09;在訂閱時會立即開始接收數據&#xff0c;但有時你可能希望多個訂閱者“會面”&…

vite + vue 項目下使用 tailwindcss

版本 node: > 18.0.0 vue: 3.5.13 vite: 6.3.1 tailwindcss: 4.1.6 tailwindcss/vite: 4.1.6 tailwindcss ? 細粒度類庫 提供數千個原子級CSS類&#xff08;如 text-center、bg-blue-500、p-4&#xff09;&#x1f9e9; 組合式開發 通過類名組合構建完全自定義的UI&#x…

Hibernate中save與saveOrUpdate的差異解析

在Hibernate中&#xff0c;save()和saveOrUpdate()都是用于持久化對象的方法&#xff0c;但它們的適用場景和行為有顯著差異&#xff1a; 1. save()方法 核心行為&#xff1a; 僅適用于瞬時態&#xff08;Transient&#xff09;對象&#xff08;即新創建、未與Session關聯的對象…

香橙派3B學習筆記14:deb 打包程序_解包前后腳本運行

本文學習如何用deb打包的方式打包自己需要調用系統庫的程序。 然后實現deb解包前后的腳本運行。 目錄 承接上文&#xff1a; 刪除上文遺留的.so文件&#xff1a; 終止ledlight進程&#xff1a; 目標解釋&#xff1a; 創建項目結構&#xff1a; 創建control文件&#xff1a; 創…

nanoGPT復現——prepare拆解(自己構建詞表 VS tiktoken)

在nanoGPT的data文件夾有兩個很相似的文件夾結構&#xff1a;shakespeare和shakespeare-char&#xff0c;這兩種都是對shakespeare數據集的處理&#xff0c;但是shakespeare使用的是tiktoken對文字進行編碼&#xff0c;另一個則是使用自己構建的詞表 一、shakespeare-char&…

macos 安裝 xcode

在 macOS 上安裝 Xcode&#xff08;或者 Xcode Command Line Tools&#xff09;的方法如下&#xff1a; 1. 安裝 Xcode Command Line Tools&#xff08;輕量級&#xff0c;滿足大部分編譯需求&#xff09; 終端命令&#xff1a; xcode-select --install會彈出安裝提示&#x…