Linux git服务器显示文件在git拉取之前已更改

Linux git服务器显示文件在git拉取之前已更改,linux,git,ssh,Linux,Git,Ssh,试图找出一个奇怪的git事故- 我有两个环境: OS:CentOS7==Git版本:2.11.0 OS:Linux Mint==Git版本:2.11.0 在Env1上发生的情况是,当我从Env2推送时,它会将我在服务器上提交的文件显示为暂存文件。奇怪的是,它建议的代码更改是以前的 推之前的文件状态。因此,如果我推送一个新文件,而现有文件有其旧代码,则新文件显示为已删除 我有一个.gittributes文件 * text=auto 正如这些帖子所建议的那样: 安装程序遵循本教程: 为了在En

试图找出一个奇怪的git事故-

我有两个环境:

  • OS:CentOS7==Git版本:2.11.0
  • OS:Linux Mint==Git版本:2.11.0
  • 在Env1上发生的情况是,当我从Env2推送时,它会将我在服务器上提交的文件显示为暂存文件。奇怪的是,它建议的代码更改是以前的 推之前的文件状态。因此,如果我推送一个新文件,而现有文件有其旧代码,则新文件显示为已删除

    我有一个.gittributes文件

    * text=auto
    
    正如这些帖子所建议的那样:

    安装程序遵循本教程:

    为了在Env2(我的本地)中克隆回购协议,我使用了: git克隆ssh://user@ip.add.ress:/path/to/project

    它克隆得很好。我用过: git config core.filemode false 要确保这不是权限问题,请将Env1上的文件设置为777

    我用于提交工作的步骤:

  • vim filename.filetype
  • //做些改变
  • git add filename.filetype
  • git commit-m“一般消息”
  • git-push-u源主机

  • 我也尝试过git config core.autocrlf,但没有任何效果-是否有其他方法可以调试或更具体地研究它?或者更好——有人遇到并修复了吗?

    你是说你把自己推到一个非裸存储库中,并对其行为感到好奇吗?这是意料之中的。我的意思是,这种行为可能是意外的,因为你不应该真的推进到一个非裸存储库。@Vampire非裸存储库使用裸存储库作为它的.git源。你说的“for's.git源”到底是什么意思?在我链接的教程中,它告诉用户创建一个/project/project-1.git,这是一个裸存储库,在非裸回购中,您将裸回购称为原点。如果您有非裸回购,env1和env2都是裸回购的克隆,那么您从env2推到裸回购,env1显示奇怪的行为?