我们有一个共享目录(调用它/共享),我们通过我们的主git分支自动保持最新状态,只要有一个push to master就运行这些命令:
git reset --hard HEAD git clean -f -d git pull
这在很大程度上起作用。但是有一个目录/共享/媒体,我们不想要触摸,即使在git中检查了“媒体”符号链接。
我已将“media”添加到.git / info / exclude中,但无论如何,“git reset --hard HEAD”会删除/ shared / media并将其替换为已签入的符号链接。
有没有办法让“git reset --hard HEAD”单独保留此目录,除了例如通过事先将其移开并在之后恢复它?
答案 0 :(得分:7)
git update-index --skip-worktree <file>
应该做的伎俩(见类似问题:git update-index --assume-unchanged and git reset)
答案 1 :(得分:2)
您不能忽略在git存储库中存储实际内容的路径。 Git将尊重对被跟踪树的更改。忽略仅影响开始跟踪新内容的尝试,需要add -f
实际存储新内容。
但是,如果您忽略包含.gitignore
,.git/info/exclude
或core.excludesfile
配置的路径,则会出现此情况。
如果您不希望通过硬重置删除媒体目录,则需要从存储库中删除冲突路径。除了明确重置其他路径之外,没有解决方法。