1. 程式人生 > >Git使用方法(精心整理,絕對夠用)

Git使用方法(精心整理,絕對夠用)

一、git客戶端(本地倉庫)的一些操作1.設定賬戶(需要和github賬戶設定一致)git config --global user.name xxxgit config --global user.email xxx@foxmail.com2.檢視設定git config --listuser.name=xxxuser.email=xxx@foxmail.com3.建立git本地倉庫git init此時會出現提示 : inialized empty Git repository in d://com/liu/.git4.檢視git狀態git status一般來說會顯示需要提交的檔案(uncommited)和未追蹤的檔案(untracked)uncommited:已有的,剛被修改尚未提交的untracked:原先沒有的,新建的 5.新增git檔案到暫存區(需要和版本庫區分) git add <name>
6.git提交檔案git commit -m "add a function in test.java"-m表示註釋,為提交時的說明,必須要有!7.git刪除檔案(夾)git rm test.txt //刪除檔案git rm -r filebook //刪除資料夾git rm和直接刪除的區別在於git rm會將此檔案的操作記錄刪除,而直接刪除僅僅是刪除了物理檔案,沒有刪除和此檔案相關的記錄。git rm後會在版本庫產生區別(有操作日誌),而直接刪除沒有。可以用下面兩種操作在版本庫中刪除檔案:git rm test.txt => git commit -m 'delete a file'
rm test.txt => git commit -am 'delete a file'注意:命令git rm用於刪除一個檔案。如果一個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。8.git操作日誌git log --decorate --graph --oneline --all #顯示當前及之前的版本號git log --pretty=oneline #將版本歷史顯示為一行,歷史版本號全部顯示git log --pretty=oneline --abbrev-commit
#將版本歷史顯示為一行,歷史版本號部分顯示git log --graph #檢視分支合併圖9.版本回退執行版本退回後,本地工作區的內容會自動和回退到的版本庫版本的內容保持同步git reset --hard HEAD^ 回退到上一個版本git reset --hard HEAD^^ 回退到上上個版本,以此類推,一次提交即為一個版本git reset --hard e9efa77回退到 e9efa77版本10.git還原操作丟棄工作區的操作,但不會丟失暫存區的操作(add操作能將更改新增到暫存區),實際上就是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”git checkout -- readme.txt11.git暫存區撤銷操作工作區修改了檔案,而且執行了add,但還沒執行commit,暫存區還是可以撤銷的git reset HEAD readme.txt備註:git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用HEAD時,表示最新的版本。二.與github/gitee協同使用(git程式碼託管伺服器)和GitHub相比,碼雲(Gitee)也提供免費的Git倉庫。此外,還集成了程式碼質量檢測、專案演示等功能。對於團隊協作開發,碼雲還提供了專案管理、程式碼託管、文件管理的服務,5人以下小團隊免費。1.配置遠端倉庫免密登陸(1)在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsaid_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟Shell(Windows下開啟Git Bash),建立SSH Key:ssh-keygen -t rsa -C "xxx@foxmail.com" 備註:一路回車,執行生成 id_rsa 私鑰 和 id_rsa.pub 公鑰,Windows使用者在git bash中輸入上述指令(2)獲得key的內容,複製下來,新增到gitHub的SSH key中windows位置:‪C:\Users\使用者名稱\.ssh\id_rsa.pubLinux位置:cat ~/.ssh/id_rsa.pub

