git: ฉันจะตั้งค่า git อย่างไรเพื่อเพิกเฉยต่อการเปลี่ยนแปลงการอนุญาตของไฟล์


21

ฉันมีโครงการคอมไพล์ในเซิร์ฟเวอร์ linux

ฉันใช้ Mac และ linux เพื่อเขียนโปรแกรมของฉัน ปัญหาคือว่าสิทธิ์ของระบบแฟ้มแม็คไม่ได้ทำงานได้ดีจริงๆเหมือนในลินุกซ์เพื่อให้ไฟล์ทั้งหมดที่ดูเหมือนว่าจะ umask 0755. ดังนั้นเมื่อใดก็ตามที่ฉันดึงรหัสของฉันบน Mac ของฉันgit statusแสดงให้เห็นว่าไฟล์ของฉันทั้งหมดที่มีการเปลี่ยนแปลงและเมื่อฉันใช้git diffมัน แสดงให้เห็นว่าการเปลี่ยนแปลงเพียงอย่างเดียวอยู่ใน umask ฉันจะบอกคอมไพล์ไม่ให้จัดเก็บและตรวจสอบการเปลี่ยนแปลง umask ได้อย่างไร?

ขอบคุณ!


1
ฉันค่อนข้างแน่ใจว่า OS X รองรับสิทธิ์แบบ Unix ...
grawity

1
umask และการอนุญาตไม่ใช่สิ่งเดียวกัน คุณแน่ใจหรือว่าคุณรู้ว่าคุณกำลังทำอะไรที่นี่จริง ๆ ?
Marnen Laibow-Koser

คำตอบ:


28

ตั้งค่าการกำหนดค่าคุณสมบัติการcore.fileMode falseคุณสามารถทำได้อย่างง่ายดายด้วยคำสั่งนี้:

git config core.fileMode false

นี่เป็นการตั้งค่าต่อที่เก็บหรือเป็นไปได้ไหมที่จะทำให้มันใช้งานได้ทั่วโลก?
สุดยอด

2
@acme: เช่นเดียวกับการตั้งค่า git ทั้งหมดคุณสามารถตั้งค่าต่อที่เก็บต่อผู้ใช้หรือทั้งระบบโดยผ่านไม่มีสวิตช์พิเศษ--globalหรือ--systemตามลำดับ ดูgit help configรายละเอียดที่
แพทช์

ขอบคุณ! แต่การตั้งค่าแบบโกลบอลไม่ได้เพิ่มการตั้งค่านี้ไปยังที่เก็บใหม่โดยอัตโนมัติ แต่เป็นเพียงการตั้งค่าในเครื่องของฉัน
acme

@acme: ใช่ตั้งค่าตัวเลือกที่มี--globalผลต่อการดำเนินการทั้งหมดในที่เก็บใด ๆ ที่เข้าถึงด้วยบัญชีผู้ใช้ของคุณภายใน ไม่ส่งผลกระทบต่อคนอื่น ในการตั้งค่าสำหรับผู้ใช้ทุกคนของพื้นที่เก็บข้อมูลหนึ่งคุณจะต้องสลับการตั้งค่าต่อพื้นที่เก็บข้อมูลบนเซิร์ฟเวอร์ที่ทุกคนผลักดันให้
แพทช์

1

ฉันมีเชลล์สคริปต์ขนาดเล็กเพื่อสลับนี้

cat ~ / bin / git-ละเว้น-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

ด้วยสิ่งนี้ฉันสามารถสลับคอมไพล์ตรวจสอบการเปลี่ยนแปลงอื่น ๆ แล้วกลับมาใช้ใหม่ได้อย่างรวดเร็ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.