相关疑难解决方法(0)

如何让Git"忘记"一个被跟踪但现在位于.gitignore的文件?

有一个文件被跟踪git,但现在该文件在.gitignore列表中.

但是,该文件在git status编辑后会一直显示.你怎么强迫git完全忘掉它?

git gitignore git-rm

4888
推荐指数
25
解决办法
111万
查看次数

从Git存储库中删除文件而不从本地文件系统中删除它

我的初始提交包含一些日志文件.我已添加*log到我的.gitignore,现在我想从我的存储库中删除日志文件.

git rm mylogfile.log
Run Code Online (Sandbox Code Playgroud)

将从存储库中删除文件,但也将从本地文件系统中删除它.

如何在删除文件的本地副本的情况下从存储库中删除此文件?

git repository remote-server delete-file git-rm

2892
推荐指数
11
解决办法
78万
查看次数

暂时从git中取消文件

我在我的机器上设置了一个本地git.当我初始化git时,我添加了预编译的库和二进制文件.但是,现在在开发过程中,我不想间歇性地检查这些文件.我不想从repo中删除这些文件.在完成开发之前,有没有办法不跟踪这些文件.(我想我不能使用.gitignore,因为它仅适用于那些不在git中的文件.我想暂时禁用文件跟踪.)

git github repository

425
推荐指数
7
解决办法
39万
查看次数

Git - '假设未改变'和'跳过工作树'之间的区别

我对一个我不想提交到我的存储库的文件进行了本地更改.它是用于在服务器上构建应用程序的配置文件,但我想在本地使用不同的设置进行构建.当然,当我将'git status'作为要上演的东西时,该文件总是显示出来.我想隐藏这个特定的更改而不是提交它.我不会对文件进行任何其他更改.

经过一番挖掘后,我看到了两个选项:'假设未改变'和'跳过工作树'.这里的前一个问题谈到了它们,但并没有真正解释它们之间的区别.我的问题是:这两个命令有何不同?为什么有人会使用其中一个?

git git-index

400
推荐指数
3
解决办法
6万
查看次数

从git tracking中删除文件夹

我需要从跟踪中排除文件夹(名称上传).我试着跑

git rm -r --cached wordpress/wp-content/uploads
Run Code Online (Sandbox Code Playgroud)

然后我添加了.gitignore的路径

/wordpress/wp-content/uploads
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时,git status他们显示为已删除.如果我尝试提交更改,则文件将被删除,不仅会从跟踪中删除.

我究竟做错了什么?

我也试过了

git update-index --assume-unchanged <file>
Run Code Online (Sandbox Code Playgroud)

但这似乎只解开文件.但我需要从跟踪中删除整个文件夹(包括子文件夹).

git git-rm

359
推荐指数
6
解决办法
19万
查看次数

git update-index --assume-unchanged返回"致命无法标记文件"

我遇到了与此帖相同的问题 - git update-index --assume-unchanged返回错误 但我不明白答案被标记为正确(我没有看到它解释了如何解决这种情况)

我这样做并得到这个错误:

$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
Run Code Online (Sandbox Code Playgroud)
  1. 文件IS已添加到存储库中
  2. 它不在.git/info/exclude中
  3. 它不在.gitignore中(它是,但我把它拿出来,然后强制使用git add -f web.config添加web.config,提交并将这些更改推送到repo)
  4. 当我做git ls-files -o它不在那里

那么我该怎么做才能解决?

git

121
推荐指数
8
解决办法
4万
查看次数

将.gitignore添加到gitignore

是否可以将.gitignore文件添加到.gitignore自身?

.gitignore
Run Code Online (Sandbox Code Playgroud)

虽然不起作用

我不想在编辑过的文件中看到它

git gitignore

111
推荐指数
4
解决办法
5万
查看次数

git update-index - 在目录上保持不变

git 1.7.12

我想将给定目录下的所有文件标记为假设未更改.

1)git update-index --assume-unchaged dir/给出"忽略路径".

2)git update-index --assume-unchaged dir/*快速失败,因为它会遇到未被跟踪的文件,因此它给出"致命:无法标记文件"并退出.

3)尝试生成要标记的文件列表. cd进入所需目录然后运行git ls-files | tr '\n' ' ' | git update-index --assume-unchanged.这不会产生任何错误消息,但不会成功标记文件.命令的第一部分git ls-files | tr '\n' ' '正确生成了我要标记的所有文件的空格分隔列表.如果我将该命令的输出复制并粘贴到命令行,则该git update-index命令有效.什么不使用管道?

不,我添加dir到.gitignore 是不够的.我需要将这些文件放在存储库中,但是需要在本地进行不需要的更改,以便用户可以进行拉取.

git command-line pipe

95
推荐指数
3
解决办法
4万
查看次数

Git全局忽略不工作

我已经创建了该文件.gitignore_global并将其放在我的git安装目录中.当我运行命令时:

git config --global core.excludesfile ~/.gitignore
Run Code Online (Sandbox Code Playgroud)

忽略文件中的规则不会应用于我的提交.

当我重命名文件.gitignore并将其放入我的项目根目录时,规则确实适用.

这有什么不对?

git

75
推荐指数
4
解决办法
4万
查看次数

如何阻止Git跟踪来自此提交的文件的任何更改?

我有一个数据库配置文件,其默认值不重要.但是,对此文件的任何更改都将包含不应在repo中跟踪的敏感信息.

我希望Git存储库的未来可以包含默认版本,但忽略任何用户所做的任何更改.

以下内容保留了本地配置,但将删除推送到repo导致将来拉出的问题.

cat "app/dir/config.file" >> .gitignore
git rm --cached app/dir/config.file
Run Code Online (Sandbox Code Playgroud)

以下是这项工作,但不会持续超过对回购的推动.

git update-index --assume-unchanged app/dir/config.file
Run Code Online (Sandbox Code Playgroud)

这似乎是围绕敏感信息进行版本控制的常见要求,但我似乎无法找到解决方案.

git

65
推荐指数
2
解决办法
2万
查看次数