主頁 > 軟體設計 > 長達萬字的git常用指令總結!!!適合小白及在作業中想要對git基本指令有所了解的人群(建議收藏)

長達萬字的git常用指令總結!!!適合小白及在作業中想要對git基本指令有所了解的人群(建議收藏)

2021-08-09 08:29:13 軟體設計


本篇文章將對git在作業和學習中需要用到的大部分常用指令作詳細解答,

覺得有用的C友們可以點個贊支持一下,你們的支持就是我最大的動力~

本文總結自廖雪峰老師的檔案


1.git的初步認識

2.git add與git commit

3.git status和git diff

4.版本回退git reset與查看日志git log/git relog

5.撤銷修改git checkout及git reset(再提及)

6.洗掉檔案

7.分支管理 branch與switch

8.標簽的使用 git tag與git show

  • 創建標簽
  • 查看標簽
  • 洗掉標簽
  • 推送標簽到遠程庫

9.遠程倉庫的連接

  • 與遠程庫建立連接
  • 向遠程庫輸出本地庫中的檔案
  • 洗掉遠程庫

10.與Github或Gitee建立檔案傳輸機制



1.git的初步認識

首先,Git在本地中具有作業區、暫存區與本地倉庫區
平時我們修改代碼時叫做作業區,當你完成專案到某個進度想保存時,那么便可將代碼存到暫存區,暫存區類似于word檔案中的自動保存功能,當你確認暫存區中的代碼沒問題要保存時,便可將代碼由暫存區轉到本地倉庫區

那么對于一個目錄,如何將它變成Git可以管理的倉庫呢?(本地倉庫,還不是遠程倉庫)
答案是:在當前目錄下運行git init指令創建一個版本庫,然后這個目錄里面的所有檔案就可以被Git管理起來,每個檔案的修改、洗掉,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”,
可以發現當前目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的檔案,不然改亂了,就把Git倉庫給破壞了,如果你沒有看到.git目錄,那是因為這個目錄默認是隱藏的,

在這里插入圖片描述

2.git add與git commit

由于Github使用面更廣,后續演示都是針對Github來展開

總體來說,把一個檔案放到本地Git倉庫只需要兩步,

  • 第一步,用命令git add告訴Git,把某個檔案從作業區添加到暫存區,
  • git add <file>
$ git add readme.txt//將readme.txt檔案添加到暫存區

執行上面的命令,如果沒有任何顯示,代表正確運行,
在這里插入圖片描述

  • 第二步,用命令git commit告訴Git,將暫存區中所有檔案一次性從暫存區添加到本地倉庫區,
  • git commit -m <message>
$ git commit -m "wrote a readme file"//將readme.txt檔案添加到本地倉庫

在這里插入圖片描述

💥詳解💥
.
簡單解釋一下git commit命令,-m后面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄,git commit命令執行成功后會告訴你,1 file changed:1個檔案被改動(我們新添加的readme.txt檔案);2 insertions:插入了兩行內容(readme.txt有兩行內容),

為什么Git添加檔案需要addcommit一共兩步呢?因為commit可以一次提交很多檔案,所以你可以多次add不同的檔案,比如:

$ git add file1.txt
$ git add file2.txt file3.txt//一次add命令可以有多個檔案,用空格分隔
$ git commit -m "add 3 files."


3.git status和git diff

git status命令能查看當前目錄中所有檔案的代碼狀態,如果檔案是紅色那說明檔案被修改過但還沒將此次修改提交,
git diff命令顧名思義就是查看difference,顯示的格式正是Unix通用的diff格式,git diff后面跟檔案名稱是是查看作業區(working tree)與暫存區(index)的差別的


4.版本回退git reset與查看日志git log/git relog

你不斷對檔案進行修改,然后不斷提交修改到版本庫里,就好比玩游戲時,每通過一關就會自動把游戲狀態存盤,如果某一關沒過去,你還可以選擇讀取前一關的狀態,有些時候,在打Boss之前,你會手動存盤,以便萬一打Boss失敗了,可以從最近的地方重新開始,Git也是一樣,每當你覺得檔案修改到一定程度的時候,就可以“保存一個快照”,這個快照在Git中被稱為commit,一旦你把檔案改亂了,或者誤刪了檔案,還可以從最近的一個commit恢復,然后繼續作業,而不是把幾個月的作業成果全部丟失,這就是版本回退,