(3)ssh -T [email protected] #驗證key,根據提示輸入yes,新增為信任主機2.新增遠端倉庫git remote add origin https://github.com/xxx/LearnGit.git(https方式)(ssh方式)此處可以為https地址也可以是ssh地址,orign為設定的遠端倉庫的別名,強烈建議使用ssh方式,因為https方式每次都要輸入使用者名稱和密碼如果需要修改傳輸協議:(1)git remote rm <遠端主機名>刪除遠端倉庫)(2)設定傳輸方式和目標遠端倉庫(3)git push -u <遠端主機名><本地分支名>碼雲的新增遠端倉庫方法:git remote add origin [email protected]:xxx/LearnGit.git(ssh方式)如果git remote add失敗,並報錯:fatal: remote origin already exists.說明本地庫已經關聯了一個名叫origin的遠端庫,此時,可以先用git remote -v檢視遠端庫資訊:origin [email protected]:xxx/LearnGit.git (fetch)origin [email protected]:xxx/LearnGit.git (push)表示本地庫已經關聯了Github上的origin遠端庫,需要先刪除已有的Github庫:git remote remove origin再關聯碼雲的遠端庫(注意路徑中需要填寫正確的使用者名稱):git remote add gitee [email protected]:xxx/LearnGit.git因為git本身是分散式版本控制系統,可以同步到另外一個遠端庫,當然也可以同步到另外兩個遠端庫,所以一個本地庫可以既關聯GitHub,又關聯碼雲!使用多個遠端庫時,要注意git給遠端庫起的預設名稱是origin,如果有多個遠端庫,我們需要用不同的名稱來標識不同的遠端庫。仍然以learngit本地庫為例,先刪除已關聯的名為origin的遠端庫:git remote rm origin然後,先關聯GitHub的遠端庫:git remote add github [email protected]:xxx/LearnGit.git注意,遠端庫的名稱叫github,不叫origin了。接著,再關聯碼雲的遠端庫:git remote add gitee [email protected]:xxx/LearnGit.git同樣注意,遠端庫的名稱叫gitee,不叫origin。現在,我們用git remote -v檢視遠端庫資訊,可以看到兩個遠端庫:gitee [email protected]:xxx/LearnGit.git (fetch)gitee [email protected]:xxx/LearnGit.git (push)github [email protected]:xxx/LearnGit.git (fetch)github [email protected]:xxx/LearnGit.git (push)如果要推送到GitHub,使用命令:git push github master如果要推送到碼雲,使用命令:git push gitee master這樣一來,本地庫就可以同時與多個遠端庫互相同步:
3.檢視遠端倉庫及傳輸協議git remotegit remote -v 檢視名稱和詳細地址4.刪除遠端倉庫git remote remove <遠端主機名>5.推送本地分支到遠端倉庫git push <遠端主機名> <本地分支名>:<遠端分支名>如果省略遠端分支名,則表示將本地分支推送與之存在“追蹤關係”的遠端分支(通常兩者同名),如果該遠端分支不存在,則會被新建git push origin <本地分支名>git push origin master如果當前分支與多個主機存在追蹤關係,則可以使用-u選項指定一個預設主機,這樣以後就可以不加任何引數使用git push。git push -u <遠端主機名> <本地分支名> 例如:git push -u origin master6.將遠端倉庫克隆為本地倉庫git clone [email protected]:xxx/LearnGit.git注意:(1)不能使用別名(2)預設情況下,從遠端clone到本地的庫只能看到master分支,如果要將遠端的分支同步到本地:git checkout -b <本地分支名> <遠端主機名>/<遠端分支名>前提是遠端<遠端主機名>必須存在名為<遠端分支名>的分支,而且<本地分支名>和<遠端分支名>最好一致。7.本地倉庫更新將遠端儲存庫中的更改合併到當前分支中。在預設模式下,git pullgit fetch後跟git merge FETCH_HEAD的縮寫。更準確地說,git pull使用給定的引數執行git fetch,並呼叫git merge將檢索到的分支頭合併到當前分支中。 使用--rebase,它執行git rebase而不是git merge。以下是一些示例:git pull <遠端主機名> <遠端分支名>:<本地分支名>比如,要取回origin主機的next分支,與本地的master分支合併,需要寫成下面這樣 -git pull origin next:master如果遠端分支(next)要與當前分支合併,則冒號後面的部分可以省略。上面命令可以簡寫為:git pull origin next上面命令表示,取回origin/next分支,再與當前分支合併。實質上,這等同於先做git fetch,再執行git merge。git fetch origin => git merge origin/next在某些場合,Git會自動在本地分支與遠端分支之間,建立一種追蹤關係(tracking)。比如,在git clone的時候,所有本地分支預設與遠端主機的同名分支,建立追蹤關係,也就是說,本地的master分支自動“追蹤”origin/master分支。Git也允許手動建立追蹤關係:git branch --set-upstream-to=遠端主機名/<遠端分支名>  <本地分支名>比如git branch --set-upstream-to=origin/next master,指定master分支追蹤origin/next分支。git pull origin上面命令表示,本地當前分支自動與對應的origin主機”追蹤分支”(remote-tracking branch)進行合併。如果當前分支只有一個追蹤分支,連遠端主機名都可以省略。git pull上面命令表示,當前分支自動與唯一一個追蹤分支進行合併。如果合併需要採用rebase模式,可以使用–rebase選項。git pull --rebase <遠端主機名> <遠端分支名>:<本地分支名>git fetch和git pull的區別(1)git fetch:相當於是從遠端獲取最新版本到本地,不會自動合併。git fetch origin mastergit log -p master..origin/mastergit merge origin/master以上命令的含義:
  • 首先從遠端的origin的master主分支下載最新的版本到origin/master分支上
  • 然後比較本地的master分支和origin/master分支的差別
  • 最後進行合併
