在msysgit中切换分支时恢复只读状态

时间:2011-09-06 11:21:42

标签: git branch perforce msysgit

我想使用git分支将我的本地更改与团队的头部代码分开,该代码存储在Perforce存储库中。

Perforce在未更改的文件上使用只读标志,如果未设置只读标志,则不会更新已修改的文件,认为我可能已更改它们而不将它们放入更改列表。

我想将所有内容保持为只读主分支并修改其他分支上的文件。在签出master分支时,是否可以使msysgit恢复恢复文件的只读标志,以便p4可以同步所有内容?

1 个答案:

答案 0 :(得分:3)

您可以使用bash脚本编写git post-checkout hook来设置只读标志...

有些事情:

# (flag==1?) && (HEAD == master) ?
if [ $3 == 1 ] && [ `git symbolic-ref -q HEAD` == "refs/heads/master" ]
then
    # make everything in the given directory (recursively) read-only:
    chmod -w [ path_to_repo | . ]/* -R
fi

看起来./*跳过.git文件夹(隐藏文件/文件夹一般?),但你应该检查一下以确定。您可能还想使用git仓库的完整路径,而不仅仅是./*,这样您所在的目录/子目录无关紧要......