假設對于readme.txt檔案,我已經提交了三個版本的修改,而對于git commit -m <message>,-m后面輸入的本次提交說明如下:

版本1:wrote a readme file
版本2:add distributed
版本3:append GPL(最新版本)

  • git log
    當然,在實際作業中,我們腦子里怎么可能記得一個幾千行的檔案每次都改了什么內容,不然要版本控制系統Git干什么,版本控制系統肯定有某個命令可以告訴我們歷史記錄,在Git中,我們用git log命令查看:
$ git log
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)//最新的一次修改
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:06:15 2018 +0800

    append GPL

commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:03:36 2018 +0800

    add distributed

commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 20:59:18 2018 +0800

    wrote a readme file

如果嫌輸出資訊太多,看得眼花繚亂的,可以試試加上--pretty=oneline引數

$ git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL//最新的一次修改
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file

💥友情提示:你看到的一大串類似1094adb…的是commit id(版本號),你看到的commit id和我的肯定不一樣,以你自己的為準,為什么commit id需要用這么一大串數字表示呢?因為Git是分布式的版本控制系統,后面我們還要研究多人在同一個版本庫里作業,如果大家都用1,2,3……作為版本號,那肯定就沖突了,版本號沒必要寫全,前幾位就可以了,Git會自動去找


