On Wed, 22 Jun 2005, Jeff Garzik wrote:
>
> 2) download a linux kernel tree for the very first time
>
> $ mkdir -p linux-2.6/.git
> $ cd linux-2.6
> $ rsync -a --delete --verbose --stats --progress \
> rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/
> \ <- word-wrapped backslash; sigh
> .git/
Gaah. I should do a "git-clone-script" or something that does this, and
then you could just do
git clone rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6
Anybody?
> # make some modifications
> $ patch -sp1 < /tmp/my.patch
> $ diffstat -p1 < /tmp/my.patch
>
> # NOTE: add '--add' and/or '--remove' if files were added or removed
> $ git-update-cache <list of all files changed>
>
> # check in changes
> $ git commit
A few notes on these things:
git-apply --index /tmp/my.patch
will not only apply the patch (unified patches only!), but will do the
index updates for you while it's at it, so if the patch contains new files
(or it deletes files), you don't need to worry about it.
Also, you can do
git commit <list-of-files-to-commit>
as a shorthand for
git-update-cache <list-of-files-to-commit>
git commit
which some people will probably find more natural.
> 6) List all changes in working dir, in diff format.
>
> $ git-diff-cache -p HEAD
Or, perhaps preferably:
git diff HEAD
since that is shorter ad will also show renames.
> 8) List all changesets:
>
> $ git-whatchanged
No, if you just want the changesets listed, then
git log
is a lot better, since it shows merges.
"git-whatchanged" is useful if you actually want to see what the commits
_changed_, and then you often want to use the "-p" flag to see it as
patches. Also, it's worth pointing out the fact that you can limit it to
certain subdirectories (or individual files) etc, ie:
git-whatchanged -p drivers/net
since that is often what people want.
But if you just want the log, "git log" is faster and simpler and more
correct.
> 16) obtain a diff between current branch, and master branch
>
> In most trees WITH BRANCHES, .git/refs/heads/master contains the current
> 'vanilla' upstream tree, for easy diffing and merging. (in trees
> without branches, 'master' simply contains your latest changes)
>
> $ git-diff-tree -p master HEAD
Again, I think is possibly more naturally expressed with "git diff":
git diff master..HEAD
which just says "show the differences from 'master' to 'HEAD'" and will
also show renames etc.
(A plain "git diff" will show just the difference to the index file, in
case you care).
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]