Git和GitHub

文章目錄

  • 1.Git介紹
  • 2. 常用命令
  • 3. Git分支操作
  • 4. Git團隊協作機制
  • 5. GitHub操作
  • 6. IDEA集成Git
  • 7.IDEA操作GitHub
  • 8. Gitee

1.Git介紹

Git免費的開源的分布式版本控制系統,可以快速高效從小到大的各種項目

Git易于學習,占地面積小,性能快。它具有廉價的本地庫,方便的暫存區域和多個工作流分支等特性。

什么是版本控制? 版本控制是一種記錄文件內容變化,以便將來查閱特定版本修訂情況的系統。

為什么需要版本控制? 個人開發過渡到團隊協作。

版本控制工具

  • 集中式版本控制工具

    CVS,SVN…,都有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這臺服務器,取出最新的文件或者提交更新。優點:方便管理權限,維護方便 缺點:中央服務器的單點故障。

    本庫是集中的存放于中央服務器的。干活的時候,先要去中央服務器里領取最新的版本,然后在開始干活。干完活在將自己的版本上傳到中央服務器。

  • 分布式版本控制工具

    Git,Mercurial…,客戶端提取是把代碼倉庫完整地鏡像下來(本地庫)。這樣任何一處協同工作用的文件發生故障,事后都可以用其他客戶端的本地倉庫進行恢復。

    服務器斷網的情況下也可以進行開發(因為版本控制是在本地進行的),每個客戶端保存的也都是整個完整的項目(包含歷史記錄,更加安全)

分布式每個人的電腦上都可以直接拷貝完整的代碼版本。而集中式只能拷貝自己需要的。

分布式的服務器掛掉之后,不會影響工作。而集中式的服務器掛掉之后,根本就沒法進行工作。

Git和代碼托管中心(遠程庫):

  1. 局域網 GitLab
  2. 互聯網 GitHub,Gitee

流程:工作區(寫代碼) --git add–> 暫存區(臨時存儲) – git commit–> 本地庫(歷史版本) --git push–> 遠程庫(GitHub)

Git安裝:

  1. 高速下載:https://npm.taobao.org/mirrors/git-for-windows/

  2. next -> 選擇安裝目錄 -> 選項配置(默認) next -> next -> 為git選擇一個默認編輯器,一般選擇Vim(默認)

    -> Let Git decide(默認) -> 是否修改環境變量,選第一個Use Git from Git Bash only

    -> 選擇后臺客戶端連接協議Use the OpenSSL Library(默認) -> 配置行末換行符Checkout Win…(默認)

    -> 選擇Git終端類型Use MinTTY(默認) -> 選擇pull合并的模式Default(默認)

    -> 選擇憑據管理器Git Credential…(默認) -> 其他配置(默認都勾選) -> 實驗室功能(不勾選,不成熟) -> install


2. 常用命令

