File: modifying_annexed_files.mdwn

package info (click to toggle)
git-annex 10.20250416-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 73,572 kB
  • sloc: haskell: 90,656; javascript: 9,103; sh: 1,469; makefile: 211; perl: 137; ansic: 44
file content (31 lines) | stat: -rw-r--r-- 1,188 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Normally, the content of files in the annex is prevented from being modified.

That's a good thing, because it might be the only copy, you wouldn't
want to lose it in a fumblefingered mistake.

	$ echo oops > my_cool_big_file
	bash: my_cool_big_file: Permission denied

In order to modify a file, it should first be unlocked.

	$ git annex unlock my_cool_big_file
	unlock my_cool_big_file (copying...) ok

That replaces the symlink that normally points at its content with a copy
of the content. You can then modify the file like any regular file. Because
it is a regular file.

(If you decide you don't need to modify the file after all, or want to discard
modifications, just use `git annex lock`.)

When you commit an unlocked file, all that gets committed to git is a
pointer to the content. The content of the file is stored by git-annex.

	$ echo "now smaller, but even cooler" > my_cool_big_file
	$ git commit my_cool_big_file -m "changed an annexed file"
	add my_cool_big_file ok
	[master 64cda67] changed an annexed file
	 1 files changed, 1 insertions(+), 1 deletions(-)

For more details on working with unlocked files vs the regular locked
files, see [[tips/unlocked_files]].