一、Git的下載和安裝?
前提條件:IntelliJ IDEA 版本是2023.3 ,那么配置 Git 時推薦使用 Git 2.40.x 或更高版本
下載地址:CNPM Binaries Mirror
操作:打開鏈接 → 滾動到頁面底部 → 選擇2.40.x或更高版本的 .exe 文件(如 Git-2.41.0.3-64-bit.exe)下載?
1、選擇一個2.40.x或更高的版本
2、點擊后綴名為 64-bit.exe?即可
3、安裝Git只需要雙擊軟件包然后一直下一步 即可
?4、在D盤或其他盤? 新建一個目錄(目錄名稱確保是英文)
?注意目錄的名稱是英文(名稱隨意)
5、一直點擊next 即可?
6、鼠標右鍵? ?出現了如下圖兩個指令那么就是安裝成功了
Open Git GUl here:圖形化操作界面
Open Git Bash here:Unix/Linux風格的命令行,使用多,推薦
二、Git常用命令的使用
文檔地址:Git 大全 - Gitee.com
常用指令示意圖:
1、配置用戶名和郵箱
(1)鼠標右鍵并點擊Open Git Bash here
(2)使用下面命令:查看配置信息
git config -l
?如圖我之前配置好的用戶名和郵箱
(3)使用下面的命令配置用戶信息 (注意是填自己的用戶信息)
git config --global user.name "dhp"
git config --global user.email "dhp041011@qq.com"
?(4)配置完后繼續使用命令查看
2、查看配置信息的命令:
查看所有配置:
git config -l
查看系統配置:
git config --system --list
查看當前用戶配置:
git config --global --list
?3、創建全新的本地倉庫
(1)在G盤新建一個文件夾(名稱要求是英文)
(2) 進入新創建的目錄,鼠標右鍵并點擊Open Git Bash here
(3)輸入命令:git init? 即可
git init
進入.git文件后就可以看見?所有的信息
4、克隆遠程倉庫
克隆遠程倉庫相當于實現創建了一個本地的倉庫
(1)在G盤新建一個文件夾(名稱要求是英文)
(2)在gitee/github上找一個開源項目地址
如果沒有賬號那么就先注冊
隨便搜一個java項目?
直接復制這個帶命令的地址?
?(3) 進入新創建的目錄,鼠標右鍵并點擊Open Git Bash here
(4)將復制的命令粘貼到終端執行即可?
git clone
5、文件操作指令
版本控制就是對文件的版本控制,在Git管理中,文件被統一管理,有四個狀態?
1.Untracked:未跟蹤,此文件在文件夾中,但并沒有加入到git庫,不參與版本控制。通過git add 狀態變為Staged
2.Unmodify:文件已經入庫,未修改,即版本庫中的文件快照內容與文件夾中完全一致,這種類型的文件有兩種處理方式,如果它被修改,變為Modified.如果使用git rm移出版本庫,則成為Untracked
3.Modified:文件已修改,僅僅是修改,并沒有進行其他的操作,這種文件有兩個去處,通過git add可進入暫存staged狀態,使用git checkout 則丟棄修改過,返回到unmodify狀態,這個git checkout即從庫中取出文件,覆蓋當前修改
4.Staged: 暫存狀態,執行git commit則將修改同步到庫中,這時庫中的文件和本地文件又變為一致,文件為Unmodify狀態.執行git reset HEAD filename取消暫存,文件狀態為Modified
(1)在克隆的本地倉庫中新建一個文本文件作為測試?(名稱隨意例如 a.txt)
?(2)鼠標右鍵并點擊Open Git Bash here進入終端
(3)使用pwd查看當前所在目錄,使用git status 文件名 查看文件的狀態
git的命令和Linux的常用命令是相同的,因為發明者是同一個人
git status 文件名
查看所有文件的狀態:
git status
(4) 使用git add .? 將所有文件添加到暫存區
git add .
# 添加指定文件到暫存區
$ git add [file1] [file2] ...
(5)提交暫存區中的內容到本地倉庫:git? commit -m '消息內容'
git commit -m [message]
三、gitignore忽略文件?
不想把某些文件納入版本控制中,比如數據庫文件,臨時文件,設計文件等,在主目錄下建立".gitignore"文件(默認就有),此文件有如下規則:
1.忽略文件中的空行或以井號(#)開始的行
2.支持Linux通配符。例如:星號(*)代表任意多個字符,問號(?)代表一個字符,方括號([abc])代表可選字符范圍,大括號({string1,string2.….})代表可選的字符串等。
3.如果名稱的最前面有一個感嘆號(!),表示例外規則,將不被忽略。
4.如果名稱的最前面是一個路徑分隔符(/),表示忽略.gitignore文件所在的目錄,不包括其任何子目錄 中的dir日錄
5.如果名稱的最后面是一個路徑分隔符(/),忽略 .gitignore文件所在的目錄和所有子目錄的dir目錄
四、創建自己的遠程倉庫
(1)進入gitee官網? 工作臺 - Gitee.com? ?點擊新建倉庫
(2)填寫相關信息?
(3)點擊創建即可?
如下圖:這樣就創建好了?
擴展:?
readme.md文件是一個該項目的介紹文件
如果想修改readme.md文件可以直接點擊鏈接
點擊編輯就可以修改?
點擊管理可以修改一些配置信息?
五、設置SSH公鑰實現免密登錄
(1)找到.ssh文件夾
.ssh
文件夾默認位于 用戶主目錄 下,具體路徑因操作系統而異:
- Windows 系統
- 路徑:
C:\Users\你的用戶名\.ssh
- 特性:默認隱藏,需在文件資源管理器中啟用「隱藏的項目」顯示 。
- 路徑:
- Mac/Linux 系統
- 路徑:
~/.ssh/
(即?/home/你的用戶名/.ssh
) - 特性:直接通過終端訪問(如?
cd ~/.ssh
) 。
- 路徑:
注意:.ssh 文件夾通常在使用 SSH 命令(如 ssh-keygen)生成密鑰時自動創建。若未執行過相關操作,文件夾可能不存在 。(如果沒有該文件夾需要自己創建)
右鍵創建.ssh文件
(2)進入.ssh文件右鍵點擊?Open Git Bash here
(3)使用ssh-keygen命令生成密鑰,輸入后連續enter即可
ssh-keygen
(4)使用記事本打開公鑰并復制里面的內容(注意不要修改!!!)
(5)進入Gitee官網?工作臺 - Gitee.com?點擊賬號設置
(6)找到ssh公鑰?
(7)將剛剛復制的公鑰內容粘貼到下面?
(8)輸入密碼驗證?
結果如下:?
這樣你就可以使用同樣的方式將你的遠程倉庫的項目克隆到本地倉庫
git clone https://gitee.com/deardhp/java-learning-project-01.git
六、IDEA 項目使用Git管理
1、配置git
(1)?在IDEA中配置Git
(2)找到自己安裝git的位置,并找到git.exe文件
2、clone遠程倉庫項目到idea
(1) 從gitee官網中復制自己創建的空項目(沒有創建的看前面第四點)
(2)clone遠程倉庫的項目到idea中
(3)clone項目?(確保網絡暢通)
3、創建子模塊并將Main類push到遠程倉庫
(1)創建子模塊
(2)Main類爆紅,因為該類的狀態是?Untracked 還沒有參與版本控制
(3) 添加Main到暫存區
(4)commit? Main到本地倉庫
(5)編寫注釋并提交
(6)push Main 到遠程倉庫?
4、命令行的方式將Test類推到遠程倉庫
一般還是推薦使用ide圖形化界面
(1)創建一個測試類
(2)打開終端,將所有文件添加到暫存區?
git add .
(3)提交到本地倉庫
git commit -m "消息"
(4)push 到遠程倉庫
git push
5、分支與合并
(1)創建一個忽略Maven的遠程倉庫
(2)克隆到本地的一個文件夾中?
(3)復制項目里的內容
(4)在idea中新創建一個Maven項目
(5)快速定位項目存放的位置
?
?(6)將第(3)點復制的內容粘貼到這里
(7)進入idea并刷新Maven?
此時該項目接收了版本控制?
測試一下:將Main類推送到遠程倉庫?(前面有push教程)
5.1、將本地分支推送到遠程倉庫(指令操作)
(1)列出所有本地倉庫的分支
git branch
(2)列出所有遠程倉庫分支
git branch -r
(3)創建本地分支(v1.0是分支的名稱)
git branch v1.0
(4)切換到v1.0分支
此時可以看到v1.0前面有一個“*”表示當前所在的分支?
git checkout v1.0
(5)推送本地分支到遠程倉庫
遠程分支不存在時:Git 會自動在遠程倉庫創建同名分支。
git push origin <本地分支名>
git push <遠程倉庫名> <本地引用>:<遠程引用>
git branch origin v1.0
5.2、在idea項目創建分支推送到遠程倉庫
(1)找到git日志臺(一般在左下角)
(2)選中你要推送的分支,右鍵?
(3)checkout 簽出?到v2.0版本
可以看出當前的分支?
(4)在Main類中新增一條記錄?
?(5)提交(commit)并推送(push)Main到遠程倉庫
提交(commit)并推送(push)的步驟在上面有教程
注意:分支1與分支2之間是獨立的,即:push代碼到v2.0分支不會影響master分支的代碼?
5.3、在idea中實現合并分支
這個部分和前面創建分支相關聯,需要先看創建分支部分
(1)創建一個Hi類用來測試合并
(2)把這個Hi類push到遠程倉庫中,從add->commit->push
從Gitee中可以看到如下結果
(3)checkout 簽出版本到master分支(切換版本為master)?
(4)選中v2.0,右鍵,選擇“將v2.0合并到master中?”
此時,master分支多了一個Hi類?
(5)將Hi推送到遠程倉庫
(6)如果合并分支的時候有沖突,可以選擇一種情況
請看下面兩種情況,當v2.0的Hi類與master分支的Hi類發生沖突時:區別是輸出內容不同
將v2.0分支合并到master分支時,會出現下面這種情況
這里演示選擇“接收他們的”即:將v2.0的代碼覆蓋master的代碼
還有一種解決方案:手動修改代碼
直接選擇關閉?
此時這個文件會爆紅,這里不要害怕,將多余的部分刪除即可?
這里保存了兩個分支的代碼,具體情況根據實際業務修改代碼?
自己修改代碼后經過add->commit->push即可
注意事項和細節:?
1.如果同一文件在合并分支時都被修改了則會引起沖突,修改沖突文件后重新提交(說明:這時要決定保留哪個分支代碼)
2.Master主分支應該非常穩定,用來發布新版本,一般情況下不要在上面工作,工作一般在新建的分支(比如dev、y1.0、v2.0)上工作
3.分支代碼穩定后,可以合并到主分支Master
4.在進行分支合并時,最好是各分支都已經處于Committed的狀態,這樣可以減小處理合并沖突的難度.
5.Push操作即:Push 你已經Committed的代碼,如果你修改了一個文件,但是你沒有執行Commit,那么你Push的其實是上次Committed的狀態
6.add、 commit 、push 的操作可以針對單個文件,也可以針對文件夾(可以看一下Idea的git操作菜單)
7.文件要Commit 前需要先Add 到 暫存區,以后文件修改了,就可以直接Commit
8.如果要刪除文件,可以在本地刪除該文件,然后commit 文件所在文件夾即可,并重新push該分支,那么在遠程倉庫,也會刪除對應分支的文件.