相关疑难解决方法(0)

显示git diff,忽略文件权限更改?

chmod在我的实时服务器上运行了几个.现在,当我在git diff那里做的时候,我看到很多old mode 100644 new mode 100755

我还在那里更改了一些文件.但我只是git diff只是为了显示文件的变化,忽略了文件权限的变化.

我怎样才能做到这一点?顺便说一句,我不希望GIT忽略那些文件权限的变化.实际上我想提交它们,我只是想让git diff在一个非常具体的时刻不显示它们.

git diff git-diff

30
推荐指数
2
解决办法
1万
查看次数

git line endings - 无法存储,重置,现在无法通过虚假行结尾提交

我有一个回购我添加了gitattributes它并正在努力它.我通过Dropbox将它同步到另一台机器.当我把它打开到另一台机器时,一堆文件突然出现在未分区的区域作为总差异(所有文件都是一个巨大的差异,这意味着行结束差异) - 我的crlf结局基本上是.* text=auto我在Windows上工作.我试图隐藏更改,重置分支等.最后我决定提交文件然后做了一些其他提交我想在行结束提交之前重新排序(和压缩).当我尝试变基时,我得到一个:

error: Your local changes to the following files would be overwritten by merge
        # those same files
Please, commit your changes or stash them before you can merge.
Aborting
Could not apply 89b25b81fff1a1e7893319e123aaaca9c4162a95... <commit message>
Run Code Online (Sandbox Code Playgroud)

当然藏匿不起作用

这是一个错误吗?

有关:

编辑与机器无关 - 在同一台机器上,一些(......)操作只是使这些文件(它们在.gitattributes文本中)出现在"已更改"部分.似乎存在的唯一解决方法是:

git rm --cached -r .
git reset --hard
Run Code Online (Sandbox Code Playgroud)

小心使用

编辑:hack上面转移到别名状态:

[alias]
     crlf = !git rm -r . …
Run Code Online (Sandbox Code Playgroud)

git line-endings

28
推荐指数
1
解决办法
5880
查看次数

Windows上的git始终显示已修改的文件,即使对于新克隆的repo也是如此

我在Windows机器上遇到了我的git问题.我总是有一些在每个repo中修改的git文件,显示为修改的文件是相同的.

如果我克隆一个新的repo并使用tortoisegit提交我看到一些文件被修改,即使我从未触及过repo中的单个文件."gitstatus"并没有显示任何修改

任何帮助表示赞赏.谢谢

git tortoisegit

23
推荐指数
4
解决办法
1万
查看次数

移动存储库后,git diff报告模式发生了变化

我通过复制到外部硬盘将一堆我的git存储库移动到另一个操作系统.现在,当我这样做时git diff,报告所有文件模式都已更改.

diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/.npmignore b/.npmignore
old mode 100644
new mode 100755
diff --git a/.travis.yml b/.travis.yml
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
Run Code Online (Sandbox Code Playgroud)

我对文件权限知之甚少,我该怎么办呢?

提交模式更改?为所有非可执行文件更改模式?git重置?

git

20
推荐指数
2
解决办法
5844
查看次数

如果文件的内容保持不变,则使git忽略修改日期更改

我有python脚本生成和修改不同的xml文件.它们工作,以便打开文件,基于它创建ElementTree对象,尝试在必要时修改对象的内容,然后将这些对象保存到原始文件中.

问题是,有时它们甚至不会改变文件的内容.但是文件的修改日期会发生变化.

另一方面,Git将这些文件视为"已更改",因为它注意到修改日期已更改.虽然它不会产生差异(显然).

citool表现得很疯狂(警告日期已经改变,但文件本身没有,尝试重新扫描它们并再次将它们显示为"已修改")

我没有权限修改那些python脚本,因此不能重写它们(它们存储并经常在单独的repo中修改).有没有办法告诉git忽略特定文件夹的修改日期更改?看到几十个"已更改"的文件实际上只有其中一个被真正修改过,这只是非常讨厌.

我知道我可以暂存所有文件,然后取消它们,但是我需要省略一些额外的操作.有时它只会干扰正常的git工作流程.

更新: git citool错误读取(引用):"未检测到差异.<file>没有更改.此文件的修改日期已由另一个应用程序更新,但文件中的内容未更改.重新扫描将自动启动找到可能具有相同状态的其他文件."

然后重新扫描后,所有伪修改的文件再次出现.

git status还将这些文件显示为"已修改"

git git-diff

15
推荐指数
2
解决办法
5730
查看次数

Git并没有忽略文件模式的改变(chmod),为什么?

