上面的错误,Git给出的提示是:Updates were rejected because the remote contains work that you do not have locally.This is usually caused by another repository pushing to the same ref.You may want to first integrate the remote changes (e.g.,'git pull ...')before pushing again. See the 'Note about fast-forword' in 'git push --help' for details.
从上面提示我们不难看出,之所以出现这个原因就是远程仓库中存在本地没有的文件,所以Git建议你先拉取代码,再进行代码提交(git pull
之后再git push
)。这是一种方法,适合于你本地需要远程多出来的文件。但当你需要远程以本地为主,放弃远程多出来的文件,这时就需要另作处理。
这时,你就可以使用.gitnore
文件。它指定了Git应该忽略一些故意不用跟踪的文件。Git已经跟踪的文件不受影响,具体使用规则看下面:
.gitignore
文件中的每一行都指定一个模式,在决定是否忽略路径时,Git通常会检查来自多个来源的.gitignore
模式。
- 空行不匹配任何文件,因此它可以作为可读性的分隔符;
- 以#开始的行是注释;
- 尾部空格将被忽略,除非用反斜杠引用;
- 以/结尾,则它只会用目录找到匹配项,例如:
foo/
会匹配目录foo和它下面路径下的文件; - *表示全局匹配除了“/”。
example
.gitignore文件
# 忽略项目下所有的tmp,exe,log文件
*.tmp
*.exe
*.log
#忽略项目下logs,temp,vendor目录及其之下的所有文件
logs/
temp/
vendor/
当你设置好不需要提交的文件后,然后重新git push
就可以解决上面的问题。