上述過程其實可以用以下更清晰的方式來進行:git fetch origin master:tmpgit diff tmp git merge tmp(2)git pull:相當於是從遠端獲取最新版本並merge到本地git pull origin master上述命令其實相當於git fetch 和 git merge在實際使用中,git fetch更安全一些,因為在merge前,可以檢視更新情況,然後再決定是否合併。8.檢視分支git branch9.建立分支git branch <name>10.建立並切換到分支git checkout -b <name>備註:git checkout命令加上-b引數表示建立並切換,相當於以下兩條命令git branch <name>git checkout <name>11.切換分支git checkout <name>切換分支後,在git bash中顯示為綠色12.刪除分支git branch -d <name>如果分支沒有合併,刪除分支就表示會丟失修改,此時git無法使用-d刪除,可使用-D強行刪除git branch -D <name>13.合併分支git合併預設使用Fast forward模式,一旦刪除分支,會丟掉分支資訊,也就看不出來曾經做過合併git merge <name> #基於當前分支,合併另外一個分支,前提需要保證分支之間不衝突如果強制禁用Fast forward模式,即普通模式,Git就會在merge時生成一個新的commitgit merge --no-ff -m "there is a comment" <name>因為本次合併要建立一個新的commit,所以加上-m引數,把commit描述寫進去。工作中,肯定需要不管有沒有分支被刪除,都要從分支歷史上就檢視所有的歷史分支資訊,所以要使用普通模式合併。14.建立tag(1)git tag <tagname> #預設在HEAD版本(2)對指定的commit版本建立tag
  • 需要先找到歷史commit的id
git log --pretty=oneline --abbrev-commit
  • 然後對指定的commit建立tag:
git tag <tagname> <commitid>(3)建立帶有說明的tag,用-a指定標籤名,-m指定說明文字git tag -a <tagname> -m "there is a tag description" [<commitid>](4)通過-s用私鑰簽名一個標籤,簽名採用PGP簽名git tag -s <tagname> -m "there is a tag description" [<commitid>]必須首先安裝gpg(GnuPG),如果沒有找到gpg,或者沒有gpg金鑰對,就會報錯,參考GnuPG幫助文件配置Key。15.檢視taggit tag #顯示的tag不是按時間順序排列,而是按字母順序排列如果想檢視tag和commit的對應關係,可以用git log --pretty=oneline --abbrev-commit如果想檢視tag的的詳細情況,可以用git show <tagname>16.刪除tag建立的標籤都只儲存在本地,不會自動推送到遠端。所以,打錯的標籤可以在本地安全刪除git tag -d <tagname>如果標籤已經推送到遠端,要刪除遠端標籤就麻煩一點:(1)先本地刪除:git tag -d <tagname>(2)再遠端刪除:git push origin :refs/tags/<tagname>17.推送標籤至遠端git push origin <tagname>或者,一次性推送全部尚未推送到遠端的本地標籤:git push origin --tags18.現場的儲存與恢復git stash #將目前的工作現場儲存git stash list #檢視所有儲存的工作現場工作現場還在,Git把stash內容存在某個地方了,但是需要恢復一下,有兩個辦法:一是用git stash apply [email protected]{0}恢復,但是恢復後,stash內容並不刪除,你需要用git stash drop [email protected]{0}來刪除;另一種方式是用git stash pop,恢復的同時把stash內容也刪了,這種方式省時省力注意點:(1)如果在分支下新建檔案,而尚未執行add操作,stash無法將新檔案納入儲存的現場,因為stash只對被修改的被追蹤的檔案暫存的變更有效,對於新檔案必須先執行add。(2)如果修改分支下的已被追蹤的檔案,不管有沒有對修改的檔案進行add操作,如果執行stash,所有修改會被納入儲存的現場,而檔案會恢復成修改前的狀態。恢復現場後,檔案又呈現被修改後的狀態。特別的是,如果修改的檔案在stash前已經被add了,恢復現場後,暫存區的內容就會清空,相當於這個檔案從未被add一樣。19.設定Git UI顏色讓Git顯示顏色,會讓命令輸出看起來更醒目git config --global color.ui true20.忽略特殊檔案(1)在Git工作區的根目錄下建立一個特殊的.gitignore檔案,然後把要忽略的檔名填進去,Git就會自動忽略這些檔案。不需要從頭寫.gitignore檔案,GitHub已經為我們準備了各種配置檔案,只需要組合一下就可以使用了。所有配置檔案可以直接線上瀏覽:https://github.com/github/gitignore忽略檔案的原則是:
  • 忽略作業系統自動生成的檔案,比如縮圖等;
  • 忽略編譯生成的中間檔案、可執行檔案等,也就是如果一個檔案是通過另一個檔案自動生成的,那自動生成的檔案就沒必要放進版本庫,比如Java編譯產生的.class檔案;
  • 忽略你自己的帶有敏感資訊的配置檔案,比如存放口令的配置檔案。
