How to find all the commits made on a branch?

Hi, I have a GIT project with more than 2000 branches and more than 2000 commits.

There are a branch called "1595", I don't know who made it, when was merged, or wich files are affected, so, I am looking for any way to "search" all the commits made on this branch, and then find all the files affected by their commits.

There are any way to do it using Sourcetree or Bitbucket?

3 answers

1 accepted

Git doesn't track information like that. A branch is just a named reference to a commit, and if you commit to a branch, it moves that reference.

What you can do is see all of the commits that are ancestors of that branch, but many of those will have been committed to other branches that either pre-dated your "1595", or were merged into it.

To do that in SourceTree, checkout that branch. In the log view, use the dropdown at the top to view "current branch". If you merge frequently, you may be able to use merge commit descriptions to get a rough idea of what branch sections of older commits belong to.

There may be a better way to do this using a git command line, but this isn't the best forum for those questions.

Thank you for your help, I always imagined a branch like a "group" of commits, now I understand it better, selecting "current branch" on the dropdown was a great way to find what I need.

I vaguely remember a blog post about a post-commit script that would automatically add a git-note containing the name of the current branch whenever the author made a commit. Something like that might be useful to you in the future.

Not quite sure if the folowing can give you the searched info - it has even to be done on command line ... wink

That's awesome, I don't like use command line, It would be useful if sourceTree show us more options like this.

git has way to many commands and options to be exposed in a  GUI in a meaningful and clear way.

Those things are mostly for expert level and not for the "normal" user - for whom the most git-GUIS are designed for

I'm not quite sure if this would be absolutely robust for anybody, I use the following way:

  1. Checkout to the branch that has at least one commit
  2. git rev-list --simplify-by-decoration -2 HEAD
    this gives me just two SHAs: 1) last commit of the branch [C1] 2) and commit parent to the first commit of the branch [C2]
  3. git log --decorate --pretty=oneline --reverse --name-status <C2>..<C1>
    Now I get a list of full history of file changing within the branch

Suggest an answer

Log in or Join to answer
Community showcase
Piotr Plewa
Published Dec 27, 2017 in Bitbucket

Recipe: Deploying AWS Lambda functions with Bitbucket Pipelines

Bitbucket Pipelines helps me manage and automate a number of serverless deployments to AWS Lambda and this is how I do it. I'm building Node.js Lambda functions using node-lambda&nbsp...

710 views 0 4
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot