标签: git-assume-unchanged

在--skip-worktree之后切换分支是不可能的

我想做的事

我有一个包含敏感数据的文件,所以我不想将此文件的内容推送到远程服务器.

我做了什么?

为了实现这一点,我在文件为空时进行了提交,并将此空文件推送到服务器(GitHub).然后用敏感数据填充文件并应用git update-index --skip-worktree path/to/file.但我没有做出任何承诺.

现在我正在尝试切换我的分支,但是我收到了这个错误:

    error: Your local changes to the following files would be overwritten by checkout:
    path/to/file
    Please, commit your changes or stash them before you can switch branches.
    Aborting
Run Code Online (Sandbox Code Playgroud)

我为什么用skip-worktreeINSTEAD OF assume-unchanged

我读了几个关于这个问题的SO问题,并找到了Borealid的答案.

--assume-unchanged假定开发人员不应更改文件.此标志用于提高SDK等不可更改文件夹的性能.

- 当你指示git不要触摸特定文件时, - skip-worktree非常有用,因为开发人员应该更改它.例如,如果主存储库上游托管了一些生产就绪配置文件,并且您不想意外地提交对这些文件的更改,那么--skip-worktree正是您想要的.

在此之后,我发现了Jeff的问题VonC的回答.杰夫的问题与我的问题几乎相同,我遵循了VonC的解决方案.但是这对我不起作用.也许是因为git版本的差异.因为这个问题来自2012年.我们与VonC进行了交谈,他说这是一个新问题,因为他不记得答案了.

我试图使用--assume-unchanged--skip-worktree 在一起,软正在重置worktree.但没有改变.

所以?

你能帮我解决一下我的问题吗?

谢谢.

git git-branch git-assume-unchanged git-skip-worktree

37
推荐指数
3
解决办法
3990
查看次数

如何在项目中使用“--assume-unchanged”文件?

我有配置文件:conf/local.conf我为其运行下一个命令:

git update-index --assume-unchanged local.conf
Run Code Online (Sandbox Code Playgroud)

直到我切换到另一个分支或拉取之前都可以。

如何保留--assume-unchanged分支之间的标志?

UPD
一些即将发生的事情的例子:

$ git checkout 296-ToS-component 
error: Your local changes to the following files would be overwritten by checkout:
    conf/local.conf
Please commit your changes or stash them before you switch branches.
Aborting
$ git checkout -f 296-ToS-component 
error: Entry 'conf/local.conf' not uptodate. Cannot merge.
Run Code Online (Sandbox Code Playgroud)

我希望它的工作原理如下:

  1. conf/local.conf 已保存
  2. 分支已切换
  3. conf/local.conf 被保存的版本替换

git git-assume-unchanged

7
推荐指数
1
解决办法
5098
查看次数

git 假定不变和 git stash

我将一些本地配置保留在假设未更改的文件中。随着时间的推移,我创建了几个分支,并且假定未更改的文件在其间不断演变(添加更多本地配置)。如果我尝试签出较旧的分支,我会得到:

error: Your local changes to the following files would be overwritten by checkout:
    <some assume-unchanged files>
Please, commit your changes or stash them before you can switch branches.
Run Code Online (Sandbox Code Playgroud)

我不想提交它们,也不能隐藏它们(即使使用 --include-untracked 选项):

$ git stash
No local changes to save
Run Code Online (Sandbox Code Playgroud)

有没有解决方案,或者有更好的工作流程来让本地更改保持未提交状态?

git git-stash gitignore git-assume-unchanged

5
推荐指数
1
解决办法
1016
查看次数

git update-index --skip-worktree 会影响上游仓库吗?

我自己使用 git 已经有一段时间了,现在正在为我们的团队设置一个 repo。我们开发了一个电子商务平台。

有一些目录和文件要忽略,例如上传目录和特定于环境的配置文件。

虽然配置文件在 .gitignore 上,但我想用--skip-worktree或忽略上传目录--assume-unchanged

我的问题 - 我找不到明确的答案 - 是--assume-unchangedor--skip-worktree位是否会被推送到上游回购?

如果不是,那么确保 git 不会跨存储库的所有实例操作上传目录的内容的最佳方法是什么?

git gitignore git-assume-unchanged git-skip-worktree

5
推荐指数
1
解决办法
2055
查看次数