命令作用
git config --global user.name 用戶名設置用戶簽名
git config --global user.email 郵箱設置用戶簽名
git init初始化本地庫
git status查看本地庫狀態
git add 文件名添加到暫存區
git commit -m “日志信息” 文件名提交到本地庫
git reflog查看歷史記錄
git reset --hard 版本號版本穿梭
  1. 首次安裝,要設置一下簽名(區分不同操作者),否則提交代碼報錯,這個和登錄GiHub沒有任何關系。

    C:\Users\[user]\.gitconfig 文件里可以看到配置的

  2. 初始化本地庫

    進入D:\Learning\Git-Space\git-demo項目文件夾,執行git init,會生成一個.git隱藏的文件夾

  3. 查看本地庫狀態git status

    • 沒有任何東西:On branch master,在master分支中。No commits yet,沒有提交過任何東西。nothing to commit,沒有什么東西需要提交。

    • 新增hello.txt文件:多了一行 Untracked files…hello.txt(紅色的),未被追蹤的文件,只是存在于工作區。

  4. 添加到暫存區(Git追蹤文件的過程)

    git add hello.txt 有個警告,Git幫我們轉換了末尾換行符

    再次查看本地庫狀態,Changes to be committed…new file: hello.txt(綠色的),git追蹤到了這個文件,文件只是存在于暫存區(可以刪掉git rm --cached hello.txt,只是暫存區刪掉,工作區還是有的)

  5. 提交到本地庫,將暫存區的文件提交到本地庫,形成自己的一個歷史版本

    git commit -m "first commit" hello.text

    [master (root-commit) 20eda81] first commit ,20eda81就是版本號,后面是描述。
    1 file changed, 5 insertions(+),一個文件被改變,5行內容被插入。create mode 100644 hello.txt。

    再次查看本地庫狀態,No commits yet沒有了,只有On branch master,nothing to commit, working tree clean 沒有東西需要再次提交,工作區是干凈的

  6. 查看版本信息

    git reflog 20eda81 (HEAD -> master) HEAD@{0}: commit (initial): first commit

    git log 更詳細點,可以看作者,提交時間等,完整版的版本號。

  7. 修改文件,在文件第一行加了幾個2

    • 再次查看本地庫狀態,Changes not staged for commit…modified:hello.txt(紅色的) ,文件被修改了,而且還沒有被添加到暫存區

    • 添加暫存區git add hello.txt,再次查看本地庫狀態,Changes to be committed:modified:hello.txt(綠色的)

    • 提交本地庫git commit -m "second commit" hello.txt,[master b205e79] second commit, b205e79第二次提交的版本號。1 file changed, 1 insertion(+),1 deletion(-)。 一個文件被改變,一行內容被插入,一行內容被刪除。(Git是以行為單位維護的,先刪除原先的行再插入新的!!),再次查看本地庫狀態,On branch master,nothing to commit, working tree clean和第一次提交的顯示一樣,又是干凈的了。

    • 查看版本信息git reflog 就會有兩個版本信息了

      b205e79 (HEAD -> master) HEAD@{0}: commit: second commit,head當前指針指向第二個版本,cat hello.txt查看文件是有修改后的。20eda81 HEAD@{1}: commit (initial): first commit。

  8. 歷史版本?

    git reflog git log

    • 查看日志

      b205e79 (HEAD -> master) HEAD@{0}: commit: second commit 當前指針在第二個版本

      20eda81 HEAD@{1}: commit (initial): first commit

    • 版本穿越(例如我感覺文件里面添加的2不太好,要回到一號版本去),git reset --hard 20eda81

      HEAD is now at 20eda81 first commit

    • 查看日志

      20eda81 (HEAD -> master) HEAD@{0}: reset: moving to 20eda81 這里也生成了一個日志

      b205e79 HEAD@{1}: commit: second commit

      20eda81 (HEAD -> master) HEAD@{2}: commit (initial): first commit 當前指針在第一個版本

    • 查看文件cat hello.ext

      文件中第二次在第一行添加的2不見了,回到了第一次的版本,即工作區的文件回到了第一次版本的內容!

    底層不是復制保存了很多副本,而是在本地庫中保持了很多日志信息版本信息,調用HEAD指針指向不用的版本


3. Git分支操作

分支?:在版本控制過程中,同時推進多個任務,為每個任務,我們就可以創建每個任務的單獨分支。使用分支意味著程序員可以把自己的工作從開發主線上分離開來,開發自己分支的時候,不會影響主線分支的運行。對于初學者而言,分支可以簡單理解為副本,一個分支就是 一個單獨的副本。(分支底層其實也是指針的引用)

好處:

  • 同時并行推進多個功能開發,提高開發效率。
  • 各個分支在開發過程中,如果某一個分支開發失敗,不會對其他分支有任何影響。失敗的分支刪除重新開始即可。

分支的命令:

