IDEA中g(shù)it對于指定文件進行版本控制的全過程
最近在自己寫代碼的時候遇到了和公司里面不一樣的,自己寫的代碼推到碼云上是,會默認(rèn)對于所有修改都進行提交,這樣再提交的時候很不方便。
問了問ai,表示可以手動創(chuàng)建腳本實現(xiàn),但是ai曲解了我的意思,它實現(xiàn)的是直接對于所有更改過的文件實現(xiàn)自動化提交。
IDEA中自帶的版本控制很好用
下面是idea中的配置文件目錄
實際上解決這個問題的探索可以是:既然要實現(xiàn)指定只對某些特定文件進行版本控制,就直接去找不需要版本控制的文件。動一下腦子,選擇git選項下面的內(nèi)容就會出現(xiàn).gitignore,這不就是忽略嘛!
.gitignore
可以看到,上面出現(xiàn)的就是不需要進行版本控制的文件或者目錄。當(dāng)我們需要添加個文件的時候,寫出他相對于當(dāng)前.gitignore文件的相對路徑即可,實際上idea也會進行提示,如果前面有一個路徑錯誤了后面也就無法提示。
.git/info/exclude
.git/info/exclude
是 Git 項目中一個特殊的文件,其作用與 .gitignore
文件類似,主要用于指定不需要納入版本控制的文件。不過,二者也存在一些差異。
關(guān)鍵特性
本地生效:
.git/info/exclude
文件的配置僅對當(dāng)前用戶的本地倉庫有效,不會隨項目一同提交到遠(yuǎn)程倉庫。無需提交:由于該文件只在本地起作用,所以無需像
.gitignore
那樣將其添加到版本控制中。優(yōu)先級:與
.gitignore
相比,.git/info/exclude
的優(yōu)先級更高。若二者存在沖突規(guī)則,以.git/info/exclude
為準(zhǔn)。
典型用途
該文件常用于忽略那些因個人開發(fā)環(huán)境或工作流程而產(chǎn)生的文件,例如:
編輯器自動生成的臨時文件,像 VS Code 的
.vscode
目錄。本地編譯生成的文件,如
target/
或dist/
目錄。包含敏感信息的配置文件,如數(shù)據(jù)庫密碼等。
使用示例
若要忽略項目中的 .env.local
文件以及所有 .log
文件,只需在 .git/info/exclude
中添加以下內(nèi)容:
# 忽略本地環(huán)境配置文件 .env.local ? # 忽略日志文件 *.log
與 .gitignore 的差異
特性 | .git/info/exclude | .gitignore |
---|---|---|
是否提交到版本庫 | 否 | 是 |
作用范圍 | 僅對當(dāng)前用戶有效 | 對所有協(xié)作者都有效 |
文件位置 | 位于 .git/info/exclude | 項目根目錄或子目錄中 |
可見性 | 僅本地可見 | 所有克隆項目的人都可見 |
適用場景建議
個人忽略規(guī)則:適合將僅與自己開發(fā)環(huán)境相關(guān)的忽略規(guī)則放在
.git/info/exclude
中。共享忽略規(guī)則:若需要團隊成員共同遵循某些忽略規(guī)則,應(yīng)將其添加到
.gitignore
文件。
通過合理運用這兩個文件,能有效避免將不必要的文件提交到版本庫,從而保持倉庫的簡潔。
vcs.xml
版本控制系統(tǒng)配置文件
<?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="VcsDirectoryMappings"> <mapping directory="$PROJECT_DIR$" vcs="Git" /> </component> </project>
這個 XML 文件是 IntelliJ IDEA(或其他 JetBrains 系列 IDE)項目配置文件的一部分,通常它會被命名為 vcs.xml 并存儲在項目根目錄下的 .idea 文件夾中 (即 .idea/vcs.xml)。
它的核心作用是告訴 IntelliJ IDEA 當(dāng)前項目使用了哪個版本控制系統(tǒng) (Version Control System, VCS),以及項目中哪些目錄是受該版本控制系統(tǒng)管理的。
讓我們逐行解析這個文件的內(nèi)容:
<?xml version="1.0" encoding="UTF-8"?>
這是一個標(biāo)準(zhǔn)的 XML 聲明,表明這是一個 XML 文件,使用 UTF-8 字符編碼。
<project version="4">
這是根元素,表明這是一個 IntelliJ IDEA 項目的配置文件。
version="4"
是 IDEA 內(nèi)部用于標(biāo)識其項目文件格式版本的一個屬性。
<component name="VcsDirectoryMappings">
這定義了一個名為 "VcsDirectoryMappings" 的組件。在 IntelliJ IDEA 的配置體系中,各種功能和設(shè)置被組織成不同的組件。這個特定的組件負(fù)責(zé)管理項目目錄與版本控制系統(tǒng)之間的映射關(guān)系。
<mapping directory="$PROJECT_DIR$" vcs="Git" />
這是最關(guān)鍵的一行。它定義了一個具體的映射規(guī)則:
directory="$PROJECT_DIR$"
: 指定了受版本控制的目錄。$PROJECT_DIR$
是 IntelliJ IDEA 內(nèi)置的一個變量,代表當(dāng)前項目的根目錄。所以,這表示整個項目的主目錄都受版本控制。vcs="Git"
: 明確指出該目錄(即整個項目)使用的是 Git 作為版本控制系統(tǒng)。如果項目使用的是其他版本控制系統(tǒng),比如 Subversion,這里就會是 "svn" 等。
總結(jié)一下,這個文件的作用是:
聲明版本控制系統(tǒng): 它讓 IntelliJ IDEA 知道你的項目是使用 Git 進行版本控制的。
啟用 IDE 的 VCS 集成:
一旦 IDEA 知道了項目使用 Git,它就能夠激活所有與 Git 相關(guān)的功能,例如:
在編輯器中高亮顯示已修改的文件和行。
提供提交、推送、拉取、分支管理、合并等操作的圖形化界面。
顯示文件歷史記錄和差異對比。
集成解決沖突的工具。
指定受控范圍: 明確了版本控制覆蓋的范圍是整個項目目錄。在更復(fù)雜的項目中,可能會有多個
mapping
條目,比如一個項目下同時使用了 Git 和其他 VCS 管理不同的子目錄(雖然不常見)。
這個文件通常應(yīng)該被納入版本控制嗎?
是的,像 vcs.xml
這樣的文件通常推薦被提交到版本控制系統(tǒng)中(例如 Gitee)。原因如下:
團隊協(xié)作: 當(dāng)團隊其他成員克隆項目并在 IntelliJ IDEA 中打開時,這個文件能確保他們的 IDE 也能正確識別并配置 Git 版本控制,從而獲得一致的開發(fā)體驗。
項目配置的一部分: 它定義了項目如何與版本控制系統(tǒng)集成,這是項目結(jié)構(gòu)和配置的重要組成部分。
與之前討論的 .idea/.gitignore
文件中那些針對個人用戶設(shè)置(如 workspace.xml
)不同,vcs.xml
定義的是項目級別的版本控制配置,對所有協(xié)作者通常都是有用的。
以上就是IDEA中g(shù)it對于指定文件進行版本控制的全過程的詳細(xì)內(nèi)容,更多關(guān)于IDEA git指定文件版本控制的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java基礎(chǔ)理論Stream的Filter與謂詞邏輯
這篇文章主要為大家介紹了java基礎(chǔ)理論Stream的Filter與謂詞邏輯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03Tomcat Cannot assign requested address: JVM_Bind 非端口占用沖突
這篇文章主要介紹了 Tomcat Cannot assign requested address: JVM_Bind 非端口占用沖突的相關(guān)資料,需要的朋友可以參考下2017-01-01SpringMVC Controller 返回值的可選類型詳解
本篇文章主要介紹了SpringMVC Controller 返回值的可選類型詳解 ,spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void,有興趣的可以了解一下2017-05-05SpringBoot?+DynamicDataSource切換多數(shù)據(jù)源的全過程
這篇文章主要介紹了SpringBoot?+DynamicDataSource切換多數(shù)據(jù)源的全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01SpringBoot3.3.X整合Mybatis-Plus的實現(xiàn)示例
本文介紹了在Spring Boot 3.3.2中整合MyBatis-Plus 3.5.7,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03SpringBoot中@EnableAsync和@Async注解的使用小結(jié)
在SpringBoot中,可以通過@EnableAsync注解來啟動異步方法調(diào)用的支持,通過@Async注解來標(biāo)識異步方法,讓方法能夠在異步線程中執(zhí)行,本文就來介紹一下,感興趣的可以了解一下2023-11-11Java mutable對象和immutable對象的區(qū)別說明
這篇文章主要介紹了Java mutable對象和immutable對象的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06MyBatis學(xué)習(xí)教程(五)-實現(xiàn)關(guān)聯(lián)表查詢方法詳解
本文給大家介紹mybatis關(guān)聯(lián)查詢,包括一對一關(guān)聯(lián)查詢,一對多關(guān)聯(lián)查詢,代碼簡單易懂,感興趣的朋友一起學(xué)習(xí)吧2016-05-05