开始之前我应该说我已经看了这个帖子这个很好,但由于某些原因,解决方案,只要不是为我工作.我的存储库位于,~/sources因此每个命令都从该路径运行.这就是我所做的:

将filemode更改为false:

$ git config --global core.filemode false
Run Code Online (Sandbox Code Playgroud)

检查全局配置:

$ git config --list
...
core.filemode=false
core.repositoryformatversion=0
core.bare=false
core.logallrefupdates=true
...
Run Code Online (Sandbox Code Playgroud)

重新初始化存储库:

$ git init
Reinitialized existing Git repository in /home/rperez/sources/.git/
Run Code Online (Sandbox Code Playgroud)

检查需要添加的内容:

$ git status
Run Code Online (Sandbox Code Playgroud)

我得到一个包含存储库中所有文件的列表.

我在用:

$ git --version
git version 2.9.3
Run Code Online (Sandbox Code Playgroud)

更新:为两个不同的文件添加了git diff

$ git status
...
    modified:   testing/test-valid-swasset-update.php
...
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    library/mpdf60/ttfontdata/dejavusanscondensedI.GDEFdata.php
...
Run Code Online (Sandbox Code Playgroud)

git diff 上述文件的输出:

$ git diff testing/test-valid-swasset-update.php
diff --git …
Run Code Online (Sandbox Code Playgroud)

git ignore

14
推荐指数
1
解决办法
8377
查看次数

Git全局core.fileMode在克隆时本地覆盖错误

读到这个,我能够在全局和本地fileMode配置我的配置为false.

但是,当我git clone,git继续初始化项目时强制使用本地配置fileMode true,以便它覆盖我的全局false.因此,对于每个项目,我都要删除本地配置或将其设置为false手动配置,这完全失去了全局配置的意义.

我如何防止git默认设置在每个项目上,本地配置?这是由另一个配置变量驱动的吗?通过服务器?

git config

10
推荐指数
2
解决办法
1465
查看次数

git将未更改的文件标记为已更改

这是基本问题:git似乎将我的所有文件标记为已更改,即使没有更改.即使差异没有显示任何差异,它仍然希望我重新上演/提交所有文件.我怎么能说服git没有变化的方式仍然跟踪从那一点开始的变化?

我有一个git存储库,我在两台独立的计算机上编辑(都是Mac).我使用USB记忆棒上的加密文件系统映像传输它们并使用rsync进行复制.当我将文件传输到笔记本电脑时,所有文件都标记为已更改.如果我只是忽略git并处理文件,rsync'回来,另一台机器将再次正确识别已更改的文件.所以它有点工作,但是当我无法提交我的更改,直到我回到另一台机器时,在我的笔记本电脑上工作真的很不方便,因为那时我将不得不在一次单一的签入中提交一些更改.

git rsync

7
推荐指数
1
解决办法
5261
查看次数

Eclipse会在所有接触到的文件上将文件模式从644更改为755

我在Win7下使用Eclipse,编辑通过vboxsf从Ubuntu VirtualBox VM共享的文件.这些文件最初是使用文件模式644创建的,但Eclipse正在将文件更改为755(即使是我没有编辑过的文件).

如何防止Eclipse更改存储库中文件的权限?

eclipse git

6
推荐指数
0
解决办法
3014
查看次数

移动项目文件夹后,git 显示存储库中的许多更改

我对 git 很陌生,但已经很享受了。这是我目前的问题:

  • 一些信息:
    • 我正在扩展一个朋友给我的项目作为档案。该文件夹包含 git 存储库,并在 github 上有一个来源。
    • 在清理了不必要的东西后,我在 BitBucket 上创建了一个帐户并将整个项目推送到那里并且从源头上取消跟踪
    • 我一直工作得很好:创建分支、提交、合并,一切都很好。一个月来,我开始在一个分支上工作并更改了一些文件(我认为大约 20 个)。一切似乎都很好。
  • 问题:
    • 几天前,我决定将项目文件夹从一个分区移动到另一个分区(我在 Macbook 上工作,我将它从 Windows 分区移动到了 MacOS 的分区
    • git status 'ed 时,我注意到我项目中的所有文件都被视为已修改,而不仅仅是我当前的更改。现在我不知道我的更改是什么,分支也没用。我该怎么做才能只看到我的更改?我还没有触及项目的大部分内容,整个历史都很好。

git git-diff git-branch

6
推荐指数
2
解决办法
2334
查看次数

标签 统计

git ×10

git-diff ×3

config ×1

diff ×1

eclipse ×1

git-branch ×1

ignore ×1

line-endings ×1

rsync ×1

tortoisegit ×1