命令名稱作用
git branch 分支名創建分支
git branch -v查看分支
git checkout 分支名切換分支
git merge 分支名把指定的分支合并到當前分支上
git branch -d 分支名刪除分支
  1. 查看分支 git branch -v

    *master(綠色) 20eda81 first commit

  2. 創建分支,例如 git branch hot-fix 增加熱修分支

    再次查看分支:hot-fix 20eda81 first commit,*master(綠色) 20eda81 first commit 兩個了!

  3. 切換分支 git checkout hot-fix (輸入命令的上一行最后面master變成了hot-fix)

    再次查看分支:*hot-fix(綠色) 20eda81 first commit,master 20eda81 first commit

    在hot-fix分支下修改文件,在第二行加幾個3,修改后一樣要進行git add hello.txtgit commit -m "hot-fix first commit" hello.txt 。查看版本信息 :af41acb (HEAD -> hot-fix) HEAD@{0}: commit: hot-fix first commit

    如果再切換到master分支,則在hot-fix分支修改的內容,在master分支工作區是看不到的。

  4. 合并分支?

    • 正常合并

      切換到master分支,執行git merge hot-fix 把指定的分支合并到當前分支上!!

      Updating 20eda81…af41acb Fast-forward

      hello.txt | 2 ± 1 file changed, 1 insertion(+), 1 deletion(-),一行插入,一行刪除,則修改了一行。

      這時master分支的工作區文件能看到在hot-fix分支在第二行添加的3的信息了!!

    • 沖突合并

      • 沖突的原因:合并分支時,兩個分支在同一個文件的同一個位置有兩套完全不同的修改。Git 無法替我們決定使用哪一個。必須人為決定新代碼內容。

      • 模擬沖突:在master分支hello.txt第三行添加4 add commit,在hot-fix分支hello.txt第三行添加5 add commit

      • 切回master分支合并:執行git merge hot-fix,就會沖突了,看下面的日志:

        Auto-merging hello.txt CONFLICT (content): Merge conflict in hello.txt (合并沖突在hello.txt文件中)

        Automatic merge failed; fix conflicts and then commit the result. (自動合并失敗)

        輸入命令的上一行最后面master變成了master|MERGING,查看狀態 both modified: hello.txt (紅色)

      • 需要我們手動合并,打開hello.txt文件

        hello git sutong
        hello git sutong 33333
        <<<<<<< HEAD  (HEAD到等號之間是當前分支的代碼)
        hello git sutong 44444
        =======       (等號到hot-fix之間是要合并的代碼!!)
        hello git sutong 55555
        >>>>>>> hot-fix
        hello git sutong
        hello git sutong
        

        手動合并(例如我們想要hot-fix分支里面的,合并完要add,commit提交的時候不能帶文件名!!):

        hello git sutong
        hello git sutong 33333
        hello git sutong 55555
        hello git sutong
        hello git sutong
        

        合并只會修改master分支hello.txt文件內容,hot-fix不會變。(最后解決沖突的時候在我們的分支里面解決)

        master、hot-fix 其實都是指向具體版本記錄的指針。當前所在的分支,其實是由 HEAD 決定的。所以創建分支的本質就是多創建一個指針。 HEAD 如果指向 master,那么我們現在就在 master 分支上。 HEAD 如果指向hot-fix,那么我們現在就在 hot-fix 分支上。所以切換分支的本質就是移動 HEAD 指針。

        HEAD指針指向的是當前分支,分支指針指向的是當前分支在的具體版本。


4. Git團隊協作機制

如果想要團隊協作機制,則需要遇到代碼托管中心了,即GitHub

  1. 團隊內協作
    在這里插入圖片描述

  2. 跨團隊協作
    在這里插入圖片描述


5. GitHub操作

  1. 創建遠程庫

    登錄Github-> 右上角加號點擊New Repository -> 填寫遠程庫名字(一般和本地庫名稱一樣)選擇公有庫/私有庫 填寫描述

    -> create repository -> 有兩個連接 https/SSH

  2. 遠程倉庫操作命令

命令名稱作用
git remote -v查看當前所有遠程地址別名
git remote add 別名 遠程地址起別名
git push 別名 分支推送本地分支上的內容到遠程倉庫
git clone 遠程庫地址將遠程倉庫的內容克隆到本地
git pull 遠程庫地址別名 遠程分支名將遠程倉庫對于分支最新內容拉下來后與 當前本地分支直接合并