打算把readme.txt回退到上一個版本,也就是add distributed的那個版本,怎么做呢?
首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交1094adb…(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100

  • git reset

現在,我們要把當前版本append GPL回退到上一個版本add distributed,就可以使用git reset

$ git reset --hard HEAD^//去上一個版本
HEAD is now at e475afc add distributed

也可以指定某個commit版本進行還原

$ git reset --hard 1094a//指定commit版本前五位數為1094a的進行還原
HEAD is now at 83b0afe append GPL

如果你忘記了commit版本號,可以通過git reflog來找,git reflog記錄了你的每一次命令

$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file

💥程序圖示:
在這里插入圖片描述
總結:

  • HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令
    git reset --hard commit_id
  • 穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本,
  • 要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本,


5.撤銷修改git checkout及git reset(再提及)

  • 撤銷作業區的修改

當你對作業區檔案完成修改時,你可以選擇git add提交到暫存區,也可以選擇git checkout撤銷此次修改

$ git status
On branch 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:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

命令git checkout -- readme.txt意思就是,把readme.txt檔案在作業區的修改全部撤銷,
這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經添加到暫存區后,又作了修改,現在,撤銷修改就回到上次提交到暫存區后的狀態,
總之,就是讓這個檔案回到最近一次git commitgit add時的狀態,

  • 撤銷暫存區的修改

當你對作業區檔案完成修改且已經提交到了暫存區,你可以選擇git commit提交到本地倉庫區,也可以選擇git reset把暫存區的修改撤銷掉

$ git reset HEAD readme.txt//前文講過,HEAD代表當前最新版本的檔案
Unstaged changes after reset:
M	readme.txt

可知,git reset命令既可以回退版本,也可以把暫存區的修改撤銷到作業區,

  • 撤銷本地倉庫區的修改

什么時候需要撤銷本地倉庫區的修改呢?那便是已經git commit到本地倉庫了,那便回到前文的版本回退章節進行查閱,git reset --hard 指定版本即可


6.洗掉檔案

在Git中,洗掉也是一個修改操作
一般情況下,你通常直接在檔案管理器中把沒用的檔案刪了,或者用rm <file>命令刪了

$ rm test.txt

這個時候,Git知道你洗掉了檔案,因此,作業區和版本庫就不一致了

  • 如果你只是誤刪檔案,那么可以通過git checkout指令恢復(撤銷本次修改)
$ git checkout -- test.txt
  • 如果你確實要從版本庫中洗掉該檔案,那就用命令git rm刪掉,再git commit提交本次修改
$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

小提示:先手動洗掉檔案,然后使用git rm 和git add效果是一樣的,


7.分支管理 branch與switch

分支在實際中有什么用呢?假設你準備開發一個新功能,但是需要兩周才能完成,第一周你寫了50%的代碼,如果立刻提交,由于代碼還沒寫完,不完整的代碼庫會導致別人不能干活了,如果等代碼全部寫完再一次提交,又存在丟失每天進度的巨大風險
現在有了分支,就不用怕了,你創建了一個屬于你自己的分支,別人看不到,還繼續在原來的分支上正常作業,而你在自己的分支上干活,想提交就提交,直到開發完畢后,再一次性合并到原來的分支上,這樣,既安全,又不影響別人作業,

💥branch系列指令進行分支相關操作

  • 查看分支

git branch命令列出本地倉庫中所有分支,當前分支前面會標一個*

$ git branch
* dev
  master
  • 創建與合并分支
  • 創建

git branch dev創建dev分支
git checkout dev將HEAD指標切換到dev分支

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

git checkout -b dev git checkout命令加上-b引數表示創建并切換,相當于上面兩條命令
先創建dev分支,然后切換到dev分支

$ git checkout -b dev
Switched to a new branch 'dev'


  • 合并

當你在dev分支上對readme.txt檔案進行修改后,想將該修改合并到master主分支上時,兩步:

git checkout 分支名切換到master分支

$ git checkout master
Switched to branch 'master'

git merge 需要被合并的分支名合并dev分支

$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

合并完成后,就可以洗掉dev分支了,相較于git checkout dev添加分支,加個引數-d代表delete

$ git branch -d dev
Deleted branch dev (was b17d20e).



💥switch系列指令進行分支相關操作

注意到切換分支使用git checkout <branch>,而前面講過的撤銷修改則是git checkout -- <file>,同一個命令,有兩種作用,確實有點令人迷惑,

實際上,切換分支這個動作,用switch更容易理解,因此,最新版本的Git提供了新的git switch命令來切換分支:

創建并切換到新的dev分支,可以使用:

$ git switch -c dev//代替git checkout -b dev

直接切換到已有的master分支,可以使用:

$ git switch master//代替git branch dev



💥總結:

查看分支:git branch

創建分支:git branch <name>

切換分支:git checkout <name>或者git switch <name>

創建+切換分支:git checkout -b <name>或者git switch -c <name>

合并某分支到當前分支:git merge <name>

洗掉分支:git branch -d <name>



8.標簽的使用 git tag與git show

前言:為什么要使用標簽?

發布一個版本時,我們通常先在版本庫中打一個標簽(tag),這樣,就唯一確定了打標簽時刻的版本,將來無論什么時候,取某個標簽的commit版本,就是把那個打標簽的時刻的歷史版本取出來,所以,標簽也是版本庫的一個快照,
Git有commit版本號,為什么還要引入tag?
因為commit版本是類似6a5819e...的一大串字符,不好找、辨別
如果將6a5819e...變成v1.2,就容易了很多
所以,tag就是一個讓人容易記住的有意義的名字,它跟某個commit版本號綁在一起,


創建標簽

git tag <tagname>
git tag -a <tagname> -m "blablabla..."

  • 給整個分支打標簽
    首先,git branch切換到需要打標簽的分支上
$ git branch
* dev
  master
$ git checkout master
Switched to branch 'master'

然后git tag <tagname>打標簽即可

$ git tag v1.0
  • 給過去的某個commit版本打標簽
    git tag <tagname> <commid id>

默認標簽是打在最新提交的commit上的,歷史的找到歷史提交的commit id,然后打上就可以了

比方說要對add merge這次提交打標簽,它對應的commit id是f52c633

$ git tag v0.9 f52c633



還可以創建帶有說明的標簽,用-a指定標簽名,-m指定說明文字
git tag -a <tagname> -m "blablabla..." <commit id>

$ git tag -a v0.1 -m "version 0.1 released" 1094adb



查看標簽

git tag
可以用命令git tag查看所有標簽

$ git tag
v1.0

git show <tagname>
標簽不是按時間順序列出,而是按字母排序的,可以用git show <tagname>查看標簽資訊:

$ git show v0.9
commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:56:54 2018 +0800

    add merge

diff --git a/readme.txt b/readme.txt
...



洗掉標簽

  • 命令git tag -d <tagname>可以洗掉一個本地標簽;

  • 命令git push origin :refs/tags/<tagname>可以洗掉一個遠程標簽,


推送標簽到遠程庫

  • 命令git push origin <tagname>可以推送一個本地標簽;

  • 命令git push origin --tags可以推送全部未推送過的本地標簽;



9.遠程倉庫的連接

目前廣為人知的兩個遠程倉庫有Github和Gitee(碼云)

Github:人氣最高,人們普遍使用的一個國際化代碼管理平臺

Gitee:使用GitHub時,國內的用戶經常遇到的問題是訪問速度太慢,有時候還會出現無法連接的情況
如果我們希望體驗Git飛一般的速度,可以使用國內的Git托管服務——Gitee(gitee.com)

目標:
在本地創建了一個Git倉庫后,又想在GitHub創建一個Git倉庫,并且讓這兩個倉庫進行遠程同步,


與遠程庫建立連接

git remote add 遠程倉庫名字 git@github.com:遠程倉庫路徑//遠程倉庫路徑如下圖

$ git remote add origin git@github.com:michaelliao/learngit.git

在這里插入圖片描述
建立好連接后,遠程庫的名字就是origin,這是Git默認的叫法,也可以改成別的,但是origin這個名字一看就知道是遠程庫,

向遠程庫輸出本地庫中的檔案

git push -u 遠程倉庫名稱 要推送的本地分支名稱

$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
Total 20 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To github.com:michaelliao/learngit.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

把本地庫的內容推送到遠程,用git push命令,實際上是把當前分支master推送到遠程,

由于遠程庫是空的,我們第一次推送master分支時,加上了-u引數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令,

從現在起,只要本地作了提交,就可以通過命令:

$ git push origin master//origin依舊為遠程庫名稱,master為要推送的分支名稱



洗掉遠程庫

在洗掉前,建議先用git remote -v查看遠程庫資訊

$ git remote -v
origin  git@github.com:michaelliao/learn-git.git (fetch)
origin  git@github.com:michaelliao/learn-git.git (push)

git remote rm <name> 洗掉遠程庫,name為遠程庫名稱
比如洗掉前文創建的名為origin的遠程庫

$ git remote rm origin



溫馨提示:此處的“洗掉”其實是解除了本地和遠程的系結關系,并不是物理上洗掉了遠程庫,遠程庫本身并沒有任何改動,要真正洗掉遠程庫,需要登錄到GitHub,在后臺頁面找到洗掉按鈕再洗掉,


💥總結:

  • 要關聯一個遠程庫,使用命令git remote add 遠程倉庫名字 git@github.com:遠程倉庫路徑

  • 關聯一個遠程庫時必須給遠程庫指定一個名字,origin是默認習慣命名;

  • 關聯后,使用命令git push -u 遠程倉庫名稱 要推送的本地分支名稱 第一次推送master分支的所有內容;

  • 此后,每次本地提交后,只要有必要,就可以使用命令git push -u 遠程倉庫名稱 要推送的本地分支名稱推送最新修改;



10.與Github或Gitee建立檔案傳輸機制

你的本地Git倉庫和GitHub倉庫之間的傳輸方式有兩種,一種是通過https,另一種是通過SSH加密的

HTTPS:使用https url克隆對初學者來說會比較方便,復制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代碼都需要輸入賬號和密碼,這也是https方式的麻煩之處(發現了https免密登錄的方式),

SSH:使用SSH url克隆卻需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的話,你必須是這個專案的擁有者或管理員,否則你是無法添加SSH key的,另外ssh默認是每次fetch和push代碼都不需要輸入賬號和密碼


至于如何將本機與Github和Gitee建立SSH連接,方便推送不用輸入郵箱密碼,請參考下面鏈接:

  • Github如何實作SSH加密傳輸:Github平臺的SSH
  • Github如何實作SSH加密傳輸:Gitee平臺的SSH




💥💥💥💥
這是我的第一篇萬字博客!希望大家能夠喜歡并從中識訓到知識
如果你覺得本篇文章對你有幫助,不妨關注我并點擊右下角的點贊和收藏!!
你們的支持就是我最大的動力~~

💥💥💥💥

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292543.html

標籤:其他

上一篇:♥★第一次拿到學校的星星☆★☆ -- 行走的皮卡丘★♥※

下一篇:超詳細 函式堆疊幀(利用反匯編窺探底層原理)+ 建議收藏

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more