标签: git-skip-worktree

在--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
查看次数

Git跳过目录及其子目录中所有跟踪文件的工作树

假设我有一个已经被 git 跟踪的工作树。

.
??? parent
?   ??? child1
?   |    ??? file1.txt
?   ??? child2
?   |    ??? file2.txt
?   |    ??? grandchild
?   |         ??? file3.txt
?   ??? somefile.txt
?   ??? anotherfile.txt
|
Run Code Online (Sandbox Code Playgroud)

我想标记其中的每个跟踪文件,parent以便 git 不再跟踪对它们所做的任何更改,最终将包括somefile.txt, anotherfile.txt, file1.txt, file2.txt, file3.txt.

.gitignore仅适用于未跟踪的文件,所以我使用--skip-worktree.

我试过:

1.

git update-index --skip-worktree parent/
Run Code Online (Sandbox Code Playgroud)

给了我,Ignoring path parent/但是当我检查时git ls-files -v,它仍然显示我想跳过的文件仍在跟踪中。

2.

git update-index --skip-worktree parent/*
Run Code Online (Sandbox Code Playgroud)

它给了我fatal: Unable to mark file …

git git-skip-worktree

12
推荐指数
1
解决办法
3396
查看次数

使用来自另一个分支的--skip-worktree处理对文件的更改

在我的机器上,我已经开始--skip-worktreeconfig/database.yml.

git update-index --skip-worktree config/database.yml
Run Code Online (Sandbox Code Playgroud)

另一位开发人员config/database.yml在处理项目时已提交并合并到开发分支的更改中.

现在,当我这样做时git pull origin develop,我明白了

Andrews-Air:[project] agrimm$ git pull origin develop
From bitbucket.org:[company]/[project]
 * branch            develop    -> FETCH_HEAD
Updating [SHA]..[Another SHA]
error: Your local changes to the following files would be overwritten by merge:
    config/database.yml
Please, commit your changes or stash them before you can merge.
Aborting
Run Code Online (Sandbox Code Playgroud)

我该如何处理这种变化?我应该这样做

git update-index --no-skip-worktree config/database.yml
git stash save "Save changes to config/database.yml"
git pull origin develop
git stash apply
# …
Run Code Online (Sandbox Code Playgroud)

git branching-and-merging git-skip-worktree

10
推荐指数
1
解决办法
1497
查看次数

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
查看次数