Shourya Shukla <shouryashukla.oo@xxxxxxxxx> writes: > - echo "120000 $l symlink" | > - git update-index --index-info && > + echo "120000 $l symlink" >foo && > + git update-index --index-info <foo && If we had "git" on the left-hand-side (i.e. upstream) of a pipe, it would make sense to split the pipeline like this, but this (and the other one this patch touches) is on the right side, whose exit status is not lost. And we are not in the business of preparing for broken implementation of "echo". So this rewrite is unnecessary and unwarranted. By the way, I think the pipeline echo ... | git update-index --index-info && should be written on a single line in the previous step 1/3. > git commit -m master && > git checkout b-symlink && > l=$(printf file-different | git hash-object -t blob -w --stdin) && > - echo "120000 $l symlink" | > - git update-index --index-info && > + echo "120000 $l symlink" >foo && > + git update-index --index-info <foo && > git commit -m b-symlink && > git checkout b-file && > echo plain-file >symlink &&