国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

git部分文件不想提交解決方案

這篇具有很好參考價值的文章主要介紹了git部分文件不想提交解決方案。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

正確的做法應該是:git rm --cached logs/xx.log,然后更新?.gitignore?忽略掉目標文件,最后?git commit -m "We really don't want Git to track this anymore!"

具體的原因如下:

被采納的答案雖然能達到(暫時的)目的,但并非最正確的做法,這樣做是誤解了?git update-index?的含義,而且這樣做帶來的最直接(不良)后果是這樣的:

  1. 所有的團隊成員都必須對目標文件執(zhí)行:git update-index --assume-unchanged <PATH>。這是因為即使你讓 Git 假裝看不見目標文件的改變,但文件本身還是在 Git 的歷史記錄里的,所以團隊的每個人在?fetch?的時候都會拉到目標文件的變更。(但實際上目標文件是根本不想被 Git 記錄的,而不是假裝看不見它發(fā)生了改變)

  2. 一旦有人改變目標文件之后沒有?git update-index --assume-unchanged <PATH>?就直接?push?了,那么接下來所有拉取了最新代碼的成員必須重新執(zhí)行?update-index,否則 Git 又會開始記錄目標文件的變化。這一點實際上很常見的,比如說某成員換了機器或者硬盤,重新?clone?了一份代碼庫,由于目標文件還在 Git 的歷史記錄里,所以他/她很可能會忘記?update-index。

為什么會這樣?答案就在 Git 的?man pages?里:

首先,git update-index?的定義是:

Register file contents in the working tree to the index(把工作區(qū)下的文件內(nèi)容注冊到索引區(qū))

這句話暗含的意思是:update-index?針對的是 Git 數(shù)據(jù)庫里被記錄的文件,而不是那些需要忽略的文件。

接著看關于?--assume-unchanged?的幾句相關的描述:

When the "assume unchanged" bit is on, Git stops checking the working tree files for possible modifications, so you need to manually unset the bit to tell Git when you change the working tree file. This is sometimes helpful when working with a big project on a filesystem that has very slow lstat(2) system call (e.g. cifs).

大致意思是:

應用了該標識之后,Git 停止查看工作區(qū)文件可能發(fā)生的改變,所以你必須?手動?重置該標識以便 Git 知道你想要恢復對文件改變的追蹤。當你工作在一個大型項目中,這在文件系統(tǒng)的?lstat?系統(tǒng)調(diào)用非常遲鈍的時候會很有用。

我們知道 Git 不僅僅是用來做代碼版本管理的,很多其他領域的項目也會使用 Git。比如說我公司曾經(jīng)一個客戶的項目涉及到精密零件圖紙文檔的版本管理,他們也用 Git。有一種使用場景是對一些體積龐大的文件進行修改,但是每一次保存 Git 都要計算文件的變化并更新工作區(qū),這在硬盤慢的時候延遲卡頓非常明顯。

git update-index --assume-unchanged?的真正用法是這樣的:

  1. 你正在修改一個巨大的文件,你先對其?git update-index --assume-unchanged,這樣 Git 暫時不會理睬你對文件做的修改;

  2. 當你的工作告一段落決定可以提交的時候,重置改標識:git update-index --no-assume-unchanged,于是 Git 只需要做一次更新,這是完全可以接受的了;

  3. 提交+推送。

另外,根據(jù)文檔的進一步描述:

This option can be also used as a?coarse?file-level mechanism to ignore uncommitted changes in tracked files (akin to what .gitignore does for?untracked files).

這段描述告訴我們兩個事實:

  1. 雖然可以用其來達成樓主想要的結(jié)果,但這是不講究的做法(coarse);

  2. 同樣的事情更應該用?.gitignore?文件來實現(xiàn)(針對未追蹤的文件)。

隨之而來的問題是:為什么我增加了?.gitignore?里的規(guī)則卻沒有效果?

這是因為我們誤解了?.gitignore?文件的用途,該文件只能作用于?Untracked Files,也就是那些從來沒有被 Git 記錄過的文件(自添加以后,從未 add 及 commit 過的文件)。

之所以你的規(guī)則不生效,是因為那些?.log?文件曾經(jīng)被 Git 記錄過,因此?.gitignore?對它們完全無效。這也正是開頭那段簡短答案所做的事情:

  1. 從 Git 的數(shù)據(jù)庫中刪除對于該文件的追蹤;

  2. 把對應的規(guī)則寫入?.gitignore,讓忽略真正生效;

  3. 提交+推送。

只有這樣做,所有的團隊成員才會保持一致而不會有后遺癥,也只有這樣做,其他的團隊成員根本不需要做額外的工作來維持對一個文件的改變忽略。

最后有一點需要注意的,git rm --cached?刪除的是追蹤狀態(tài),而不是物理文件;如果你真的是徹底不想要了,你也可以直接?rm+忽略+提交。文章來源地址http://www.zghlxwxcb.cn/news/detail-434771.html

