Git - 当filemode为false时,创建新文件并提交所有文件模式644

时间:2017-08-07 06:14:36

标签: git

我在git中将filemode设置为'false'。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:background="@color/accent"
        android:layout_height="70dp"/>

    <FrameLayout
        android:id="@+id/MainContainer"
        android:layout_below="@id/toolbar"
        android:layout_width="match_parent"
        android:background="@color/colorPrimary"
        android:layout_height="match_parent"
        android:layout_marginBottom="50dp"/>

    <com.roughike.bottombar.BottomBar
        android:layout_alignParentBottom="true"
        android:id="@+id/bottombar"
        android:layout_below="@id/MainContainer"
        android:layout_width="match_parent"
        android:background="@color/black"
        android:layout_height="50dp"/>


</RelativeLayout>

我制作了文件并提交了它。所有创建的文件模式都是644。

我想提交755 filemode,而filemode config设置为false。

帮帮我。 谢谢

2 个答案:

答案 0 :(得分:2)

Git不跟踪单个文件模式。 Git唯一能做的就是跟踪文件是否设置了可执行标志。因此,Git只会存储两种可能的文件模式之一:644或755,后者意味着可执行标志已设置。

core.fileMode设置基本上可以控制此行为。如果通过将其设置为false来禁用它,则实际上是在告诉Git不再检查可执行位,因此默认情况下所有文件都将被提交为不可执行(因此所有文件都是644)。

引用documentation on core.fileMode

  

<强> core.fileMode

     

告诉Git是否要遵守工作树中文件的可执行位。

因此,禁用此功能对您无效。但是,我不相信默认情况下可以告诉Git将所有文件提交为可执行文件。您必须单独设置可执行位。

答案 1 :(得分:0)

另见core.sharedRepository

  

存储库可以在组中的多个用户之间共享(确保所有文件和对象都是可写组的)

  • group(linux文件中的每个人都拥有此文件),
  • all(世界,每个人),
  • umask(文件内容为默认),
  • 0xxx已知的完整chmod八进制数。

这似乎很好地代表了linux访问文件模式。