使用命令:

  1. 起別名,遠程庫鏈接太長了起個別名代替(別名一般和庫名一致)

    git remote add git-demo https://github.com/Mrzhugq/git-demo.git

  2. 查看當前所有遠程地址別名 git remote -v

    git-demo https://github.com/Mrzhugq/git-demo.git (fetch) push,clone,pull都可以用這個別名

    git-demo https://github.com/Mrzhugq/git-demo.git (push)

  3. 推送到遠程庫,最小單位的分支 ,git push git-demo master (慢)

    第一次的話會彈出一個窗口,登錄GitHub,選擇右邊的Token,要使用token登錄(怎么創建token百度),根據提示輸入用戶名密碼,最后顯示幾個100%就成功了,可能很慢多試幾次!
    在這里插入圖片描述

  4. 拉取遠程庫?

    如果我們在GitHub上直接修改了文件,比如在hello.txt文件最后一行加了幾個6。

    這樣這時遠程庫和本地庫不是同步的了,怎么更新本地庫代碼呢(即如果有他人push,則需要獲取最新版本)

    執行命令git pull git-demo master 也是分支位單位,也是很慢。最后會顯示幾個文件被改變,改變了幾行。在工作區打開hello.txt就能看到在遠程庫修改的了!

  5. 克隆遠程庫到本地庫

    新建個目錄,D:\Learning\Git-Space\git-clone ,執行git clone https://github.com/Mrzhugq/git-demo.git,克隆不需要登錄賬號。git-clone目錄下就會創建git-demo文件夾,里面會有.git文件,還有hello.txt。

    小結:clone 會做如下操作。1、拉取代碼。2、初始化本地倉庫。3、創建別名(默認別名的origin)

  6. 團隊協作?

    clone只需要鏈接,pull需要加入團隊(需要創建庫的人進行授權)

    團隊內協作,需要授權:進入庫 -> 庫右邊的setting -> collaborators -> add people,輸入用戶名/郵箱都能搜到 -> 復制pending invite即邀請函通過短信發給要授權的人 -> 授權的人登錄他的賬號接受邀請就行了 -> 被授權的人就能看到對應的遠程庫了,就能push了(如果被授權的人push了,我們就需要pull拉取下來,更新我們的本地庫!!)

    跨團隊協作:只需要把本團隊遠程庫的對應鏈接發給第三方團隊(或者直接搜),第三方團隊在瀏覽器輸入連接打開遠程庫 -> 點庫右上角的fork -> 第三方的團隊的賬號上就有了對應的遠程庫 -> 就可以對這個遠程庫進行修改了 -> clone -> 修改 -> push -> 點擊庫上面的Pull Requests - new pull request - create pull request -> 可以編寫commit描述,也寫一段話write -> 點右下角創建即可

    登錄本團隊的賬號刷新,則在庫的上面Pull Requests會有一個請求 -> 點開查看 -> 還可以給第三方團隊寫一段話write(兩個團隊可以隨時聊天) -> 審核代碼 -> 點下面的Merge pull request 合并申請 -> confirm merge確定合并 -> 在本團隊的遠程庫中就能看到第三方團隊修改的代碼了!(有沖突手動解決)

  7. SSH免密登錄

    C:\Users\[user]\ 下執行 ssh-keygen -t rsa -C 2081140153@qq.com 按三次回車,則會生成.ssh文件夾,打開公鑰id_rsa.pub文件復制,登錄GitHub -> settings -> SSH and GPG keys -> new SSH key -> 起個名字,復制到下面就行了add

    這樣本臺電腦就綁定這個GitHub賬號了,下次使用庫對應的SSH鏈接 git@github.com:Mrzhugq/git-demo.git,pull,push就不需要登錄了。


6. IDEA集成Git

