今天我在Mac OS X上发现了一个Git的bug。 例如,我将在一开始就提交一个名称为überschrift.txt并带有德语特殊符号的文件。 从命令git status我得到以下输出。 Users-iMac: user$ git status On branch master # Untracked files: # (use "git add <file>…" to include in what will be committed) # # "U\314\210berschrift.txt" nothing added to commit but untracked files present (use "git add" to track) 看来Git 1.7.2在Mac OS X上有德文特殊字符的问题。有没有解决scheme让Git读取文件名正确?
我只为文本文件创build了一个白名单。 * !*.txt 现在,我有一个未追踪的文本文件在一个子目录 – sub/dir/file.txt ,这是不显示(它被忽略)。 但是,显示根目录中的文本文件。 为什么是这样的,我该如何解决?
Git和大多数其他版本控制系统之间的主要区别之一是其他人倾向于将提交存储为一系列增量 – 在一次提交和下一次提交之间进行更改。 这似乎是合乎逻辑的,因为它是存储关于提交的尽可能最less量的信息。 但提交历史logging得到的时间越长,比较修订范围的计算就越多。 相比之下,Git会在每个修订版本中存储整个项目的完整快照 。 这并不能使每个提交的repo大小显着增长的原因是项目中的每个文件都存储在Git子目录中的一个文件中,这个文件被命名为内容的散列。 所以如果内容没有改变,散列没有改变,提交只是指向同一个文件。 还有其他优化。 所有这些对我来说都是有意义的,直到我偶然发现有关包文件的信息 ,Git会周期性地放入数据以节省空间: 为了节省空间,Git使用packfile。 这是一种格式,Git将只保存第二个文件中已经更改的部分,并且指向与其类似的文件。 这不是基本上回到存储三angular洲? 如果不是,它有什么不同? 这是如何避免让Git遇到与其他版本控制系统相同的问题? 例如,Subversion使用deltas,回滚50个版本就意味着取消50个diff,而使用Git则可以获取相应的快照。 除非git还在包文件中存储了50个差异…是否有一些机制说:“在一些less量的三angular洲之后,我们将存储一个全新的快照”,以便我们不会堆积太多的变更集? Git还可以避免delta的缺点吗?
在每次提交本地回购后,如何将git设置为自动推送到远程回购(包括自动提供密码)?
git 1.7.12 我想将给定目录下的所有文件标记为不变。 1) git update-index –assume-unchaged dir/给“忽略path”。 2) git update-index –assume-unchaged dir/*很快就会失败,因为它会遇到没有被跟踪的文件,因此它会给出“致命的:无法标记文件”并退出。 3)尝试生成要标记的文件列表。 cd到所需的目录,然后运行git ls-files | tr '\n' ' ' | git update-index –assume-unchanged git ls-files | tr '\n' ' ' | git update-index –assume-unchanged git ls-files | tr '\n' ' ' | git update-index –assume-unchanged 。 这不会产生错误消息,但它不会成功标记文件。 命令的第一部分, git ls-files | tr '\n' […]
我听说过(我知道我也看过一些例子,只要我能记得它在哪里) sbt可以从git sbt获得依赖关系。 我正在寻找从github获得依赖harrah / up 。 版本库不提供任何工件JAR文件,只有使用sbt构build的源代码树。 我想象的过程是, sbt将下载源代码回购,构build它,然后将其用作依赖项构件。 我可能想象, sbt可以做这样的事情。 它可以? 如果是的话,怎么样?
$ git ls-tree fb3a8bdd0ce 100644 blob 63c918c667fa005ff12ad89437f2fdc80926e21c .gitignore 100644 blob 5529b198e8d14decbe4ad99db3f7fb632de0439d .mailmap 100644 blob 6ff87c4664981e4397625791c8ea3bbb5f2279a3 COPYING 040000 tree 2fb783e477100ce076f6bf57e4a6f026013dc745 Documentation 100755 blob 3c0032cec592a765692234f1cba47dfdcc3a9200 GIT-VERSION-GEN 100644 blob 289b046a443c0647624607d471289b2c7dcd470b INSTALL 100644 blob 4eb463797adc693dc168b926b6932ff53f17d0b1 Makefile 100644 blob 548142c327a6790ff8821d67c2ee1eff7a656b52 README … 我知道最后的3个数字是文件模式,但前3位数字是什么? 我无法在git用户手册中find它。
在保留提交时间戳的同时执行git rebase是否有意义? 我相信一个后果就是新的分支不一定会按时间顺序提交date。 这在理论上是可能的吗? (例如使用pipe道命令;只是在这里好奇) 如果这在理论上是可行的,那么在实践中是否可以使用rebase,而不是改变时间戳? 例如,假设我有以下树: master <jun 2010> | : : : oldbranch <feb 1984> : / oldcommit <jan 1984> 现在,如果我在master oldbranch ,提交的date从1984年2月更改为2010年6月。是否可以更改该行为,以便提交时间戳不被更改? 最后我会得到: oldbranch <feb 1984> / master <jun 2010> | : 那有意义吗? 它甚至允许在git中有一个旧的提交具有更近的提交作为父母的历史?
我想大多数人,开发人员,使用任何VCS ,我希望你们中的一些人使用Git。 您有任何提示或诀窍如何获取存储库中单个文件的下载URL? 我不想显示原始文件的URL; 在二进制文件的情况下,它是没有用的。 http://support.github.com/discussions/feature-requests/41-download-single-file 甚至有可能使用GitHub作为“下载服务器”? 如果我们决定切换到谷歌代码,这里提到的function? 还是有免费的托pipe和VCS的开源项目?
我想弄清楚如何在我的项目工作stream中使用git,并且我有一个现有的XCode项目,我想把它放到存储库中。 我想我有组织者正确设置存储库,但源代码pipe理菜单是灰色的。 显然,如果你开始一个新项目很容易,但是如何导入一个现有的项目,包括快照和一切? 我使用的是XCode 4和git 1.7.4 另外,如果在gitconfiguration和最佳实践方面有任何好的演练,那就太好了。 我比赛有点晚,所以任何可以让我加速的东西都会很酷。