# Getting a list of last commit's files and piping them..

3 messages from 2009-09-28 to 2009-09-28. Participants: Ahmed Nuaman, Freelance Designer and Developer, Johannes Schindelin, Christian Himpel.
Thread: https://gitlist.dev/t/21080

## Ahmed Nuaman, Freelance Designer and Developer, 2009-09-28 13:02

Subject: Getting a list of last commit's files and piping them..
Message-ID: <4f302eef91c72cd4583e0aa4707ab4c0@ahmednuaman.com>
URL: https://gitlist.dev/e/4f302eef91c72cd4583e0aa4707ab4c0%40ahmednuaman.com

```
Hey,

I use git for a local versioning system and was wondering if there was a
way that I could write a bash script that would get the paths of the files
from the latest commit and then pipe them to ftp or ssh for deployment.

-- 


All the best,

Ahmed Nuaman
Freelance Designer and Developer
+44 (0) 7811 184 436
ahmed@ahmednuaman.com
www.ahmednuaman.com

```

## Johannes Schindelin, 2009-09-28 14:01

Subject: Re: Getting a list of last commit's files and piping them..
Message-ID: <alpine.DEB.1.00.0909281559001.16710@intel-tinevez-2-302>
URL: https://gitlist.dev/e/alpine.DEB.1.00.0909281559001.16710%40intel-tinevez-2-302
In-Reply-To: <4f302eef91c72cd4583e0aa4707ab4c0@ahmednuaman.com>

```
Hi,

On Mon, 28 Sep 2009, Ahmed Nuaman, Freelance Designer and Developer wrote:

> I use git for a local versioning system and was wondering if there was a 
> way that I could write a bash script that would get the paths of the 
> files from the latest commit and then pipe them to ftp or ssh for 
> deployment.

If you mean all the files that were touched by the last commit:

	git diff --name-only HEAD^..

If you mean all the files of the latest revision:

	git ls-tree --name-only -r HEAD

Both commands take -z options in which case they delimit the names with 
NULs for better parsability.

Hth,
Dscho

```

## Christian Himpel, 2009-09-28 14:13

Subject: Re: Getting a list of last commit's files and piping them..
Message-ID: <20090928141312.GA4564@mrslave>
URL: https://gitlist.dev/e/20090928141312.GA4564%40mrslave
In-Reply-To: <4f302eef91c72cd4583e0aa4707ab4c0@ahmednuaman.com>

```
On Mon, Sep 28, 2009 at 02:02:52PM +0100, Ahmed Nuaman, Freelance Designer and Developer wrote:
> I use git for a local versioning system and was wondering if there was a
> way that I could write a bash script that would get the paths of the files
> from the latest commit and then pipe them to ftp or ssh for deployment.

For example, to scp a complete file list from branch `topic' to
`user@server', you could use `rsync' and do something like:

git checkout topic &&
git ls-tree -r --name-only |
rsync -a -e ssh --files-from=- user@server:/path/to/dest

Note, that this is completely untested.  Use at your own risk.


Regards,
chressie

```
