从命令行看到以下内容后:
# On branch RB_3.0.10
# 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: index.htm
Run Code Online (Sandbox Code Playgroud)
我试图通过键入命令来放弃我的更改:
git checkout -- index.htm
Run Code Online (Sandbox Code Playgroud)
但是当我重新运行git status时,它看起来完全一样.结帐似乎不起作用.难道我做错了什么?我在windows/cygwin上使用GIT 1.6.1.2.
# On branch RB_3.0.10
# 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: …Run Code Online (Sandbox Code Playgroud) 我们的工作流程是在本地计算机上开发,将更改提交到中央存储库,然后检查我们需要的存储库的分支.
问题是Git会更改其签出的文件的所有权甚至文件权限,具体取决于进行结帐的用户.这样做的直接结果是我们的CSS文件在结账后变得不可读,因为Git将文件所有权更改为在webroot中执行Git pull的人.
例:
git pull:style.css拥有user_a:group_agit pull:style.css拥有user_b:user_b我想保持所有权user_a:group_a.每当我的团队中的一个人对文件进行更改并将所有权更改回原始配置时,我都不希望必须登录.
别人怎么处理这个?您如何处理多个用户使用的存储库.我们的系统上有suphp,无法将其取下.
我正在使用git来管理服务器上的网站.
我有一个本地存储库,如下所示
local@workstation:myapp$ ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 16
755 drwxr-xr-x@ 18 thomas staff 612 Jun 13 15:35 application
755 drwxr-xr-x@ 11 thomas staff 374 Jun 12 16:25 assets
644 -rw-r--r--@ 1 thomas staff 6399 Jun 22 11:45 index.php
755 drwxr-xr-x@ 10 thomas staff 340 May 14 15:22 system
Run Code Online (Sandbox Code Playgroud)
我在服务器上有一个裸存储库,用于post-receive将存储库指向apache前面.Apache的public文件夹内容低于 - 不是裸存储库.
root@server:/srv/public/myapp# ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 20
700 drwx------ 15 root root 4096 Jun 27 11:31 application
700 drwx------ 10 …Run Code Online (Sandbox Code Playgroud) 我有一个 SSH 配置文件已签入存储库,该存储库由运行自动化测试的系统克隆。我正在运行 Linux(我的目标机器也是如此),并且我不小心检查了文件的第一个版本,其权限字段为 664。OpenSSH 由于组写入权限而拒绝配置文件。
我需要将文件权限位更改为 644 并提交该更改,但 Git 无法识别该文件已更改。
如何更新存储库中的文件写入权限?
根据这个线程,Git 只会识别执行位的变化。我测试了更改执行位,并且 git确实识别了该更改并允许我提交它。但我不想设置执行权限位。
这个问题建议使用git-cache-meta来存储除执行位之外的权限位,但看起来该解决方案需要修改存储存储库的远程服务器,而我无法控制该服务器。
我已经咨询了以下SO问题,但它们没有帮助:
How to Force Git to commit a file if it is recognizes as unchanged
Updating file requests only in git
还有多个关于让 Git忽略权限位更改的问题,但答案几乎都围绕 filemode 配置选项,这在这里没有帮助。