小白,远程同步开发时遇到日志的问题。
情况是这样,目前项目文件夹内有一个 logs 文件夹,储存一些日志文件。我在创建项目时添加了.gitignore 文件,设置忽略这个文件夹,如此一来每次 commit 就不会把日志一起传上去。
但是最近生产服务器同步时遇到问题,我希望的模式是,我在测试机器上写好代码,测试完成,然后同步到 github 远程服务器,然后生产服务器上再执行 git pull 把更新的代码拉下来。
目前这么操作之后,生产服务器执行 git pull 程序,他会说我本地与远程有不同,需要先删除冗余文件( logs 等)之后才能 pull,这显然不符合要求,每次更新代码都要清空日志也太那个了。
git 有没有当做不存在的功能?还是我哪里操作错了,请大家指点一下
1
msg7086 2020-12-29 18:47:18 +08:00 via Android
Git add 的时候不要把 logs 里的文件 add 进去。
|
2
Tianao 2020-12-29 18:48:37 +08:00
生产环境本地也有 .gitignore 吧?有的话生产环境下取消对所有已有日志文件的 git 跟踪( git rm --cached <日志文件>),以后再 pull 就不会冲突了。
|
3
LeeReamond OP @msg7086 既然已经有.gitignore 文件了,那我执行 git add 的时候应该与被忽略文件夹无关吧,没 add 进日志文件过啊
|
4
aleung 2020-12-29 18:51:26 +08:00 via Android
没有看懂为什么 .gitignore 没能解决你的问题。你的问题到底是什么?
|
5
LeeReamond OP @Tianao 大佬,你说这个看不太懂,所以是在某文件夹被 ignore 之后,它仍然会被追踪,需要手动取消追踪才行吗?
|
6
LeeReamond OP @aleung 生产部署后,产生了新的日志文件,与 github 远程代码不同步。在生产服务器更新代码的时候,执行 pull 命令,会提示我当前文件夹有差异,无法同步,需要先删除差异文件,也就是 logs 等等
|
7
cnxobo 2020-12-29 18:54:13 +08:00
gitignore 只能忽略尚未被跟踪的文件。如果你之前某个提交提交过了,就算后面匹配上 gitignore , 依然会继续提交的。
|
8
choury 2020-12-29 18:54:34 +08:00 via Android
忽略之前已有文件要先在 git 中删除才行
|
9
superrichman 2020-12-29 18:55:28 +08:00 via iPhone
|
10
Tianao 2020-12-29 18:59:37 +08:00 1
@LeeReamond #5 是的,.gitignore 只会在 add 文件时生效,如果仓库是老的.gitignore 是新的,一旦建立跟踪就需要先手动取消跟踪一次。
|
11
LeeReamond OP @cnxobo 所以问题的原因是我之前不小心添加过 logs 这个文件夹内的文件吗?但是现在打开项目地址的话,里面是没有 logs 这个文件夹的,怎么回事呢
|
12
Lax 2020-12-29 19:19:36 +08:00
有提示的时候,git status 看看?
|
13
Lax 2020-12-29 19:21:24 +08:00
怀疑是服务器上的目录里更改了其它文件。问题不一定是你描述的这个样子,报错的信息直接复制一份来看看
|
14
LeeReamond OP @Lax 报错信息一串英文,只记得中文含义,原文找不到了,当时为了更新就直接按要求的删文件了,没把报错记下来
|
15
Lax 2020-12-29 21:42:05 +08:00
@LeeReamond 那就不好猜了。严重怀疑实际报错信息和上面提到的中文含义不匹配,下次再遇到类似问题至少截图保存一下现场
|
16
dajj 2020-12-30 17:28:03 +08:00
@LeeReamond 从 gitignore 中去掉 logs, 然后 git rm logs 目录, 再重新添加 logs 到 ignore
|