我的IDEA版本的2020.1

  1. 設置忽略文件(一次就行),例如IDEA中的.idea文件夾,.iml文件等,這些與項目的實際功能無關,不參與服務器上部署運行。把它們忽略掉能夠屏蔽 IDE 工具之間的差異。

    • 創建忽略文件 git.ignore,建議放到用戶的家目錄下,即C:\Users\[user]\

      (但我的用戶名有的中文,所以我放到安裝目錄下了)

      # Compiled class file
      *.class# Log file
      *.log# BlueJ files
      *.ctxt# Mobile Tools for Java (J2ME)
      .mtj.tmp/# Package Files #
      *.jar
      *.war
      *.nar
      *.ear
      *.zip
      *.tar.gz
      *.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
      hs_err_pid*.classpath
      .project
      .settings
      target
      .idea
      *.iml
      
    • .gitconfig 文件中引用忽略配置文件(也在家目錄中)

      [user]name = sutongemail = 2081140153@qq.com
      [core]excludesfile = D:/Program Files/MyGit/git.ignore
      

      使用正斜線/,不要使用 \ 反斜線

  2. 定位Git程序(一次就行)

    setting -> version control -> git -> path to Git… (配置到bin下的git.exe)

  3. Git初始化

    菜單欄VCS -> inport into Version Control -> Create Git Repository ->默認選擇的就是項目的根目錄,直接點ok(在目錄下就會產生.git文件夾了!) -> 這時文件都變紅了,表示未被追蹤

  4. 添加暫存區

    單個文件右鍵Git -> Add (文件變綠了)

    還可以選擇當前項目右鍵Git -> Add 把整個項目中文件都添加暫存區(除了上面所排除的)

  5. 提交本地庫

    當前項目右鍵Git -> Commit Driectory -> 可以看到要提交的文件,下面可以寫commit message -> 提交完文件就變成了原來正常的顏色了

  6. 切換版本

    先修改文件,產生多個版本,則文件變成藍色了,然后add commit,commit的時候可以點看文件看修改前后的對比。

    點右下角的Git -> Log 可以看到版本信息 -> 左側的黃色指針代表分支信息,中間的的綠色的指針代表版本信息
    在這里插入圖片描述

    想要切換版本只需要在中間,選擇要切換版的版本,右鍵 -> Reset Current Branch to Here… -> 根據需要選擇對應的回退形式

    (或者:VCS -> Git -> Reset HEAD… -> Reset Type: 選擇回退形式,To Commit: 填寫要回退到的具體版本號 -> Reset)
    在這里插入圖片描述

  7. 創建分支

    當前項目右鍵Git -> Repository -> Branches… -> New Branch

    或者,在IDEA右下角點擊當前分支 -> New Branch

    需要切換分支點IDEA右下角的當前分支 -> 選擇要切換的分支 -> Checkout

  8. 合并分支

    • 正常合并

      點IDEA右下角的當前分支 -> 選擇要合并的分支 -> Merge into Current

    • 沖突合并

      合并時沖突,則會彈出一個Conflicts窗口,顯示沖突的文件,選中點右邊的Merger…,進入手動合并的窗口,左側是master分支的代碼,右側是hor-fix的代碼,中間是沒有沖突的代碼!如果想要master的代碼則需要點,然后直接點apply即可,自動add commit提交到本地庫。


7.IDEA操作GitHub

  1. 設置GitHub賬號(Gitee則需要下載插件)

    Settings -> Version Control -> GitHub -> 右上角加號 -> 使用token登錄

  2. push到遠程庫(IDEA幫我們在綁定的賬號下創建對應的遠程庫)

    VCS -> Import Version Control -> Share Project on Github -> Repository name: 輸入遠程庫的名字(一般和本地庫一樣),Remote:創建別名(也叫本地庫名),Description: 描述信息(可以不填)

    會幫我們先創建遠程庫,再把代碼push

  3. 修改完代碼要重新,add commit push

    push:項目右鍵 -> Git -> Repository -> Push… -> 默認使用https鏈接的別名,建議使用SSH鏈接(免密登錄) -> Push
    在這里插入圖片描述

  4. 拉取遠程庫,pull

    push:項目右鍵 -> Git -> Repository -> Pull… :
    在這里插入圖片描述

    注意:push 是將本地庫代碼推送到遠程庫,如果本地庫代碼跟遠程庫代碼版本不一致, push 的操作是會被拒絕的。也就是說,要想 push 成功,一定要保證本地庫的版本要比遠程 庫的版本高!因此一個成熟的程序員在動手改本地代碼之前,一定會先檢查下遠程庫跟本地代碼的區別!如果本地的代碼版本已經落后,切記要先 pull 拉取一下遠程庫的代碼,將本地代碼更新到最新以后,然后再修改,提交,推送!

  5. 克隆遠程庫代碼到本地,clone

    打開IDEA -> Get from Versio Control -> 選擇Git,輸入URL(Https/SSH)都行 -> clone (只clone你當時push的分支)


8. Gitee

中文網站,使用方式和GitHub一樣

使用Gitee服務器再國內,可以使用https的鏈接。

Idea默認不帶Gitee插件,需要自己安裝Gitee插件。

  1. 綁定Gitee

    Settings -> Version Control -> Gitee -> 右上角加號 -> 可以使郵箱密碼登錄!

  2. add commit 和GitHub一樣

  3. push

    • 幫我們創建遠程庫

      VCS -> Import Version Control -> Share Project on Gitee -> Repository name,Remote,Description

    • push到已有的庫

      項目右鍵 -> Git -> Repository -> Push… -> 點默認的別名,Define Remote新建別名,輸入Gitee庫鏈接 -> Push

  4. pull

    項目右鍵 -> Git -> Repository -> Pull… -> Remote 套選擇上面新建的Gitee的別名 -> Pull

  5. clone

    和GitHub一樣

  6. Gitee導入GitHub項目??

    右上角加號新建倉庫 -> 右上角導入已有倉庫 -> 輸入再GitHub上庫的Https的鏈接,默認會填充遠程庫名 -> 導入

    如果GitHUb中遠程庫發送修改,Gitee也可以強轉刷新進行同步 -> 點擊遠程庫標題右邊的圓圈,強轉同步

    同步到Gitee的話進行,再用這個鏈接進clone就比GitHub快多了!!!


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

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

