git文件權限修改造成沖突和忽略文件權限方法

字號+ 編輯: 国内TP粉 修訂: 种花家 來源: OsChina 2023-09-11 我要說兩句(0)

說說自建git倉庫容易遇到的問題

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

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

$ chmod 777 pack.php
$ git diff pack.php
[root@localhost php]‡ git diff pack.php
diff --git a/php/pack.php b/php/pack.php
old mode 100644
new mode 100755

git 文件权限修改示例

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

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

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

[root@localhost php]# git pull
Updating 804203e.. 4abe32e
error: Your local changes to php/pack.php would be overwritten by merge
Please, commit your changes or stash them before you can merge.

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

可以看到提示冲突。

解决办法:

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

$ git config core.filemode false

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

[root@localhost mycode]# cat .git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefuodates = true

git 忽略文件权限的配置

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

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 防止退出linux終耑退出之後導致的nohup進程強制退出

  • Linux系統下word文档轉成pdf的辦法

  • ubuntu和debian安裝nginx或者tengine報錯, 找不到pcre依賴庫的解決辦法

  • linux終耑下借助awk命令查詢篩出網站access.log日志裡的統計信息

我要說說
網上賓友點評