git中忽略文件权限或文件拥有者的改变

在发布项目到线上时,很多时候需要修改文件的权限,如果是使用git版本管理软件来发布的话,那么下次更新线上文件的时候就会提示文件冲突。明明文件没有修改,为什么会冲突呢?原来git把文件权限也算作文件差异的一部分。下面笔者自己做了个简单的例子来演示这种情况。

1、修改版本库的文件的权限,然后使用diff查看下改变。

$ chmod 777 pack.php
$ git diff pack.php

git文件权限修改示例

可以看到git把文件权限也列入了版本管理。

2、在另外一个地方clone这个版本库,修改pack.php文件,然后提交。

3、在原版本库下面更新内容。

$ git pull

git文件权限修改引起的冲突

可以看到提示冲突。

解决办法:

git中可以加入忽略文件权限的配置,具体如下:

$ git config core.filemode false  // 当前版本库$ git config --global core.fileMode false // 所有版本库

这样就设置了忽略文件权限。查看下配置:

$ cat .git/config // 查看git的配置文件

git忽略文件权限的配置

这时候再更新代码就OK了。

时间: 2024-12-05 22:53:14

git中忽略文件权限或文件拥有者的改变的相关文章

忽略git中不需要进行版本管理的文件

在git中我们提交项目的时候有很多东西是不需要进行版本管理的,因此我们需要忽略掉. 虽然在github2.0的windows客户端提供了工具,但是这个工具并不是想象中的那么好用. 在上面点右键出现的Discard changes只能忽略掉一个文件,如果想忽略掉一个文件夹里的所有文件,这样点下去还不累死? 为了解决这个问题,我们还是用命令行来做,其实很简单,就用到一个命令,git status.我们打开桌面上的Git shell图标 他的用法与windows的命令行基本是一样的.跳转到要忽略文件夹

linux中的目录权限及文件权限

linux的权限分为 rwx三种: r: read 读的权限. w: write 写的权限 x: execute 执行的权限 1. 文件的权限 文件的读写权限,没有什么特别的. 那么什么是文件的执行权限呢? 在window下面文件是否可以执行是由后缀名决定的,例如: .exe .com .bat 等等 但是在 linux 中后缀名常常只是一个表示作用,表明何种类型,至于真正是否可以执行,则取决于该文件的 x 权限. 1 [[email protected] bin]# 2 [[email pro

linux 下 文件权限和文件主

文件与文件夹的权限和所有者 1.chmod -R 755 file 777 含义与来源: 777含义:分别为:所有者.同组用户.其他用户 7的来源:文件有三种操作模式:读4.写2.执行1,分别值为421. 比如:777:所有人可做所有操作 755:所有者可读写执行,同组用户可读可执行,其他用户可读可执行(755为最常见) 754:所有者可读写执行,同组用户可读可执行,其他用户可读 例:chmod -R 755 /backup 2.chown -R  所有者:[所有组] file 例:chown

文件编辑、文件权限以及文件搜索 04

本文将阐述linux当中的文件编辑.权限查看以及修改.文件查找以及内容搜索等命令. 1.操作环境 vmware 14.1 centos7 64 putty或者xshell 2.前提约束 已安装vmware vmware中已安装centos[注意,也可以直接就是一台linux机子,使用vmware是一个选项而已] 在本机能访问到centos[注意,本文中所涉及的linux服务器的ip是 192.168.100.192,请读者根据实际设置] 熟练使用putty 3.操作 3.1 vi.vim #新建

文件权限与文件

边干边学linux-文件权限与文件共享 2016年8月24日 14:21 文件权限与文件共享: 1.存取权限: 注意:对于目录来说,x代表你可以搜索这个目录,因此,如果你没有对目录的执行权限,那么就不能使用ls -l命令来列出目录下的内容或者使用cd命令来把目录变成当前目录 2.改变文件的存取权限: chmod [options] octal-mode file-list chmod [options] symbolic-mode file-list   ==>   chmod u+x file

Linux文件权限与文件夹权限实践

文件权限在基础中有介绍,不在重复 一.文件夹权限: 示例: 解释说明: r --read 既ls w --write     既创建新的目录或者文件 x --execute 既cd 现在有4个用户分属3个不同的用户组,如下: 1  2 3 4 现在开始测试文件夹权限: (1).r权限测试 other: 同用户组: oldboy为该文件夹用户,root为特殊用户所以都有r权限 (2).x权限测试 (3).w权限测试 可以看出同group其他用户和other都不具有w权限 同group oldgri

git提交忽略不必要的文件或文件夹

转http://blog.csdn.net/u014079773/article/details/51602344 eclipse安装git插件设置:点击"Add Pattern"添加你要过滤的文件,该方法只能保证本地提交过滤,但是提交远程仓库则不会 /target/ .classpath.project.settings       ##filter databfile.sln file##*.mdb  *.ldb  *.sln    ##class file##*.com  *.c

设置git 不提交 修改权限的文件

vim .git/config  打开文件

git中忽略UserInterfaceState.xcuserstate的方法

使用版本控制来托管代码时会遇到这样的问题 添加过.gitignore文件后每次push时还是会有UserInterfaceState.xcuserstate文件 这时可以在终端中输入 git rm --cached ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate git commit -m "Removed file that