相關文章

@RunWith的使用

引言 當談到在Java中進行單元測試時&#xff0c;JUnit是開發人員的常見選擇之一。JUnit是一個流行的單元測試框架&#xff0c;它允許您編寫和執行測試來驗證代碼的正確性。在JUnit中&#xff0c;RunWith注解是一個強大的工具&#xff0c;它可以用來定制測試運行器&#xff0c;…

【日常積累】RPM包依賴下載及私有yum倉庫搭建

概述 某些時候&#xff0c;我們需要下載某個RPM包依賴的依賴。如某些內網環境&#xff0c;就需要自行準備rpm包。可以通過能上互聯網的服務器進行相應的rpm包下載&#xff0c;然后在拷貝到相應的服務器安裝&#xff0c;或者搭建自己的內容rpm包倉庫。 查看*.rpm 包依賴&#…

Flink多流處理之Broadcast(廣播變量)

寫過Spark批處理的應該都知道,有一個廣播變量broadcast這樣的一個算子,可以優化我們計算的過程,有效的提高效率;同樣在Flink中也有broadcast,簡單來說和Spark中的類似,但是有所區別,首先Spark中的broadcast是靜態的數據,而Flink中的broadcast是動態的,也就是源源不斷的數據流.在…

批處理自動切換ip地址與網絡的啟用、禁用

啟用禁用網絡 echo off :: BatchGotAdmin :------------------------------------- REM --> Check for permissions >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" REM --> If error flag set,…

什么是微服務?

2.微服務的優缺點 優點 單一職責原則每個服務足夠內聚&#xff0c;足夠小&#xff0c;代碼容易理解&#xff0c;這樣能聚焦一個指定的業務功能或業務需求&#xff1b;開發簡單&#xff0c;開發效率提高&#xff0c;一個服務可能就是專一的只干一件事&#xff1b;微服務能夠被小…

命令提示符之操作基礎(Windows)

打開命令提示符 方法一 打開指定文件的文件夾&#xff0c;在路徑欄里輸入“cmd”&#xff0c;回車&#xff0c;就進入控制臺了。默認路徑就是指定文件夾的路徑。 方法二 打開指定的文件夾&#xff0c;按住shift鍵&#xff0c;在空白處右擊&#xff0c;在菜單欄中選擇“在此處打…

社區團購商城拼團秒殺接龍分銷團長小程序開源版開發

社區團購商城拼團秒殺接龍分銷團長小程序開源版開發 功能介紹&#xff1a; 商品管理&#xff1a;增加商品-商品列表-商品分類-商品單/多規格-商品標簽 訂單管理&#xff1a;訂單列表-訂單挑選-訂單導出-訂單打印-批量發貨-商品評價 會員管理&#xff1a;會員列表-會員挑選-會員…

【Git】—— 標簽管理

目錄 &#xff08;一&#xff09;理解標簽 1、作用 &#xff08;二&#xff09;創建標簽 &#xff08;三&#xff09;操作標簽 1、刪除標簽 2、推送標簽 3、刪除遠程標簽 &#xff08;一&#xff09;理解標簽 標簽 tag &#xff0c;可以簡單的理解為是對某次 commit 的…

python中的迭代器和生成器

一、迭代器 支持迭代的容器&#xff0c;如列表&#xff08;list&#xff09;、元組&#xff08;tuple&#xff09;、字典&#xff08;dict&#xff09;、集合&#xff08;set&#xff09;這些序列式容器。 自定義迭代器的類中必須實現以下2個方法&#xff1a; __next__(self)…

監控Kubernetes 控制面組件的關鍵指標

控制面組件的監控&#xff0c;包括 APIServer、Controller-manager&#xff08;簡稱 CM&#xff09;、Scheduler、etcd 四個組件。 1、APIServer APIServer 的核心職能是 Kubernetes 集群的 API 總入口&#xff0c;Kube-Proxy、Kubelet、Controller-Manager、Scheduler 等都需…