到了這里,關于git部分文件不想提交解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 在提交文件到gitee遠程倉庫時報用戶名密碼錯誤 fatal: Authentication failed for ‘https://gitee.com/xxx/xxx.git 解決方案來啦 親測有效

    在提交文件到gitee遠程倉庫時報用戶名密碼錯誤 fatal: Authentication failed for ‘https://gitee.com/xxx/xxx.git 解決方案來啦 親測有效

    在提交文件到gitee遠程倉庫時,突然出現(xiàn)一個彈框輸入用戶名 密碼 很懵逼 輸入了結(jié)果是錯誤的 D:文件名git push -u origin \\\"master\\\" remote: [session-fa417d86] Akiko: Incorrect username or password (access token) fatal: Authentication failed for \\\'https://gitee.com/xxx/文件名.git/\\\' ? ? ?此刻如果再提交一遍 還是會

    2024年02月16日
    瀏覽(33)
  • IDEA 出現(xiàn)問題:git提交commit時Perform code analysis卡住解決方案(git commit提交很慢)

    IDEA 出現(xiàn)問題:git提交commit時Perform code analysis卡住解決方案(git commit提交很慢)

    git提交commit時Perform code analysis卡住很久 解決方案一 1、打開 IntelliJ IDEA,進入 File - Settings(或者使用快捷鍵 Ctrl+Alt+S)。 2、在彈出的 Settings 窗口中,找到 Version Control - Commit Dialog 選項。 3、在右側(cè)的窗口中,找到 Perform code analysis 選項,并取消勾選該選項。然后單擊 OK 按鈕保

    2024年01月16日
    瀏覽(94)
  • 關于git提交代碼時報錯Committer identity unknown的解決方案

    今天安裝好git后,創(chuàng)建新項目,當git上傳提交時出現(xiàn)了一個問題,如下: 解釋 Commit failed - exit code 128 received, with output: \\\'*** Please tell me who you are. Run git config --global user.email \\\"you@example.com\\\" git config --global user.name \\\"Your Name\\\" to set your account\\\'s default identity. Omit --global to set the identity o

    2024年04月16日
    瀏覽(25)
  • git提交到遠程倉庫
                    
            
Git HEAD detached from origin(沖突解決后無法正常push) 問題的解決方案

    git提交到遠程倉庫 Git HEAD detached from origin(沖突解決后無法正常push) 問題的解決方案

    目錄 一、Git提交代碼的流程 二、將本地項目發(fā)布到gitee上 將本地代碼庫與遠程代碼庫相關聯(lián) 強制把遠程倉庫代碼拉取到到當前分支上面。ps:如果倉庫為空這一步可以跳過 三、git提交代碼--修改提交的地址 四、獲取密鑰 Git HEAD detached from origin(沖突解決后無法正常push) 問題

    2024年02月03日
    瀏覽(28)
  • git提交的時候出現(xiàn)異?!癰ad object HEAD”的另一種解決方案

    Git倉庫是目前很主流的代碼管理工具,一旦被損壞或出現(xiàn)異常,內(nèi)心想直接吐血。 當進入到Git倉庫執(zhí)行命令: git status 顯示: fatal: bad object HEAD 在此嘗試用git checkout git reflog 等命令希望能恢復,但都是提示錯誤。在網(wǎng)上搜索大部分看到的是如下的解決方式: 但是我的代碼分

    2024年02月02日
    瀏覽(101)
  • IDEA 出現(xiàn)問題:git提交commit時Perform code analysis卡住解決方案

    IDEA 出現(xiàn)問題:git提交commit時Perform code analysis卡住解決方案

    ??作者主頁:小虛竹 ??作者簡介:大家好,我是小虛竹。Java領域優(yōu)質(zhì)創(chuàng)作者??,CSDN博客專家??,華為云享專家??,掘金年度人氣作者?? ??技術(shù)活,該賞 ??點贊 ?? 收藏 ?再看,養(yǎng)成習慣 Intellij IDEA使用教程相關系列 目錄 git提交commit時Perform code analysis卡住很久

    2024年02月11日
    瀏覽(22)
  • Git提交 ssh: connect to host github.com port 22: Connection timed out解決方案

    Git提交 ssh: connect to host github.com port 22: Connection timed out解決方案

    你們好,我是金金金。 之前都是好好的,不知道今天為什么提交代碼就這樣了 根據(jù)英文可以看出,ssh端口號被拒絕了,22號端口不行,那就換一個端口 ssh端口被拒絕 找到.ssh文件,在下面創(chuàng)建一個config文件,然后記事本打開寫入以下內(nèi)容 成功提交 主要是ssh 22端口被拒絕,我

    2024年01月22日
    瀏覽(21)
  • git上傳對象文件錯誤解決方案

    git上傳對象文件錯誤解決方案

    ?時隔一個星期, 當我再次完成開發(fā)之后, 準備將代碼上傳, 卻出現(xiàn)了一個上傳代碼的錯誤, 記錄一下錯誤和解決方案 解決方案 : 運行 git fsck --full 在.git目錄下find . -type f -empty -delete -print 會刪除全部空文件 再次運行 git fsck --full , 還是有錯,head指向元素不存在,是之前一個空文

    2024年02月06日
    瀏覽(20)
  • Git上傳文件不能超過100M 解決方案

    上傳項目到Git上,當某個文件大小超過100M時,就會上傳失敗,因為默認的限制了上傳文件大小 不能超過100M 。如果需要上傳超過100M的文件,就需要我們自己去修改配置。 首先,打開 終端 ,進入項目所在的文件夾; 輸入命令: 此命令的目的是設置最大文件上限改為 500M (5

    2024年02月11日
    瀏覽(22)
  • git忽略文件.gitignore失效分析與解決方案

    git忽略文件.gitignore失效分析與解決方案

    git忽略文件.gitignore失效分析與解決方案 最近學習谷粒商城的時候使用了人人快速開發(fā)平臺,但是我提交到gitee的文件希望不提交人人項目,但是由于事先已經(jīng)將人人項目納入了版本控制,此時在.gitignore中添加人人項目,gitignore就失效了。 此時,我們可以采用以下兩種方式讓

    2024年02月14日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包