相关疑难解决方法(0)

为什么我的Git预提交挂钩默认不可执行?

如果你看到接受的答案: 在git pre-commit钩子中聚合和uglifying javascript,你会看到我必须chmod +x在我的预提交钩子上做一个让它工作.

为什么Git默认不能执行此操作?

git githooks

14
推荐指数
5
解决办法
2万
查看次数

Android Studio - 基于Git的多平台项目的CRLF vs LF

我正在开发一个涉及多个开发人员的Android项目,其中一些开发人员在Windows上,另一些开发人员在Linux/MacOS上.由于我在Windows上,我已被指示配置Git如下以避免问题:

autocrlf = true
safecrlf = true
Run Code Online (Sandbox Code Playgroud)

这很好用.我在Android Studio中创建的任何.java/XML/etc文件都是CRLF,当我将它们推入repo时转换为LF,然后当我将更改提取到本地副本时返回CRLF.问题是,由于某种原因,某些类型的文件(如矢量可绘制资源)会在LF中生成.因此,当我尝试将它们添加到Git时,我得到了"不可逆转换"错误:

在此输入图像描述 我知道我可以设置safecrlf = warn,但据我所知,如果Git错误地将它们用于文本文件,则存在破坏二进制文件的风险,因此我正在寻找更安全的解决方案.现在我在将它们添加到Git之前手动将矢量资源编辑到CRLF中,这避免了上述错误消息,但是为每个文件重复该过程变得乏味.有什么方法可以强制Android Studio在CRLF中生成所有本地文件?

git android core.autocrlf android-studio

7
推荐指数
3
解决办法
3630
查看次数

Git diff报告本地更改'旧模式'/'新模式'

有2台机器,A和B.还有2个分支,p16和c2.

A有一个ext3文件系统,但在B上,存档位于带有vfat的truecrypt驱动器上,mount显示rw,uid = 1000,gid = 1000,umask = 077

A使用sshfs将B的目录树链接到其目录树中,然后使用文件系统将A推入B的p16.

现在有一些权限问题:

B$ git status
# On branch p16
nothing to commit (working directory clean)
B$ git checkout c2
Switched to branch 'c2'
B$ git checkout p16
error: You have local changes to 'help.txt'; cannot switch branches.
Run Code Online (Sandbox Code Playgroud)

git diff现在显示所有文件的更改模式:

B$git diff
diff --git a/help.txtt b/help.txt
old mode 100644
new mode 100755
diff --git a/169.txt b/169.txt
old mode 100644
new mode 100755
... 
(a list with all files having their mode changed follows) …
Run Code Online (Sandbox Code Playgroud)

filesystems git file-permissions

6
推荐指数
1
解决办法
2898
查看次数

项目提交的文件太多

我刚刚使用git克隆了一个项目并打开了一个新的分支.在更改了只有1个文件之后,我尝试提交更改,但它向我显示我提交了3000多个文件.点击任何文件以查看差异后,phpstorm说"没有差异".

我听说这可能是与行结尾有关的错误,但我现在不知道该怎么做.请你帮助我好吗?现在无法验证3000个文件,我不想通过推送疯狂的东西来破坏项目.

我尝试将phpstorm中的行结尾更改为LF(unix)和CRLF(windows),但它根本没有帮助.我听说可能有必要在git中更改它,所以我尝试运行一些随机推荐的命令,但根本没有结果.

编辑:增加了100个声望赏金.我无法解决这个问题

解决方案:好的,看起来这是特权问题.我在所有目录上都给了chmod 777,这太过分了.

git commit bitbucket phpstorm

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

GIT Diff 说的是 100644 ?许多文件上的 100755

发生了什么事:\n我在 Mac 上,在终端中,我正在执行 git pull 到主分支。所有这些文件都来到我的本地目录,由于某种原因,权限被更改为:-rwxr-xr-x@,而它应该是:-rw-r--r--。因此,当我将这些文件推送到 github 上的本地分支并尝试向主分支提交拉取请求时,许多文件都显示:100644 \xe2\x86\x92 100755。

\n\n

我已经尝试过如何从 Git 中的未暂存更改中删除显示“旧模式 100755 新模式 100644”的文件?,但仍然没有运气。

\n\n

我尝试从主分支下载 zip 文件并替换所有本地文件,但再次失败。

\n\n

有什么建议么?谢谢。

\n

git file-permissions github

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

为什么我的所有索引都在我的git项目中改变了

我正在使用GitLab作为我的项目存储库.
从过去几周开始,我没有投入我的项目,因此我只是编写了它.
现在,当我尝试提交我的项目时,它向我显示我的所有文件都进行了任何类型的更改.

所以我尝试git diff命令:这里我附上了我得到的结果的截图.它清楚地告诉我所有索引文件都已更改.

我曾尝试谷歌解决问题,但我失败了.
所以最后我在这里得到解决方案.我不想提交我的所有文件

在此输入图像描述

git

5
推荐指数
1
解决办法
67
查看次数

在 GITHUB 上将文件模式权限从 100755 更改为 100644

我在本地更改了某些文件的权限并将其推送到 GITHUB,而我的 gitconfig 中没有 config.FileMode 标志 = false。所以 GIT 推送了文件模式更改,但我想将这些文件模式更改从 100755 恢复到 100644。我使用 MAC osx 作为我的开发环境。我不想在我的存储库上使用 git reset --hard HEAD。有什么建议 ?

git file mode github git-config

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

Git问题与Vagrant中的共享文件夹有关

我在使用Vagrant之前从未见过这个问题,所以我希望这对某人有意义.我有一个包含git存储库的文件夹,它与运行CentOS 6.5的Vagrant机器同步,并看到与Git的一些不一致.

在我的主机(Mac OSX)上,如果我运行,git status我得到以下内容:

 ~/Folder/repo$ git status
 On branch master
 Your branch is up-to-date with 'origin/master'.
 nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

但如果我在我的流浪盒中运行相同的命令,我会得到以下内容:

vagrant@localhost ~/repo$ git status                                                                                                                 master
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   .codeclimate.yml
#   modified:   .gitattributes
#   modified:   .gitignore
#   modified:   CONTRIBUTING.md
#   modified:   app/commands/.gitkeep
# …
Run Code Online (Sandbox Code Playgroud)

virtualbox vagrant centos6

3
推荐指数
1
解决办法
1599
查看次数

从远程git仓库更新本地git repo force.(胖客户端部署)

更新:我认为这与windows git客户端msysgit的问题有关.很抱歉打扰你们.http://code.google.com/p/msysgit/issues/detail?id=379&colspec=ID%20Type%20Status%20Priority%20Component%20Owner%20Summary

我正在寻找一种方法来保持几个客户端盒与远程git仓库同步.从远程仓库强制更新并放弃客户端盒上可能已更改的任何内容.

我遇到的问题是客户端盒子会修改一些文件(安装日志等),当我需要从远程仓库更新它们时,会给我一个合并的噩梦.我已经尝试了几个命令来尝试重置他们的本地更改(本地更改应该被放弃),但似乎没有像广告中那样工作(git reset --hard).

我不想做克隆,然后删除这些框上的.git目录,因为我更喜欢它们只更新更改而不是每次都拉下整个仓库.

有任何想法吗?

git merge clone copy repository

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