因git主要用于版本管理,代码同步方面,因临时调试等原因,需要使用ftp上传文件。

但因为git的账户为ubuntu,ftp是虚拟账户overlord,  www-data是apache的用户

导致文件权限不同,出现的问题主要有:

1.ftp无法覆盖已有的文件

2.git无法更新ftp上传的文件

解决方案:

  1. 应该先创建一个目录,用于放置代码的。需要对这个目录进行一些初始化操作, 

    usermod -aG overlord ubuntu    # 把用户ubuntu  添加到overlord用户组
    mkdir testcode
    chown overlord.overlord testcode/
    chmod testcode/
    chmod g+s testcode/   # 文件夹下新文件\夹继承上级用户组  

    修改vsftpd的账户的配置

    local_umask=

    查看 umask,确保是0002--如果不是,使用   umask 002  查看ubuntu用户的umask

    $ umask
    $
  2. 首先,第一次代码上传建议使用git克隆clone一份到服务器,这样的好处是开发人员可以预先整理一次代码,筛选需要版本管理的代码
    git clone https://git.dxgz.work/zhuangdx/timer_deleter.git
    ubuntu@ubuntu:./timer_deleter$ ll
    total
    drwxrwsr-x ubuntu overlord Mar : ./
    drwxrwsr-x overlord overlord Mar : ../
    -rw-rw-r-- ubuntu overlord Mar : add_cron_td_job.sh
    drwxrwsr-x ubuntu overlord Mar : conf/
    drwxrwsr-x ubuntu overlord Mar : .git/
    -rw-rw-r-- ubuntu overlord Mar : .gitignore
    -rw-rw-r-- ubuntu overlord Mar : handle.py
    -rw-rw-r-- ubuntu overlord Mar : LICENSE
    -rw-rw-r-- ubuntu overlord Mar : README.md
    -rw-rw-r-- ubuntu overlord Mar : run.log
    drwxrwsr-x ubuntu overlord Mar : utils/

    上面可以看出来,用户组和所有者的权限一致。这样在 overlord组的用户都可以进行文件读写操作

  3. ftp属于overlord,这样git与ftp进行文件操作,都不会因权限问题而无法操作。

  


以上  

git 与 ftp 共同工作的更多相关文章

  1. 使用git代替FTP部署代码到服务器的例子

    这篇文章主要介绍了使用git代替FTP部署代码到服务器的例子,这种方法可以节省流量.节省时间,需要的朋友可以参考下 本地开发完成后,通常会在服务器上部署,有人会使用ftp,有人会使用scp, ftp和 ...

  2. 使用Git代替FTP进行虚拟主机的代码管理

    为什么要使用Git代替FTP的原因: 由于本人菜鸟+穷屌,玩不起VPS和其他大牌的云主机,所以呢就只能在景安(这不是广告..)申请了免费的虚拟主机,就想着自己玩玩而已,免费的嘛,空间流量什么的就不讨论 ...

  3. git总结一、工作中常用基础命令

    首先来了解两个概念: 工作区:比如你的项目目录 暂存区:git和其他版本控制系统的不同之处就是有这个暂存区的概念. .git不是工作区,而是git 版本库,在版本库中存放着很多东西,比如暂存区(sta ...

  4. git宝典—应付日常工作使用足够的指北手册

    最近公司gitlab又迁移,一堆git的命令骚操作,然鹅git命令,感觉还是得复习下——其实,git现在界面操作工具蛮多,比如intellij 自带的git操作插件就不错,gitlab github ...

  5. Git多人协作工作流程

    前言 之前一直把Git当做个人版本控制的工具使用,现在由于工作需要,需要多人协作维护文档,所以去简单了解了下Git多人协作的工作流程,发现还真的很多讲解的,而且大神也已经讲解得很清楚了,这里就做一个简 ...

  6. FTP服务工作原理

    1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...

  7. Git 保存和恢复工作进度(stash)

    感谢原文作者:滑稽的命运 原文链接:https://www.jianshu.com/p/1e65e938f93c 作用: 封存工作区与暂存区已经被Git版本控制,但没有提交(Commit)版本库的文件 ...

  8. 项目git commit时卡主不良代码:husky让Git检查代码规范化工作

    看完 <前端规范之Git工作流规范(Husky + Commitlint + Lint-staged) https://www.cnblogs.com/Yellow-ice/p/15349873 ...

  9. git-ftp 用git管理ftp空间

    ftp管理不能实现版本控制,而且多电脑工作时,同步很成问题. git-ftp可以完美的解决问题 下面是我的趟坑之路,本机的环境是win10,首先你的机器得装有git. git-ftp的地址https: ...

随机推荐

  1. VFS 上传文件到sftp 报错 包含中文路径 或者中文文件名称

    之前用Apache commons-vfs工具进行ftp操作(FTP服务器是 FileZilla Server) 上传本地文件 到 ftp服务器上,如果文件名称 包含 中文 报错 org.apache ...

  2. angular 的navigate 各种使用情况

    navigate是Router类的一个方法,主要用来跳转路由. 函数定义: navigate(commands: any[], extras?: NavigationExtras) : Promise ...

  3. 微信小程序swiper 前后边距的使用

    小程序中有一个组件swiper 就是滑块视图容器 其中提供了两个属性 previous-margin:前边距,可用于露出前一项的一小部分       next-margin:后边距,可用于露出后一项的 ...

  4. python基础17_列表推导式 vs 生成器表达式

    [ ] 列表推导式,是用简单的语法来生成列表, ( ) 生成器表达式,是用简单的语法创建个生成器. 外观上仅括号不一样. 虽然写起来方便,但是读起来稍显费力,另外,不易调试. # 列表推导式 prin ...

  5. QT 定时器详解

    编译器 :   Qt Creator 在窗口化类中实现定时器 .h #include <QTimer> private slots: ... void onTimerOut(); priv ...

  6. 关于while read line 循环中变量作用域的问题

    前一阵用shell写了一个从数据库中抽取数据生成.xml文件的脚本,要求是每个文件中只生成1000条数据.于是用到了while read line 作为循环. 在制作文件计数器的时候发现了一个问题,在 ...

  7. Linux常用命令之Yum

    Linux Yum命令详解Yum全称Yellow dog Updater,Modified,是一个在Fedora和RedHat以及SUSE中提供的基于RPM包的软件包管理工具,能够从指定的服务器自动下 ...

  8. oracle数据库实例启动与关闭

    区分数据库与实例:实例是指各种内存结构和服务进程,数据库是指基于磁盘存储的数据文件.控制文件.参数文件.日志文件和归档日志文件组成的物里文件集合. 数据库实例启动: startup [nomount ...

  9. c# 连接数据库SqlHelper

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  10. 【Spring】文件上传

    一:引入所需jar包 // https://mvnrepository.com/artifact/commons-fileupload/commons-fileuploadcompile group: ...