You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在拉取远程代码前保留并忽略creds.json文件的变更?

我来帮你搞定这个跨远程仓库同步时保留本地配置文件的问题——这种场景其实挺常见的,咱们一步步排查修复:

第一步:先确认文件是否已被Git追踪

你之前加了.gitignore和skip-worktree但没生效,大概率是因为creds.json已经被提交到Bitbucket的远程仓库里了。Git对已追踪的文件,.gitignore是不起作用的,skip-worktree也只能阻止本地变更被提交,没法阻止远程的文件同步下来。

先执行这个命令验证:

git ls-files --error-unmatch creds.json

如果没报错,说明文件确实被Git追踪了。这时候得先把它从Git的追踪记录里移除,但保留本地的文件:

git rm --cached creds.json

接着提交这个变更并推送到Bitbucket,让远程仓库也停止追踪它:

git commit -m "Stop tracking creds.json in repo"
git push bitbucket <你的分支名称>
第二步:修复.gitignore和skip-worktree的配置

现在远程仓库不再追踪这个文件了,咱们把它正式加入.gitignore,确保后续不会被误提交:

echo "creds.json" >> .gitignore
git add .gitignore
git commit -m "Add creds.json to gitignore"
git push bitbucket <你的分支名称>

然后重新设置skip-worktree标记,确保Git完全忽略本地文件的变更:

git update-index --skip-worktree creds.json

你可以用这个命令检查标记是否生效:

git ls-files -v | grep ^S

如果输出里有creds.json,说明设置成功了。

第三步:同步GitHub远程仓库的配置

因为你还要往GitHub推送代码,得确保GitHub的仓库也停止追踪这个文件。把刚才的变更推送到GitHub:

git push github <你的分支名称>

这样两个远程仓库都不会再管这个文件,之后从Bitbucket拉取代码时,不会覆盖你的本地creds.json;往GitHub推送时,也不会把本地的creds.json推上去。

额外小技巧:如果拉取时还是出现文件冲突

要是偶尔拉取代码时,Git自动生成了一个远程版本的creds.json,别慌——先确保你本地的版本有备份,然后删除拉下来的版本,恢复自己的文件后,重新执行git update-index --skip-worktree creds.json就行。

内容的提问来源于stack exchange,提问作者Daniel Harris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:24:24