比如一個完成的.gitignore檔案,內容如下:------------------------------# Windows:Thumbs.dbehthumbs.dbDesktop.ini# Python:*.py[cod]*.so*.egg*.egg-infodistbuild-------------------------------(2)把.gitignore也提交到Gitgit add .gitignoregit commit -m "there is a description"就完成了!當然檢驗.gitignore的標準是git status命令是不是顯示working tree clean。使用Windows的注意:如果在資源管理器裡新建一個.gitignore檔案,系統會非常弱智地提示必須輸入檔名,但是在文字編輯器裡“儲存”或者“另存為”就可以把檔案儲存為.gitignore了。(3)如果確實想要新增已經被.gitignore忽略的檔案,可以用-f強制新增到Gitgit add -f test.class(4)懷疑.gitignore寫的有問題,需要查詢哪個規則寫錯了,可以用git check-ignore命令檢查:git check-ignore -v App.class.gitignore:3:*.class App.class表示.gitignore的第3行規則忽略了App.class這個檔案,於是我們就可以知道應該修訂哪個規則。21.為命令配置別名(1)命令可以簡寫,用git st表示git status,再比如用co表示checkout、ci表示commit、br表示branch:git config --global alias.co checkoutgit config --global alias.ci commitgit config --global alias.br branch以後提交就可以簡寫成:git ci -m "there is a description"--global引數是全域性引數,也就是這些命令在這臺電腦的所有Git倉庫下都有用。(2)命令git reset HEAD <filename>可以撤銷暫存區的修改(unstage),重新放回工作區。既然是一個unstage操作,就可以配置一個unstage別名:git config --global alias.unstage 'reset HEAD'就可以簡化命令:git unstage test.py = git reset HEAD test.py(3)配置一個git last,讓其顯示最後一次提交資訊git config --global alias.last 'log -1'這樣,用git last就能顯示最近一次的提交:git lastcommit 015851cbe2902bf01fbba198af5d6705dc0e03ac (HEAD -> dev)Author: xxx <xxx@foxmail.com>Date: Mon Apr 23 13:52:44 2018 +0800 add git ignore list(4)還有把lg配置成了:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"來看看git lg的效果:
22.修改配置檔案配置Git的時候,加上--global是針對當前使用者起作用的,如果不加,那隻針對當前的倉庫起作用。每個倉庫的Git配置檔案都放在.git/config檔案中:cat .git/config-----------------------------------------------------------------------------[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[branch "master"][branch "dev"][remote "github"] url = [email protected]:xxx/LearnGit.git fetch = +refs/heads/*:refs/remotes/github/*[remote "gitee"] url = [email protected]:xxx/LearnGit.git fetch = +refs/heads/*:refs/remotes/gitee/*-----------------------------------------------------------------------------而當前使用者的Git配置檔案放在使用者主目錄下的一個隱藏檔案.gitconfig中:-----------------------------------------------------------------------------[user] name = xxx email = xxx@foxmail.com[gpg] program = C:\\Program Files (x86)\\gnupg\\bin\\gpg.exe[color] ui = true[alias] co = checkout ci = commit br = branch last = log -1 lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit-----------------------------------------------------------------------------別名就在[alias]後面,要刪除別名,直接把對應的行刪掉即可。配置別名也可以直接修改這個檔案,如果改錯了,可以刪掉檔案重新通過命令配置。多人協作的工作模式通常如下:(1)首先將遠端倉庫克隆為本地倉庫git clone [email protected]:xxx/LearnGit.git(2)在本地建立和遠端分支對應的分支git checkout -b <本地分支名> origin/<遠端分支名>本地和遠端分支的名稱最好一致;(3)在本地分支完成任務後,可以試圖用git push <遠端主機名> <本地分支名>推送自己的修改;(2)如果推送失敗,則表明遠端分支比本地更新,需要先用git pull試圖合併;(3)如果pull失敗並提示“no tracking information”,則說明本地分支和遠端分支的連結關係沒有建立,用命令git branch --set-upstream-to=<遠端主機名>/<遠端分支名>  <本地分支名>建立連結;(4)如果合併有衝突,則解決衝突,並在本地提交(add => commit);(5)沒有衝突或者解決掉衝突後,再用git push <遠端主機名> <本地分支名>推送就能成功。

相關推薦

Git使用方法精心整理絕對夠用

一、git客戶端(本地倉庫)的一些操作1.設定賬戶(需要和github賬戶設定一致)git config --global user.name xxxgit config --global user.email [email protected].檢視設定git config

細說裝飾器精心整理務必收藏

什麼是裝飾器? 簡單來說,可以把裝飾器理解為一個包裝函式的函式,它一般將傳入的函式或者是類做一定的處理,返回修改之後的物件。 所以我們能夠在不修改原函式的基礎上,在執行原函式前後執行別的程式碼,比較常用的場景有日誌插入,事物處理等 我們知道,在python中韓式也是被視為物件的,可以作為引數

c# winform 關於DataGridView的一些操作很全絕對夠用

設定欄位名  設定欄位值  設定單元格表示 Error圖示  設定當前單元格  取得當前單元格內容  取得當前單元格的列 Index  取得當前單元格的行 Index  向下一行 

頁面切換語言的解決方法偏向小站靜態頁面

首先在html結構中,把需要轉換的結構都加上類名,最好加在含有 文字的最近的父級上,因為我們要利用文字節點來替換。 然後構造出類似json這種感覺的資料,方便替換操作。還有宣告一個變數flag,記錄當前使用的什麼語言。 var flag = 'cn'; var lan

WebStorm 使用中常用的快捷鍵自己整理常用的

在使用編輯器webStorm編輯程式碼時,使用一些快捷鍵,能很好的提高我們的開發效率,以下為我整理的平時常用的快捷鍵,(後續會繼續新增) 常用快捷鍵 1、Ctrl + /: 單行註釋 2、Ctrl + Shift + /: 添加註釋文字/塊註釋 3、Ctrl + F: 查詢文字 4、

oracle常用命令日常整理持續更新

oracle常用命令 一、Oracle資料庫例項、使用者、目錄及session會話檢視: 1、ORACLE SID檢視設定 檢視SID、使用者名稱 $ env|grep SID 、select * from v$instance、select instance_name,h

關於量子計算機的一些整理 精心整理原創

ole comm ip 協議 sse2 工程 5.0 tle 世界 sea 首先祝賀中國在量子計算方面的突出進步。 “5月3日,中國科技大學潘建偉教授宣布,研究團隊在去年首次實現十光子糾纏操縱的基礎上,構建了世界首臺超越早期經典計算機的單光子量子計算機。量子計算利用

一篇文章快速了解 量子計算機 精心整理

難題 表示 學技術 公司 如何實現 lan 文章 區分 核心 好了,下面轉入量子計算機的總結: 有趣的量子理論 量子論的一些基本論點顯得並不“玄乎”,但它的推論顯得很“玄”。我們假設一個“量子”距離也就是最小距離的兩個端點A和B。按照量子論,物體從A不經過A和B中的

C語言高效編程的幾招絕對實用絕對經典

n) 工程 fine bit 高效 nbsp 與運算 測試的 body 編寫高效簡潔的C語言代碼,是許多軟件工程師追求的目標。廢話不說,走起! 第一招:以空間換時間 計算機程序中最大的矛盾是空間和時間的矛盾,那麽,從這個角度出發逆向思維來考慮程序的效率問題 eg.字

web應用路徑問題相對路徑絕對路徑動態獲取路徑

body des 轉發器 端口號 .get redirect style https 不容易 1、相對路徑和絕對路徑 絕對路徑:以 “ / ” 開頭的路徑,是完整的路徑。 相對路徑:不以 “ / ” 開頭的路徑,是相對於當前web資源目錄的路徑。 在絕對路徑中, “ / ”

十一、接口接口的概念實現繼承實現、抽象類與抽象方法抽象類抽象方法概念使用

輸出 重寫 關鍵字 new clas main ride ring strac 接口 接口是一種用來定義程序的協議,它描述可屬於任何類和結構的一組相關行為。 接口可由方法、屬性、事件和索引器這四種成員類型的任何組合構成,但不能包含字段。 接口通過類繼承來實現,一個類雖然只能

對屬性特性操作的三個主要方法創建設置刪除

title fin 有一個 例如 徹底刪除 n) 清除 move 多個 每個元素都有一個或多個特性,這些特性給相應元素或內容附加信息。操作特性的DOM的方法主要有三種 分別是getAttribute()、setAttribute()、removeAttribute().

Eslint報錯整理與解決方法持續整理

保存 分享圖片 indent angle strong center vsc 刪掉 abs 1.‘Unexpected tab character’   字面意思理解呢就是意想不到的制表符,當時出現的時候就是我習慣的使用Tab鍵去打空格,但是eslint默認不認可Tab,所

自己實戰整理面試題--Mysql帶答案不斷更新

mysql目前用的版本? 5.1.21;目前最高5.7.* left join,right join,inner join? left join(左連線) 返回包括左表中的所有記錄和右表中連線欄位相等的記錄  right join(右連線) 返回包括右表中的所有記錄和左

自己實戰整理面試題--Http網路相關帶答案不斷更新

*1.描述下網頁一個 Http 請求,到後端的整個請求過程: https://blog.csdn.net/w372426096/article/details/82012229 瀏覽器輸入https:www.koolearn.com這個URL,瀏覽器只知道名字是www.koolearn.

自己實戰整理面試題--多執行緒帶答案不斷更新

一個執行緒兩次呼叫 start() 方法會出現什麼情況?執行緒的生命週期,狀態是如何轉移的? Java 的執行緒是不允許啟動兩次的,第二次呼叫必然會丟擲 IllegalThreadStateException,這是一種執行時異常,多次呼叫 start 被認為是程式設計錯誤。 關於執行緒生

自己實戰整理面試題--鎖帶答案不斷更新

java有哪些鎖? Synchronized 和 ReentrantLock? 1、synchronized是重量級鎖? 從JDK 1.5 到 JDK 1.6 有一個高效併發方面的重要改進,HotSpot虛擬機器開發團隊在這個版本中花費了很大的精力去對Java中的鎖進行優化(synchr

自己實戰整理面試題--JVM帶答案不斷更新

jvm記憶體模型,java記憶體模型,GC機制和原理; 物件是否可 GC? GC分哪兩種,Minor GC 和Full GC有什麼區別?什麼時候會觸發Full GC?分別採用什麼演算法? 垃圾回收演算法 垃圾回收器 G1 常見的JVM調優方法有哪些?可以具體到調整哪個引數,調成什麼值? JVM虛

自己實戰整理面試題--集合帶答案不斷更新

Set 和 List 區別? ArrayList 和 LinkedList 區別? 如果存取相同的資料,ArrayList 和 LinkedList 誰佔用空間更大? List 和 Map 區別,Arraylist 與 LinkedList 區別,ArrayList 與 Vector 區別? S

Jquery 操作 checkbox 方法全選取消全選取值

$("#btn1").click(function(){ $("[name='checkbox']").attr("checked",'true');//全選 }) $("#btn2").click(function(){