我正在尝试在iOS上以编程方式创建xlsx文件.由于xlsx文件的内部数据基本上存储在单独的xml文件中,因此我尝试使用其所有文件和子目录重新创建xlsx结构,将它们压缩为zip文件并将其扩展名设置为xlsx.我使用GDataXML解析器/编写器来创建所有必需的xml文件.但是,我得到的文件无法作为xlsx文件打开.即使我从有效的xlsx文件中删除所有数据,也可以通过从原始xml文件复制数据并手动压缩来手动创建所有xml文件,但我无法重新创建有效的xlsx文件.
问题是:
一个非常菜鸟的问题.
在我的整个项目中使用git也是好的(作为不同存储之间的同步,版本控制不是主要的一点),包括图像,pdf,Word文档,甚至可能是一些exe文件?
它如何跟踪pdf,图像,exe文件的变化,如果有的话?如果它只是因为与HEAD版本存在一些差异而存储整个更改的文件,那么在几次提交后存储库可能会变得非常大.或者它是否仍然只能保存文本文件以外的文件中的增量更改?
底线:对于大型项目的同步,git是否良好(或至少可以接受)?对我而言,如果它不比Dropbox等差,那就足够了(就最终结果而言,GUI不是问题).
有没有办法让Git indent/美化/漂亮打印两个版本的C++源文件,然后再进行区分?
我不希望Git向我展示在有人自动格式化代码之后引入的无数更改.
示例用法:在缩进git difftool --indent-before-diffing path/to/file原始版本path/to/file和修改版本后,我点击并获取更改path/to/file.
我们将 .docx 和 .odt 用于我们的“以人为本”的文档,但这些格式对于 git 存储库来说几乎是最糟糕的。
是否有一些 git 友好的格式提供基本的文字处理器功能并将所有内容都包含在一个文件中?
我已经尝试过如何对 Excel 文件和 SQL 架构文件执行更好的文档版本控制中提供的解决方案,但我无法找到一个好的解决方案来解压缩文件以查看 Git 可以跟踪的更改。我使用 Git 一段时间了,想知道是否有一种很好且相当简单的方法来跟踪所做的更改。Excel是在JAVA框架中使用的。
我正在寻找一种在 git 中对 excel 文件执行版本控制的方法。我知道这个问题之前已被问过,但我找不到适用于包含多个工作表的 Excel 文件的选项。例如,在此处提供的建议中,一种方法是将 .xlsx 文件另存为 csv 文件并使用 git diff。但是,当存在多个工作表时,此选项不起作用。我将能够仅将活动工作表另存为 csv 文件。
SO 上建议的第二个选项是 GIT XL。根据我对 GIT XL 文档的了解, diff 选项将允许我查看命令提示符中更改的行。例如,如果 Excel 工作表中有 10 列,并且我替换了所有 10 列中的值,如何查看之前存在的数据。为了提供更好的上下文,每次我为不同的参数值运行脚本时,Excel 工作表的内容都会被覆盖。在这种情况下,如果我想查看上次运行的结果,我不想每次都重新运行脚本。
我发现有用的第三个答案可以在这里使用 xls2text。再次,我想知道当有多张纸时这将如何工作。
任何建议都会有很大帮助!
所以我在我的分支internal_env_board2 上,我试图切换到分支battery_board。但是,当我尝试这样做时,出现错误:
$ git checkout battery_board
error: Your local changes to the following files would be overwritten by checkout:
internal_env_board/internal_env_board2/internal_env_board_with_LCD_BOM.xlsx
Please commit your changes or stash them before you switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)
我很生气,因为我知道我没有修改这个 .xlsx 文件。我所做的唯一一件事就是打开 excel 文件,查看其内容,然后再次关闭它。出于某种原因,git 认为此文件中有更改。我尝试使用 git diff 来查找工作树副本和最近提交的副本之间的差异,并得到以下结果:
$ git diff HEAD internal_env_board_with_LCD_BOM.xlsx
diff --git a/internal_env_board/internal_env_board2/internal_env_board_with_LCD_BOM.xlsx b/internal_env_board/internal_env_board2/internal_env_board_with_LCD_BOM.xlsx
index 0fb3369..10c945e 100644
Binary files a/internal_env_board/internal_env_board2/internal_env_board_with_LCD_BOM.xlsx and b/internal_env_board/internal_env_board2/internal_env_board_with_LCD_BOM.xlsx differ
Run Code Online (Sandbox Code Playgroud)
我在理解这个 diff 命令的输出时遇到了很多麻烦。它只是告诉我它们不同,但不是如何。
所以我想我的两个问题是:
1. 为什么git只因为打开了文件就认为我修改了文件?
2. 如何读取 命令的输出git diff HEAD ?
git ×6
excel ×2
git-diff ×2
xlsx ×2
binaryfiles ×1
c++ ×1
git-checkout ×1
indentation ×1
pretty-print ×1
vba ×1
xml ×1
zip ×1