git假设vs跳过工作树-忽略符号链接

| 我在git存储库和Windows上遇到问题。问题是git存储库中有一个linux符号链接,并且开发人员正在运行Windows,这显然是行不通的。现在,既然该符号链接永远都不会改变,我想找到一种方法在开发人员中删除它,并在其位置添加一个文件夹(这是符号所指向的位置),但是让git忽略那些特定的更改。现在,我可以删除符号链接,创建一个同名文件夹,然后添加一个忽略所有内容的.gitignore。现在,只要确保git忽略删除符号链接,我在研究时就找到了两种可能的解决方案。我找到的解决方案是:
git update-index --assume-unchanged [FILE]
git update-index --skip-worktree [FILE]
我的问题是哪种选择效果最好?我想确保一旦执行此操作,除非我专门执行此操作,否则它永远不会撤销。我想确保还原,重置,创建分支,合并等……一切正常。     
已邀请:
两种选择都有问题。每当放弃索引时(例如git reset),“ 1”都会自行重置,因此迟早可能会触发您。
--skip-worktree
也是如此...但是,您可以维护本地文件列表以不检出,因此在必要时将自动重新设置skip-worktree位。步骤如下: 将存储库的“ 3”设置为true。 创建一个包含两个模式的文件
.git/info/sparse-checkout
*
包含所有内容,
!/foo
排除符号链接foo(
/
表示锚定到顶层)。 现在,手动设置skip-worktree位,然后删除符号链接。 现在您可以继续进行操作,而不必担心git会自动提交目录,但是请注意,如果有人在目录或其中的任何文件上显式运行
git add
,仍然会遇到问题。 [编辑添加:]经过进一步讨论,我们找到了最后一个问题的解决方案:在目录中放置一个带有ѭ5。模式的.gitignore文件。     

要回复问题请先登录注册