出于某种原因,当我最初从存储库中获取我的git项目时,我在工作副本中获得了大量文件,这些文件没有对它们进行任何可识别的更改,但是仍然在我的unstaged changes区域中出现.
我在Windows XP上使用Git Gui,当我去查看文件时看看有什么变化.我只看到:
old mode 100755
new mode 100644
Run Code Online (Sandbox Code Playgroud)
有谁知道这意味着什么?
如何从我的未分级更改列表中获取这些文件?(非常讨厌必须通过100个文件,只是挑选我最近编辑过的文件并想要提交).
我的编辑器正在更改源文件的行结尾.当我这样做的时候git diff,我会看到两次相同的线 - 一次一次,-一次一次+- 没有明显的区别.
我该如何git diff告诉我实际上这个变化是什么?
我经常将bash脚本添加到我的git存储库中,并且脚本在之前的linux文件系统中具有可执行权限git add.但是,在将添加的文件推送到远程存储库并拉入另一个位置之后,这些文件将显示为具有非可执行权限.似乎有两种方法可以解决问题:
1. chmod u+x $script
git commit -am "fixing the script permissions... again..."
Run Code Online (Sandbox Code Playgroud)
要么
2. git update-index --chmod=+x $script
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以让git简单地查看脚本上的文件权限git add,并认识到"嘿,这是一个可执行文件!" 并直接使用exectuable权限将其添加到存储库?
我刚刚安装了最新的Git(1.9.5),突然它告诉我我的工作树不干净(更改没有上演),但我看不到任何差异工具中任何文件的任何变化(我尝试过Tortoise和Visual Studio的内置功能).当我运行git status时,它说:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: inc/i_lab_orders.asp
modified: lab_order_list.asp
modified: slib/lab_order_lib.asp
Run Code Online (Sandbox Code Playgroud)
但是,Git GUI的diff工具告诉我所有的行都被改变了,但是我找不到任何区别.与git bash的差异相同.
运行git reset --hard根本没有帮助 - 命令执行没有任何问题,但最后我仍然有相同的"已更改"文件.
更新:core.autocrlf为false,core.fileMode也为false.我还注意到,报告要更改的文件正是在上次提交时提交的文件.
我在Windows上.
更新:我认为这与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 ×5
clone ×1
copy ×1
diff ×1
executable ×1
git-diff ×1
git-gui ×1
line-endings ×1
merge ×1
repository ×1
tortoisegit ×1