【字符串】649. Dota2 參議院

649. Dota2 參議院 解題思路 R true 表示循環結束之后 字符串仍然存在 Rflag > 0 說明R在D之前出現 R可以消滅Dflag < 0 說明D在R之前出現 D 可以消滅R一旦其中有一個為false 說明只剩下R 或者D 那么就可以決定誰獲勝遍歷字符串 如果當前字符是R 判斷flag 如果flag &l…

‘open3d.open3d.geometry.PointCloud‘ object has no attribute ‘voxel_down_sample‘

scene_cloud open3d.geometry.PointCloud() scene_cloud.points open3d.utility.Vector3dVector(scene_points) scene_cloud scene_cloud.voxel_down_sample(voxel_size) 執行上面代碼第三句報錯&#xff0c;出現了下面這個錯誤&#xff1a; AttributeError: open3d.open…

TCP 協議十大相關特性總結

目錄 一、TCP特性 二、報文格式 TCP十大核心特性 1. 確認應答 2. 超時重傳 3. 連接管理(三次握手,四次揮手) 三次握手 四次揮手 4. 滑動窗口 情況一:接收方的ACK丟失 情況二:發送方的數據包丟失 5. 流量控制 6. 擁塞控制 7. 延遲應答 8. 捎帶應答 9. 字節流粘包問題 10. TCP的…

k8s--使用cornJob定時執行sql文件

CronJob apiVersion: batch/v1beta1 kind: CronJob metadata:name: hello spec:schedule: "0 * * * *"jobTemplate:spec:template:spec:containers:- name: postgres-alpineimage: xxxximagePullPolicy: IfNotPresentcommand:- psql- -h- 數據庫服務地址- -d- 數據庫…

大語言模型:LLM的概念是個啥?

一、說明 大語言模型&#xff08;維基&#xff1a;LLM- large language model&#xff09;是以大尺寸為特征的語言模型。它們的規模是由人工智能加速器實現的&#xff0c;人工智能加速器能夠處理大量文本數據&#xff0c;這些數據大部分是從互聯網上抓取的。 [1]所構建的人工神…

02 - git 文件重命名

查看所有文章鏈接&#xff1a;&#xff08;更新中&#xff09;GIT常用場景- 目錄 文章目錄 1. 第一種方式2. 第二種方式 1. 第一種方式 mv kongfu_person.txt kongfu.txt git add .2. 第二種方式 git mv kongfu_person.txt kongfu.txt

微服務實戰項目-學成在線-項目優化(redis緩存優化)

微服務實戰項目-學成在線-項目優化(redis緩存優化) 1 優化需求 視頻播放頁面用戶未登錄也可以訪問&#xff0c;當用戶觀看試學課程時需要請求服務端查詢數據&#xff0c;接口如下&#xff1a; 1、根據課程id查詢課程信息。 2、根據文件id查詢視頻信息。 這些接口在用戶未認…

Unity 人物連招(三段連擊)

一&#xff1a; 連招思路 首先人物角色上有三個攻擊實例對象 Damage,每一個damage定義了攻擊的傷害值&#xff0c;攻擊距離&#xff0c;觸發器名稱&#xff0c;傷害的發起者&#xff0c;攻擊持續時間&#xff0c;攻擊重置時間&#xff0c;傷害的碰撞框大小等字段&#xff1a; …

【WordPress】給你一萬個不使用WP-Cron定時機制的理由

這篇文章也可以在我的博客中查看 定時任務 cron Cron是Unix/Linux系統中的任務調度工具&#xff0c;允許用戶在預定的時間和日期間隔自動運行命令或腳本 它通過Cron表達式定義任務執行的頻率&#xff0c;該表達式包含分鐘、小時、日期等信息 我們可以利用Cron來定期執行維護…

MySQL表的增刪查改

目錄 一&#xff0c;新增 二&#xff0c;查詢 2.1 全列查詢 2.2 指定列查詢 2.3 查詢字段為表達式 2.4 別名 - as 2.5 去重 - distinct 2.6 排序 - order by 2.7 條件查詢 - where 2.8 分頁查詢 - limit 三&#xff0c;修改 - update 四&#xff0c;刪除 - delete 一…