叮咚買菜暴漲,經緯張穎戲稱:或當成滴滴程式碼了
Git工作機制:
工作區->git add->暫存區(不生成版本)->git commit->本地庫(生成版本)->git push->遠端庫(git hub,gitee,gitlab)
本地庫的程式碼版本只有本機看到,一旦push到遠端庫,則所有訪問遠端庫的人都能看到版本
預設安裝後
進入本機的某個資料夾路徑下,右鍵,會有Git GUI here和Git bashhere兩個選單項,分別是Git的圖形介面和命令列介面,命令列介面使用的是linux命令。
隨便進入一個資料夾,右鍵點git bash here後即進入當前目錄。
分支管理:
預設初始化git本地庫後,生成主線分支預設名為master,可以在master分支基礎上生成多個分支,或者任意分支上再生成分支,方便多線任務並行開發,最後merge程式碼到master上,合併所有程式碼。
程式碼衝突:兩個分支程式碼衝突(同一個檔案兩個分支都修改了),同時合併會conflict
此時在合併分支階段修改程式碼,手動解決衝突,然後使用git add檔名+git commit -m "xxx",commit後不跟檔名。然後可解決衝突,merge成功
概念:
head指標,一直指向當前所在的分支。當前分支是master,head就代表master,當前是hotfix分支,head就代表hotfix分支。
連結遠端庫兩種方式,https和ssh
Git命令簡介:
設定簽名:
git config user.name xxx
git config user.email xxx@xxx
git config -global user.name xxx
git config -global user.email xxx@xxx
注:不帶global引數的是本地庫級別的簽名,帶global引數則是系統級別的簽名,兩者設定一個即可,如果都設定則就近用本地庫級別簽名,如果都不設定則不能提交git
本地庫常用命令:
git --version檢視當前git版本,可以用來驗證git安裝成功。
git init初始化git本地庫,會多.git隱藏資料夾
git status檢視當前本地庫狀態
git add filename新增檔案到暫存區此時git開始追蹤此檔案,但是沒有形成歷史版本
git rm -cache filename 從暫存區刪除檔案
git commit -m "first commit" fliename提交本地庫 -m是自定義版本資訊
git reflog檢視log,有版本號版本資訊
git log檢視詳細log,多了提交人提交日期等。
git reset -hardversioncode,回到某個版本
git branch -v檢視分支
git branch分支名 :建立分支
git branch -d [分支名]:刪除分支如果分支還沒合併則會有錯誤提示
git branch -D [分支名]:強刪除分支,忽略未合併提示
git checkout分支名:切換分支
git merge分支名:把指定分支合併到當前分支上,所以在執行此命令前,要先把分支切換到目的端分支上。合併分支後會把指定分支改動的內容加到目的端分支上。
遠端託管中心操作相關命令:
git remote -v檢視遠端庫別名
git remote add遠端庫別名遠端庫http連結:給遠端庫建立別名,一旦建立成功,則會產生兩個,給fetch和push都取了別名
本地庫與遠端庫:
git push遠端庫名本地庫分支名: 推送本地分支到遠端庫
git clone遠端庫地址: 從遠端庫克隆島本地庫。clone做三件事:1,拉取程式碼,2初始化本地庫,3建立別名origin
git pull遠端庫名本地庫分支名:從遠端庫拉取改動,更新到本地庫 ,git pull = git fetch + git merge, git pull -rebase = git fetch+git rebase
ssh-keygen -t rss -C遠端庫賬號郵箱:三次回車後生成遠端庫sshkey到本地c:\users\本地賬號名\.ssh中pub公鑰,另一個是私鑰,要把公鑰內容新增到遠端庫.-》ssh中
遠端庫與遠端庫之間:
fork:另一個遠端庫叉程式碼到自己的遠端庫,類似複製一份
pullrequest:申請把遠端庫程式碼拉取到另一個遠端庫
merge:把提交pullrequest的遠端庫merge到遠端庫
xxx.ignore檔案:
副檔名為.ignore的檔案中內容可以設定被git忽略的檔案,檔案內容,直接寫*.txt、**/foldername等希望忽略的檔案檔名即可。
建立.ignore後文件放在任意位置均可,需要在.git/config檔案中新增:
[core]
excludesfile="c:/xxx.ignore"新增此引用。
與VS code結合後文件名顏色會有區分:
紅色檔案代表未被git追蹤
綠色代表新增到暫存區
灰色代表忽略檔案
黑色代表已經提交本地庫
藍色代表被追蹤過但是被修改了