簡體   English   中英

Git 拉取錯誤:無法創建文件(參數無效)

[英]Git pull error: unable to create file (Invalid argument)

我正在嘗試將遠程回購與本地回購同步,但出現以下錯誤。 有些文件(沒有擴展名)沒有與 WINDOWS 機器上的本地存儲庫同步,但我可以在 MAC 機器上成功同步。

WINDOWS 中是否有任何配置設置來處理這種情況?

  1. 使用 TortoiseGit
  2. Windows 7 64位機

錯誤詳情

git.exe clone     --progress -v  "https://github.com/xxxx/xxxxx.git" "C:\Data\GitHub\simility\vishesh-common"

Cloning into 'C:\Data\GitHub\simility\vishesh-common'...
POST git-upload-pack (200 bytes)
remote: Counting objects: 3912, done.
remote: Compressing objects: 100% (487/487), done.
Receiving objects: 100% (3912/3912), 2.70 MiB | 567.00 KiB/s, done.
Resolving deltas: 100% (1578/1578), done.
remote: Total 3912 (delta 409), reused 0 (delta 0)
Checking connectivity... error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030050305_fantasy-trilogy-spin?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030295038_laser-dogs?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_arizona-native-bird-painting-series?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_native-birds-ii?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard-0?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_only-you-can-prevent-computercide?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_vector-cupholder-protect-your-laptop-and-your-lap?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_103055429_death-of-an-angel?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030650665_rachel-vanslyke-making-a-new-record-together-we-ca?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030835091_russian-trucks-of-world-war-two?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-expansion-next-level?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-project-expansion?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099860912_yaw-clock?ref=users (Invalid argument)
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099992656_heavenly-sight-a-vision-out-of-blindness?ref=users (Invalid argument)
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD'

git did not exit cleanly (exit code 128) (21746 ms @ 29-09-2014 13:32:13)

我遇到了同樣的問題,但不願意重命名或刪除這些文件。 所以這里有一個解決方法,以防你可以在不使用稀疏結帳訪問這些文件的情況下生活:

轉到 repo 中的.git文件夾並打開文件config (您也可以使用 tortoise-git 編輯您的配置,但我沒有在這里安裝它。)在[core]部分添加行

sparsecheckout = true

然后轉到文件夾.git/info並創建文件sparse-checkout 添加類似的東西

*
!kickstarter/parsers/data/kickstarter/campaigndetails/*

第一行包含所有內容,而第二行排除kickstarter/parsers/data/kickstarter/campaigndetails/中的所有文件。 您現在應該可以簽出 repo。 使用通配符,您可能可以進行更復雜的排除。

如果我很好地閱讀了該日志,這些文件的名稱以“?ref=users”結尾

Windows 不允許您使用“?” 在文件名中,就像它不允許有“\”或“*”一樣。 在 Linux 下,如果您對這些字符進行轉義,則有可能。 在 Windows 上,我認為這根本不可能。 請參閱http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247

你會很難用這樣的名字。我實際上想不出任何可以讓你同步 1:1 的想法。 您當然可以獲取它們並將它們保存在一些安全的名稱下,例如_projects_1099992656_heavenly-sight-a-vision-out-of-blindness__ref=users但我不知道如何自動執行此操作,或者如何稍后通知 Git 該映射,對不起..

這些文件名看起來像是有一個 HTML-query-parameters 后綴。 真的需要嗎? 也許這只是一些可以移除的神器? 嘗試與項目的維護者交談,也許他們可以簡單地刪除那個奇怪的后綴?

我正在使用 bitbucket,它具有刪除問題文件的功能。

這就是我所做的。

  1. 轉到您的存儲庫。
  2. 選擇菜單“提交”。
  3. 選擇要刪除問題文件的分支。
  4. 轉到您的文件並單擊它。 您將到達顯示文件詳細信息的文件概述,例如您的代碼、提交此文件的日期時間等。
  5. 看右上角,你會看到帶有向下箭頭的按鈕(類似於字母v)點擊它。
  6. 它將下拉並顯示其中的重命名按鈕和刪除按鈕。
  7. 然后它是你的選擇,將它重命名或刪除它。 做出明智的選擇。
  8. 單擊按鈕后。 Bitbucket 將向您顯示一個對話框,按照它的說明進行操作,並使用提交按鈕提交您的文件。
  9. 提交后,您可以返回 sourcetree 並毫無問題地提取您的代碼。
  10. 享受!

一般來說,如果您在 Windows 上收到此 git“無效參數”錯誤,請嘗試確保您的 /.git/ 文件夾未設置為“只讀”。 這為我修好了。

我遇到了這個問題,並嘗試了上面的一些解決方案,但沒有成功。

我所做的很奇怪,但對我有用,我:

  1. 復制了我對記事本有問題的 1 個文件的所有更改
  2. 恢復 GIT 中的更改
  3. 用我更新的代碼從記事本復制文本
  4. 再次保存帶有更改的文件
  5. 使用 Git Desktop 推送更改
  6. 這次奏效了。

我為 2 個不同的文件做了這個,它至少對我有用。 如果您只有一個或 2 個文件導致問題,那么在嘗試其他方法之前先嘗試簡單/快速的方法。

對我來說,當我在 Windows 機器上工作時發生了這個錯誤。 git repo 被克隆到 One-Drive 中。 Altimately,在將 git 位置更改為 One-Drive 外部后,對我有用。 不知何故,One-Drive 無法更新我試圖提交的文件索引。 您可以在 One-Drive 位置之外嘗試,也可以嘗試重置為之前的提交,然后進行更新。

我也面臨“Git:無法寫入文件,無效對象”並嘗試了很多方法,但沒有任何效果。 或者,我嘗試了一種簡單的方法,我在本地創建了新的 repo 文件夾,然后再次結帳分支並實施更改。 然后提交,它可以工作。

請注意,在收回更改之前,或者如果您正在為 repo 創建新文件夾,則不要刪除,直到您的更改提交到文件夾中。 我也在寫一個塊,你可以在谷歌上搜索“techchetan by chetan”,在 TechChetan 上搜索 go(學習和成長)

我在本地發生了類似的事情:我突然無法執行git add -A並收到以下消息:

錯誤:無法寫入 file.git/objects/99/8fe363fa337daab318f7fc378727d9dcce28d5:參數無效錯誤:[某些文件].js:無法插入數據庫錯誤:無法索引文件'[某些文件].js'致命:添加文件失敗

我從 repo 中刪除了文件(暫時將其復制到其他地方),提交並將 repo(沒有有問題的文件)推送到 GitHub。然后,在 GitHub 中,我手動添加文件並提交。

此時,拉到我的本地機器失敗了。 我刪除了目錄/repo,並從 GitHub 獲得了一個新的克隆。這是一個奇怪的解決方案,但它似乎有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM