macOS 12.5에서 Linux 소스 코드 베이스가 자동으로 수정되는 이유는 무엇입니까?

macOS 12.5에서 Linux 소스 코드 베이스가 자동으로 수정되는 이유는 무엇입니까?

이 명령을 사용하여 macOS 12.5에서 Linux 저장소를 복제하고 있습니다.

git clone https://github.com/torvalds/linux.git

그러나 git status를 사용하여 저장소 정보를 표시하면 저장소에 일부 수정된 파일이 있습니다.

➜  linux git:(master) ✗ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   include/uapi/linux/netfilter/xt_CONNMARK.h
    modified:   include/uapi/linux/netfilter/xt_DSCP.h
    modified:   include/uapi/linux/netfilter/xt_MARK.h
    modified:   include/uapi/linux/netfilter/xt_RATEEST.h
    modified:   include/uapi/linux/netfilter/xt_TCPMSS.h
    modified:   include/uapi/linux/netfilter_ipv4/ipt_ECN.h
    modified:   include/uapi/linux/netfilter_ipv4/ipt_TTL.h
    modified:   include/uapi/linux/netfilter_ipv6/ip6t_HL.h
    modified:   net/netfilter/xt_DSCP.c
    modified:   net/netfilter/xt_HL.c
    modified:   net/netfilter/xt_RATEEST.c
    modified:   net/netfilter/xt_TCPMSS.c
    modified:   tools/memory-model/litmus-tests/Z6.0+pooncelock+poonceLock+pombonce.litmus

no changes added to commit (use "git add" and/or "git commit -a")

이 저장소의 파일을 수정하지 않았습니다. git status에 수정된 파일이 표시되는 이유는 무엇입니까? 이것은 git diff가 보여주는 것의 일부입니다:

diff --git a/include/uapi/linux/netfilter/xt_CONNMARK.h b/include/uapi/linux/netfilter/xt_CONNMARK.h
index 36cc956ead1a..41b578ccd03b 100644
--- a/include/uapi/linux/netfilter/xt_CONNMARK.h
+++ b/include/uapi/linux/netfilter/xt_CONNMARK.h
@@ -1,7 +1,37 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _XT_CONNMARK_H_target
-#define _XT_CONNMARK_H_target
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
+ * by Henrik Nordstrom <[email protected]>
+ */

-#include <linux/netfilter/xt_connmark.h>
+#ifndef _XT_CONNMARK_H
+#define _XT_CONNMARK_H

-#endif /*_XT_CONNMARK_H_target*/
+#include <linux/types.h>
+
+enum {
+       XT_CONNMARK_SET = 0,
+       XT_CONNMARK_SAVE,
+       XT_CONNMARK_RESTORE
:
diff --git a/include/uapi/linux/netfilter/xt_CONNMARK.h b/include/uapi/linux/netfilter/xt_CONNMARK.h
index 36cc956ead1a..41b578ccd03b 100644
--- a/include/uapi/linux/netfilter/xt_CONNMARK.h
+++ b/include/uapi/linux/netfilter/xt_CONNMARK.h
@@ -1,7 +1,37 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _XT_CONNMARK_H_target
-#define _XT_CONNMARK_H_target
+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
+/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
+ * by Henrik Nordstrom <[email protected]>

이 명령을 사용하면 다음과 같은 오류가 표시됩니다.

➜  linux git:(master) ✗ git checkout . --
fatal: invalid reference: .

답변1

개인적인 경험을 통해 답을 찾았습니다! 문제는 대소문자를 구분하지 않는 파일 시스템에서는 저장소를 체크아웃할 수 없다는 것입니다. 별도의 대소문자 구분 파티션을 생성하거나 Docker 컨테이너 내에 생성할 수 있습니다.

원천:https://groups.google.com/g/git-users/c/FwG2UefGmeo

관련 정보