- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我对文件进行了本地更改,但不想提交到我的存储库。它是用于在服务器上构建应用程序的配置文件,但我想使用不同的设置在本地构建。自然地,当我将“git status”作为要暂存的东西时,文件总是会出现。我想 stash 此特定更改而不提交它。我不会对该文件进行任何其他更改。
澄清一下,使用 .gitignore 不是我想要的,因为这只会阻止添加新文件。我想忽略对存储库中已有文件的更改。
经过一番挖掘,我看到了 2 个选项:assume-unchanged
和 skip-worktree
。前一个问题here谈论它们,但并没有真正解释它们的区别。
这两个命令有何不同?为什么有人会使用其中一种?
最佳答案
你想要skip-worktree
。
assume-unchanged
专为检查一组文件是否已被修改的情况而设计;当您设置该位时,git
(当然)假定与索引的该部分对应的文件在工作副本中未被修改。所以它避免了乱七八糟的 stat
调用。每当文件在索引中的条目更改时(因此,当文件在上游更改时),该位就会丢失。
skip-worktree
不止于此:即使 git
知道文件已被修改(或需要由reset --hard
或类似的),它会假装它还没有,而是使用索引中的版本。这一直持续到索引被丢弃。
这里有对这种差异的后果和典型用例的一个很好的总结:http://fallengamer.livejournal.com/93321.html .
来自那篇文章:
--assume-unchanged
假定开发人员不应更改文件。此标志用于提高性能 不更改的文件夹(如 SDK)。 --skip-worktree
在您指示 git 不要触及特定文件时很有用,因为开发人员应该更改它。例如,如果上游的主存储库托管了一些生产就绪的配置文件,并且您不想意外地提交对这些文件的更改,--skip-worktree
正是你想要什么。关于Git - 'assume-unchanged' 和 'skip-worktree' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630849/
我有一个 master和一个 setup在我的 repo 中分支。我保留了 setup分支 check out 作为主 repo 文件夹内的工作树通过 git worktree add ./local
在 git 中设置分离的工作树有哪些优势和/或合适的用例?我对涉及服务器链(例如本地主机 -> 登台服务器 -> 实时服务器)的工作流的情况特别感兴趣。 最佳答案 最大的优势(至少我看到了)是能够 p
在 git 中设置分离的工作树有哪些优势和/或合适的用例?我对涉及服务器链(例如本地主机 -> 登台服务器 -> 实时服务器)的工作流的情况特别感兴趣。 最佳答案 最大的优势(至少我看到了)是能够 p
我正在使用 git version 2.14.2.windows.2 并调用 git worktree add 在“正常”存储库上创建工作树。这在 创建了一个新的工作树结构对于分支并添加了 .g
我正在研究 git 的"new"worktree 功能,因为它似乎非常适合我经常遇到的问题:需要同时在多个分支中工作(其中一些是短暂的而其他人真的很长寿)。 我通常需要在 release_a bran
我使用 git worktree add 创建了一个新的工作树。我注意到它在 repo 中创建了一个与工作树同名的新分支。这个分支是做什么用的? 我已经检查了第二个工作树中另一个预先存在的分支。我可以
我读了Github's post on git-worktree .他们写道: Suppose you're working in a Git repository on a branch calle
在我的机器上,我将 --skip-worktree 设置为 config/database.yml。 git update-index --skip-worktree config/database.
我用过git update-index --skip-worktree 按照建议here使 git 忽略对跟踪文件的本地更改。但是现在我忘记了我将它应用于哪些文件。如何列出应用了 skip-workt
我想做什么 我有一个包含敏感数据的文件,所以我不想将此文件的内容推送到远程服务器。 我做了什么? 为了实现这一点,我在文件为空时进行了提交,并将这个空文件推送到服务器 (GitHub)。然后用敏感数据
我在我正在使用的脚本中看到了这一行: git config core.worktree .. 我不确定 git worktree 做了什么,但我完全不明白为什么将它设置为 .. 任何线索? 谢谢 最佳
我有一个本地 git 存储库,我使用 git 工作树层次结构。到目前为止,我尝试过的任何应用程序都可以很好地与 git worktrees 配合使用,但是 Visual Studio 提示给定的目录不
我正在 Windows 的本地存储库中打开一个新的工作树,但无法在我的 Linux 虚拟机中编译它,因为“.git”包含以“C:/Git”开头的完整路径,虚拟机机器不识别。 我有一个 git 存储库,
当我这样做时 git worktree list ,显示如下。 /path/to/workspace c943d35 [master] /path/to/workspace ef4df56 (de
我自己使用 git 已经有一段时间了,现在正在为我们的团队建立一个 repo。我们开发了一个电子商务平台。 有一些目录和文件需要忽略,例如上传目录和特定于环境的配置文件。 虽然配置文件在 .gitig
不久前我这样做是为了忽略对 git 跟踪的文件的更改: git update-index --skip-worktree 现在我实际上想将该文件的更改提交给源代码。如何撤消 skip-worktre
我对文件进行了本地更改,但不想提交到我的存储库。它是用于在服务器上构建应用程序的配置文件,但我想使用不同的设置在本地构建。自然地,当我将“git status”作为要暂存的东西时,文件总是会出现。我想
我最近发现了 git worktree命令: The new working directory is linked to the current repository, sharing everyt
我的 projects 文件夹位于主机上的 /home/my/ 文件夹中,并安装在 /home/user/projects 中 docker 容器。在这个文件夹中有 git repo /home/us
作为 git 的新手,我想大致了解一下如何为一个 github 项目的不同分支使用多个工作目录。特别是我想要/需要在两个分支上工作——一个是“主”分支,另一个是维护版本,比如 maintenance/
我是一名优秀的程序员,十分优秀!