Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I make git accept mode changes without accepting all text changes?

Tags:

git

chmod

I've got the opposite problem from "How do I make Git ignore file mode (chmod) changes?" I've got a file that I've changed executable permission on, but there are also some text changes, and I want to commit the former but not the latter. Is this possible with git?

(Actually, I've made some text changes I want to commit along with the executable permission change, and others I don't want to commit)

Update: Unstaging the text changes to the file, and then doing git add -p again and incorporating some of the text changes managed to get the mode change into staging. (My git version is 1.5.4.3)

like image 249
Andrew Grimm Avatar asked Oct 23 '09 03:10

Andrew Grimm


People also ask

How do I make git ignore file mode chmod changes?

If you set core. filemode=false then git will ignore execute bit changes, no need to change local permissions.


2 Answers

You should be able to do:

git update-index --chmod=(+|-)x <file> 

to adjust the executable bit stored in the index.

You can then commit this separately from any changes to the files content.

like image 109
CB Bailey Avatar answered Sep 23 '22 04:09

CB Bailey


git add -i will let you selectively add some hunks from a file to the index. I don't know whether or not it's sensitive to permissions, but if you were to add a hunk after the chmod operation, it might end up in the index correctly even without explicitly updating the permission.

like image 23
Bob Aman Avatar answered Sep 25 '22 04:09

Bob Aman