mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
Merge branch 'pb/commit-where'
* pb/commit-where: tutorial: update output of git commit reformat informational commit message git commit: Reformat output somewhat builtin-commit.c: show on which branch a commit was added
This commit is contained in:
commit
f4a75a416f
|
@ -32,22 +32,27 @@ Initialized empty Git repository in .git/
|
|||
$ echo 'hello world' > file.txt
|
||||
$ git add .
|
||||
$ git commit -a -m "initial commit"
|
||||
Created initial commit 54196cc2703dc165cbd373a65a4dcf22d50ae7f7
|
||||
[master (root-commit)] created 54196cc: "initial commit"
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
create mode 100644 file.txt
|
||||
$ echo 'hello world!' >file.txt
|
||||
$ git commit -a -m "add emphasis"
|
||||
Created commit c4d59f390b9cfd4318117afde11d601c1085f241
|
||||
[master] created c4d59f3: "add emphasis"
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
------------------------------------------------
|
||||
|
||||
What are the 40 digits of hex that git responded to the commit with?
|
||||
What are the 7 digits of hex that git responded to the commit with?
|
||||
|
||||
We saw in part one of the tutorial that commits have names like this.
|
||||
It turns out that every object in the git history is stored under
|
||||
such a 40-digit hex name. That name is the SHA1 hash of the object's
|
||||
a 40-digit hex name. That name is the SHA1 hash of the object's
|
||||
contents; among other things, this ensures that git will never store
|
||||
the same data twice (since identical data is given an identical SHA1
|
||||
name), and that the contents of a git object will never change (since
|
||||
that would change the object's name as well).
|
||||
that would change the object's name as well). The 7 char hex strings
|
||||
here are simply the abbreviation of such 40 character long strings.
|
||||
Abbreviations can be used everywhere where the 40 character strings
|
||||
can be used, so long as they are unambiguous.
|
||||
|
||||
It is expected that the content of the commit object you created while
|
||||
following the example above generates a different SHA1 hash than
|
||||
|
|
|
@ -879,6 +879,9 @@ static void print_summary(const char *prefix, const unsigned char *sha1)
|
|||
{
|
||||
struct rev_info rev;
|
||||
struct commit *commit;
|
||||
static const char *format = "format:%h: \"%s\"";
|
||||
unsigned char junk_sha1[20];
|
||||
const char *head = resolve_ref("HEAD", junk_sha1, 0, NULL);
|
||||
|
||||
commit = lookup_commit(sha1);
|
||||
if (!commit)
|
||||
|
@ -896,18 +899,24 @@ static void print_summary(const char *prefix, const unsigned char *sha1)
|
|||
|
||||
rev.verbose_header = 1;
|
||||
rev.show_root_diff = 1;
|
||||
get_commit_format("format:%h: %s", &rev);
|
||||
get_commit_format(format, &rev);
|
||||
rev.always_show_header = 0;
|
||||
rev.diffopt.detect_rename = 1;
|
||||
rev.diffopt.rename_limit = 100;
|
||||
rev.diffopt.break_opt = 0;
|
||||
diff_setup_done(&rev.diffopt);
|
||||
|
||||
printf("Created %scommit ", initial_commit ? "initial " : "");
|
||||
printf("[%s%s]: created ",
|
||||
!prefixcmp(head, "refs/heads/") ?
|
||||
head + 11 :
|
||||
!strcmp(head, "HEAD") ?
|
||||
"detached HEAD" :
|
||||
head,
|
||||
initial_commit ? " (root-commit)" : "");
|
||||
|
||||
if (!log_tree_commit(&rev, commit)) {
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
format_commit_message(commit, "%h: %s", &buf, DATE_NORMAL);
|
||||
format_commit_message(commit, format + 7, &buf, DATE_NORMAL);
|
||||
printf("%s\n", buf.buf);
|
||||
strbuf_release(&buf);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue