问题标签 [git-assume-unchanged]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git 假设不变和 git stash
我将一些本地配置保存在假设不变的文件中。随着时间的推移,我创建了几个分支,并且假定未更改的文件在两者之间演变(添加更多本地配置)。如果我尝试结帐一个较旧的分支,我会得到:
我不想提交它们并且不能存储它们(即使使用 --include-untracked 选项):
是否有解决方案,或者有更好的本地更改工作流程以保持未提交?
git - --skip-worktree 之后无法切换分支
我想做的事
我有一个包含敏感数据的文件,所以我不想将此文件的内容推送到远程服务器。
我做了什么?
为了实现这一点,我在文件为空时进行了提交,并将这个空文件推送到服务器(GitHub)。然后用敏感数据填充文件并应用git update-index --skip-worktree path/to/file
。但我没有做出任何承诺。
现在我正在尝试切换我的分支,但我收到了这个错误:
为什么我使用skip-worktree
而不是assume-unchanged
?
我阅读了一些关于这个主题的 SO 问题,并找到了 Borealid 的答案。
--assume-unchanged 假定开发人员不应该更改文件。此标志旨在提高 SDK 等不更改文件夹的性能。
--skip-worktree 当您指示 git 不要碰特定文件时很有用,因为开发人员应该更改它。例如,如果上游的主存储库托管了一些生产就绪的配置文件,并且您不想意外提交对这些文件的更改,那么 --skip-worktree 正是您想要的。
在此之后,我找到了Jeff's question和VonC's answer。Jeff 的问题和我的差不多,我遵循了 VonC 的解决方案。但是,这对我不起作用。可能是因为 git 版本不同。因为那个问题来自 2012 年。我们与 VonC 进行了交谈,他说这是一个新问题,因为他不记得答案了。
我尝试将--assume-unchanged
和--skip-worktree
一起使用,以及软重置工作树。但什么都没有改变。
所以?
你能帮我解决我的问题吗?
谢谢你。
git - 如何在将假设未更改的文件保留在 git 中的同时重置我的提交?
我有很多文件设置为
在某些情况下,我的分支搞砸了,并与 origin/master 分歧。比方说
所以我想恢复我的所有提交并保持对 origin/master 的更新,同时保持我假设未更改的文件不被刷新。我怎样才能做到这一点?
git - git 将文件设置为假设不变
Git 始终设置为assume-unchanged
我的两个存储库中的所有文件。在每个commit
, checkout
, pull
, 等等之后,它设置assume-unchanged
在修改后的文件上。我必须执行git update-index --no-assume-unchanged my_file
和commit
我push
的修改。
我怎样才能防止这种行为?
git - git update-index --skip-worktree 会影响上游仓库吗?
我自己使用 git 已经有一段时间了,现在正在为我们的团队建立一个 repo。我们开发了一个电子商务平台。
有一些目录和文件可以忽略,例如上传目录和环境特定的配置文件。
虽然配置文件位于 .gitignore 上,但我想使用--skip-worktree
或忽略上传目录--assume-unchanged
。
我的问题 - 我找不到明确的答案 - 是否将--assume-unchanged
or--skip-worktree
位推送到上游仓库?
如果不是,那么确保 git 不会跨存储库的所有实例操纵上传目录的内容的最佳方法是什么?
ruby - 从 github 拉取文件时如何忽略文件?
我正在使用 Ruby,当我从 Github 中提取时,我想忽略我的配置文件。
我收到的错误是:“错误:您对以下文件的本地更改将被合并覆盖:config/database.yml”
我尝试过的事情:
1)我将文件路径添加到位于我的应用程序根目录中的 .gitignore 中。
2)我将文件路径添加到我的全局 .gitignore
3)我从我的应用程序根目录运行 git update-index --assume-unchanged /config/database.yml
4) 我从应用程序根目录运行 git update-index --skip-worktree config/database.yml
我的计算机上的几个不同文件夹中有同一个应用程序的多个实例。应用程序的其他实例遵循假设不变命令。我不确定我错过了什么。
git - git 忽略并取消跟踪远程服务器上的文件夹
我知道类似的问题已被多次询问,但我无法让它适用于我的案例。
我在哪里: 我有一个本地存储库,我推送到实时服务器,其中包括 /content 文件夹及其子文件夹。在制作过程中这没问题,因为我可以对 /content 进行更改并推送它们。但由于这是一个使用 CMS 的网站,所有对 /content 的更改现在都将远程生成。
我想去的地方: 我现在想从代码库中“分离” /content 及其子文件夹,这样我就可以在本地删除庞大的 /content 文件夹,而不会在实时服务器上将其删除。这样我仍然可以对代码进行更改并将它们推送到服务器,而人们可以使用 CMS 在 /content 文件夹中创建文件和更改。
所以到目前为止我做了什么:
- 将文件夹添加到 .gitignore:
/content/
- 从索引中删除文件夹:
git rm -r --cached content/*
- 尝试设置假设不变,以便在推送时不会从实时服务器中删除 /content 中的文件:
git update-index --skip-worktree
当我这样做时,我当然会得到:
致命:无法标记文件
由于文件位于 .gitignore 中,并且它们需要保留在那里,以便将来忽略该文件夹。那我该怎么办?
git - 如何在项目中`--assume-unchanged` 文件?
我有配置文件:conf/local.conf
我为它运行下一个命令:
在我切换到另一个分支或拉之前没关系。
如何--assume-unchanged
在分支之间保留标志?
UPD
即将发生的一些示例:
我希望它像下一个一样工作:
- conf/local.conf 被保存
- 分支已切换
- conf/local.conf 被保存的版本替换
git - 撤消 git update-index --no-assume-unchanged (不起作用)并能够再次看到这些本地更改
更新:我的权限问题以某种方式任意修复,因为现在完全相同的远程分支创建命令有效,所以(正如您可能猜到的)它不是由这个跟踪问题引起的。
现在我只是想解决跟踪问题。谢谢!
原文:我最初在几个文件中应用了以下内容:
参考本文档:
https://git-scm.com/docs/git-update-index#_using_assume_unchanged_bit
从我的工作目录更改中隐藏某些文件(因为将文件添加到.git/info/exclude
似乎没有效果 - 尽管路径正确并且尚未提交,但文件仍然可见)。
然后我遇到了一些推送到以前不存在的远程分支的问题,标准
所以,鉴于我在运行之前没有访问问题update-index
,我决定恢复它,--assume-unchanged
因为我没有对我的 git repo 做任何其他混乱。
我能够使用查看这些assume-unchanged
文件
我试图assume-unchanged
通过使用恢复
assume-unchanged
如此处关于跨多个文件还原的指示:
撤消 git update-index --assume-unchanged <文件>
这并没有恢复它们,然后我尝试了
根据此建议:
撤消 git update-index --assume-unchanged <文件>
这些文件仍然不可见,我现在也无法通过运行查看它们
我还在我的一个文件上进行了实验性尝试:
按照这里
https://git-scm.com/docs/git-update-index#_skip_worktree_bit
正如我所知skip-worktree
,assume-unchanged
我希望看到该文件的一些状态变化。依然没有。
如何将文件恢复为可见并在我的工作目录中跟踪更改?
作为一个额外的问题,您知道这可能如何影响我创建新远程分支的访问权限吗?
eclipse - 在 Git 中标记为假定未更改的文件在哪里?
昨天我在 Git 上苦苦挣扎,因为我在 Git Bash 或 Eclipse Git-tool 中都找不到我想要提交的任何 .java 文件。我四处搜索,发现我在项目中接触过的所有文件都标记为“假定未更改”。(在昨天之前从未听说过)。我试图 --un-assume-unchanged 作为 Git Bash 中的命令和 Eclipse 中的 conext-menu 中的命令。(在 SO 上找到了这个答案)。但所有文件仍被标记为假设不变。
我试过 Git 重置,删除整个本地存储库并再次克隆,同样的问题。
Git是如何工作的,标记为假定不变的字段是在文件中列出的还是什么?除了在 Git Bash 中列出它们之外,是否可以通过其他方式取消标记它们?或者您对如何解决我的问题有其他想法?(我已经单独保存了我更改的文件,以便我可以重置或删除 repo)
我不确定这是否有问题,但我的机器上有 2 个 repo 副本,以及 2 个单独的 Eclipse 工作区。