java中形參,實參,成員變數,區域性變數,構造方法的作用和區別
git分散式版本控制系統
- 集中式版本控制系統:(SVN,CVS)
版本庫存放在中央伺服器,幹活時使用自己電腦,必須聯網才能工作。 - 分散式版本控制系統:(git)
每個電腦都是完整的版本庫,
- 版本庫:
倉庫,repository,你可以簡單理解成一個目錄,這個目錄裡面的所有檔案都可以被Git管理起來,每個檔案的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。
建立倉庫流程:
- 建立目錄
- git init 把這個目錄變成Git可以管理的倉庫(.git目錄,用來跟蹤版本管理版本庫)
- git add 檔案 將檔案新增到倉庫
- git commit -m “描述” 把檔案提交到倉庫
繫結github賬號流程:
- 建立ssh key ,開啟主目錄看有沒有.ssh下有無id_rsa(私鑰)和id_rsa.pub(公鑰)這兩個檔案,無得話建立 ssh-keygen -t rsa -C "[email protected]",然後一路回車
- 建立倉庫
- 在本地倉庫執行 git remote add origin [email protected]:你的名字/learngit.git
- git branch -M main
- git push -u origin master
多人協作流程:
- 首先,可以試圖用git push origin
推送自己的修改; - 如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;
- 如果合併有衝突,則解決衝突,並在本地提交;
- 沒有衝突或者解決掉衝突後,再用git push origin
推送就能成功! - 如果git pull提示no tracking information,則說明本地分支和遠端分支的連結關係沒有建立,用命令git branch --set-upstream-to
origin/ 。
git命令
推送一個本地標籤: git push origin
推送全部未推送過的本地標籤:git push origin --tags
刪除一個本地標籤: git tag -d
刪除一個遠端標籤: git push origin :refs/tags/
指定某個commit id 為標籤:git tag v0.9 commit id
新建一個標籤:git tag
可以指定標籤資訊:git tag -a
檢視所有標籤:git tag
本地建立和遠端分支對應的分支:git checkout -b branch-name origin/branch-name
檢視分支:git branch
建立分支:git branch name
切換分支:git checkout name
建立+切換分支:git checkout -b
合併某分支到當前分支:git merge
刪除分支:git branch -d
強行刪除:git branch -D
將遠端庫得內容克隆到本地:git clone [email protected]:你的名字/gitskills.git
將檔案推送遠端庫:git push
刪除版本庫中的檔案:git rm
將文字在工作區得修改全部撤銷:git checkout -- readme.txt (其實是用版本庫中的版本替換工作區中的版本)
退回到上一個版本:git reset --hard HEAD^ (也可git reset --hard 版本號)
檢視每次更改的內容:git log (簡潔一點:git log --pretty=oneline)
可以檢視狀態:git status
可以看工作區與倉庫中的檔案進行對比可以知道修改了哪裡:git diff
用來記錄每一條命令:git reflog
檢視版本資訊:git --version
檢視遠端倉庫的資訊:git remote -v
新增一個遠端倉庫:git remote add url
刪除遠端倉庫:git remote remove
新增遠端倉庫:git remote add origin [email protected]:blcakaman/learngit.git
同步遠端伺服器上的資料到本地:git fetch origin
確認當前的分支:git branch
修改當前分支名字:git branch -M main
命令可以看到分支合併圖:git log --graph
將工作環境儲存起來:git stash
將工作環境從儲存中拿出來:git stash pop
檢視儲存的列表:git stash list
指定恢復stash:git stash apply stash@{0}
複製一個特定的提交到當前分支:git cherry-pick 版本號
git配置檔案有三個位置:
- /etc/gitconfig 系統配置檔案,對應git config --system
- ~/.gitconfig 使用者全域性配置檔案,對應git config --global
- 專案目錄中.git/config 僅該專案配置檔案,對應git config --local
其他
一大串類似1094adb...的是commit id(版本號)
在Git中,用HEAD表示當前版本,也就是最新的提交1094adb..,上一個版本就是HEAD,上上一個版本就是HEAD,當然往上100個版本寫100個比較容易數不過來,所以寫成HEAD~100
目錄下為工作區,.git是Git得版本庫,其中stage為暫存區,還有git自動建立得分支master,以及指向naster得指標HEAD
git add是將檔案新增到暫存區
git commit 是將暫存區得雖有檔案當前分支
忽略某些檔案時,需要編寫.gitignore;
.gitignore檔案本身要放到版本庫裡,並且可以對.gitignore做版本管理!
把指定檔案排除在.gitignore規則外的寫法就是!+檔名
首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本釋出時,再把dev分支合併到master上,在master分支釋出1.0版本;你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。
--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。
標籤總是和某個commit掛鉤。如果這個commit既出現在master分支,又出現在dev分支,那麼在這兩個分支上都可以看到這個標籤。
問題:
本機倉庫沒有和SSH key和關聯上可:
- ssh-add "你的 id-rsa 檔案地址"
- add之後返回倉庫目錄使用如下命令:
ssh [email protected]