本篇文章給大家?guī)砹岁P(guān)于git的相關(guān)知識,其中主要是git的教程筆記整理,包括了版本控制器方式、安裝、基本操作和操作指令等等,希望對大家有幫助。
推薦學(xué)習(xí):《git》
一、版本控制器方式
1.1 實(shí)際場景
備份 代碼還原 協(xié)同開發(fā) 追溯代碼問題
1.2 版本控制方式
- 集中式版本控制工具 svn和CVS
每個(gè)人都從中央服務(wù)器下載代碼,修改后提交到中央服務(wù)器。 - 分布式版本控制工具 git
每個(gè)人電腦上都是一個(gè)完整的庫,互相都可以看到對方的更改。
二、安裝
- 解釋:
· Git GUI:Git提供的圖形界面工具
· Git bash:Git提供的命令行工具 - 安裝完之后先設(shè)置郵箱(郵箱確定不同的人員):
打開Git Bash—
設(shè)置人git config –global user.name “name” —
設(shè)置郵箱git config –global user.email “email” - 可通過git config –global user.name查看是否設(shè)置成功
三、開始操作
3.1創(chuàng)建本地倉庫
1)創(chuàng)建一個(gè)空目錄作為本地Git倉庫
2)進(jìn)入這個(gè)目錄中,點(diǎn)擊右鍵打開Git bash窗口
3) 執(zhí)行命令git init
4) 創(chuàng)建成功后可以在文件夾下看到隱藏的.git目錄
之后可以查看第四部分的基礎(chǔ)操作
3.2 分支
幾乎所有的版本控制都支持分支。每個(gè)人有獨(dú)立的分支,開發(fā)互不影響。完成之后再合并在一起。HEAD指向的就是當(dāng)前的分支,修改只會改變當(dāng)前分支的內(nèi)容。
? ? ? git branch 查看分支
? ? ? git branch name創(chuàng)建name分支
? ? ? git checkout 分支名 切換分支 ? ? ? ? git checkout -b 分支名 創(chuàng)建并切換
? ? ? git merge 分支名1 合并分支 ? ?分支1和當(dāng)前分支合并
? ? ? ? ? ? 如果不同分支有沖突:則不會自動合并,將不同版本的信息存在文件中需要人工選擇
? ? ? git branch -d name刪除name分支 -D強(qiáng)制刪除
3.3 Git遠(yuǎn)程倉庫
常用 github、碼云、gitlab(企業(yè)常用),課程以碼云為例。
1)打開gitee網(wǎng)頁登錄— 新建倉庫—
2)配置ssh公鑰:
- 在bash中輸入ssh-keygen -t rsa(不斷回車如果公鑰已經(jīng)存在則自動覆蓋)
- cat ~/.ssh/id_rsa.pub獲取公鑰 — 復(fù)制輸出的公鑰 — 打開gitee的用戶-設(shè)置-SSH公鑰
- 驗(yàn)證配置是否成功:ssh -T git@gitee.com
3)連接本地倉庫
- 打開在gitee上創(chuàng)建的倉庫,復(fù)制SSH(遠(yuǎn)程倉庫的地址)
- 在bash中g(shù)it remote add name(自己設(shè)置的名字) ssh地址 注意這之前要git init
- 查看是否配置成功git remote 出現(xiàn)自己設(shè)置的名字就成功了
- 本地代碼上傳git push [本地分支名]:[遠(yuǎn)端分支名] 注意這之前要現(xiàn)在本地倉庫中提交
其完整代碼是git push [-f] [–set-upstream][遠(yuǎn)端名稱] [本地分支名]:[遠(yuǎn)端分支名]
[-f]:強(qiáng)制覆蓋遠(yuǎn)端代碼
[–set-upstream] 表示建立本地和遠(yuǎn)端分支的關(guān)聯(lián)關(guān)系
遠(yuǎn)端分支名和本地相同時(shí)可省略 :[遠(yuǎn)端分支名] 兩者已關(guān)聯(lián)則可省略 [本地分支名]:[遠(yuǎn)端分支名]
4)其他操作
- 從遠(yuǎn)程倉庫克隆 git clone [本地路徑]
- 從遠(yuǎn)程倉庫中抓取 git fetch [remote name] [branch name]
? ? ?將倉庫里的更新抓取到本地,不會進(jìn)行合并。如果不指定遠(yuǎn)端名稱和分支名,則抓取所有并更新當(dāng)前分支。如果需要合并,則需要git merge [remote name] - 拉取命令git pull [remote name] [branch name] 即抓取+合并
- 解決合并沖突
AB 都從遠(yuǎn)端clone后,A本地修改后push到遠(yuǎn)端,B從本地修改相同文件的同一內(nèi)容后,想從遠(yuǎn)端倉庫中拉取,則會合并沖突,和本地不同分支有沖突解決方式相同。
3.4 在idea中使用git
沒看不用idea
四、基礎(chǔ)操作指令
之前創(chuàng)建的文件夾下除了.git文件之外的其他文件都是我們的工作目錄。在工作目錄下對文件進(jìn)行修改(增加、刪除、更新),這些修改的狀態(tài)會隨著我們執(zhí)行Git命令而發(fā)生變化
git add :從無到有新創(chuàng)建一個(gè)文件(未跟蹤)或 修改已有文件(未暫存) 使用 git add 命令 將文件存至?xí)捍鎱^(qū)。(工作區(qū)—暫存區(qū))
git commit :暫存區(qū)進(jìn)入倉庫,生成一次提交記錄。(暫存區(qū)—倉庫)git commit -m “評論內(nèi)容”
git status :查看工作目錄和暫存區(qū)的狀態(tài)
git log:查看提交的歷史
- –all 顯示所有分支
- –pretty=oneline 將提交信息顯示為一行
- –abbrev-commit 使得輸出的commit更簡短
- –graph 以圖顯示
git reset –hard commitID :版本回退
可以用git -log 或git log指令查看commitID
touch .gitignore 將不想?yún)⑴c更新的文件名加入,就可以不再參與倉庫管理
推薦學(xué)習(xí):《git》