For example, let's say you have a commit graph like the following. That is, the following is the output of git log --graph --all --pretty=format:"%C(auto)%h %ad%d %s" --date=short
:
* 87b5f13 2017-02-26 (HEAD -> master) Put received locations into a queue
* 625118a 2017-02-21 Disable output buffering on non-interactive run
* 3be0b85 2017-02-21 Send averaged latitude and longitude to client
* 1b8bd08 2017-02-20 Require verbose mention of dev or prod
* a1d9ba0 2017-02-20 Ignore nohup.out
* 2797ac1 2017-02-20 Customize script/runserver for dev and prod
* 0a8110f 2017-02-20 Check for the accuracy of received location
* 5a21cd2 2017-02-15 Send follow response to followee, not to follower
* 3c6b42c 2017-02-11 Hold follow information in database, not in memory
* 0c446b3 2017-02-11 Populate the data base after reset
* 016d5e8 2017-02-10 Check follow request for already following user
* 22726e5 2017-02-10 Create follow response handler
* bc97857 2017-02-09 Specify command while sending location update
* f3c086b 2017-02-09 Add a token to follow request sent to follower
* 4f117b7 2017-02-08 Send follow request to user
* 7ec94b5 2017-02-06 Parse JSON according to Python 3.6 JSON module
* d7466d3 2017-02-06 Print stack trace after exceptions
* de96fbd 2017-02-06 Get the project working with Python 3.5.2
* 7243b0a 2017-02-05 Add name field to PinnedLocation
* 13169d4 2017-02-05 Pin locations and load pinned locations
* c7b91dd 2017-02-04 Get location pinning working
* d5cfbd9 2017-02-04 Add ability to pin a location
* 273eac2 2017-02-01 Send session id upon WebSocket connection
| * cba87f8 2017-01-31 (consumer_class) Try a WebSocket consumer
|/
* 9d257f0 2017-01-31 Remove HTTP session upon WebSocket connection
* 93bbdae 2017-01-31 Remove debugging lines
* c7a0cf5 2017-01-31 Fix the error that causes account_id to be NULL
* d754832 2017-01-29 Add missing import
* 6836532 2017-01-29 Extend built in session engine
* 753eb7b 2017-01-29 Prevent a user from following himself
* 17244cc 2017-01-29 Implement follow user
* c7cc8dd 2017-01-29 Remove HTTP session as well upon disconnection
* b500cc3 2017-01-23 Update Django Channels version
* de8f277 2017-01-23 Add stunnel to prerequisites
* 3c9a77d 2017-01-23 Remove Channels user from table upon logout
* c03a069 2017-01-20 Revert "Create configuration files"
* 2c7e2d3 2017-01-17 Change directory name for configuration scripts
* 75e29c6 2017-01-16 Create configuration files
* a88878c 2017-01-15 Add the back end machine to the list of allowed hosts
* 4ed2dd6 2017-01-14 Specify prerequisites for the project
* 7ae29df 2017-01-14 Don't run server automatically after setting up
* 221651f 2017-01-14 Add asgi-redis to pip requirements
* ca4ae43 2017-01-14 Put scripts in their own directory
* 586e204 2017-01-14 Automate updating 'requirements.txt'
* c4a129b 2017-01-08 Seperate sign in and sign up.
* 36b8479 2017-01-08 Add error messages in the responses for sign in and sign up views
* 7bad977 2017-01-08 Create sign up view
* 5d3c25f 2017-01-07 Add instructions to install and start Redis
* 6d60bf8 2017-01-07 Add instructions to set up the project
* 56a5dde 2017-01-07 Fix runserver.sh so that ^C will terminate the stunnel process
* ac7fd9d 2017-01-07 Enable SSL
* 2651183 2017-01-05 Add user ID to the data sent to client
* 47d8be4 2017-01-04 Receive locations from client
* 43bde0c 2017-01-04 Set up models and consumers
* 02e7371 2017-01-02 Get logging in working and establish WebSocket connection
* 5bb677b 2017-01-02 Initialize consumers
* a85a9f9 2017-01-01 Add channel routing
* 3c925bb 2017-01-01 Add login view
* e507b1e 2017-01-01 Configure 'settings.py' for a Channels project
* f2f5bab 2017-01-01 Initialize the Django app
* ee645d0 2017-01-01 Initialize the venv and Django project
We would like to add a couple dummy commits to the consumer_class
branch, so that it will have more than one commits that are different from the master
branch:
git checkout consumer_class
touch dummy.txt
git add dummy.txt
git commit -m "Add a commit" --date="2017-02-01"
git rm dummy.txt
git commit -m "Add another commit" --date="2017-02-02"
Now, when we run git log --graph --all --pretty=format:"%C(auto)%h %ad%d %s" --date=short
again, the following is the output:
* f46d89f 2017-02-02 (HEAD -> consumer_class) Add another commit
* 052a341 2017-02-01 Add a commit
* cba87f8 2017-01-31 Try a WebSocket consumer
| * 87b5f13 2017-02-26 (master) Put received locations into a queue
| * 625118a 2017-02-21 Disable output buffering on non-interactive run
| * 3be0b85 2017-02-21 Send averaged latitude and longitude to client
| * 1b8bd08 2017-02-20 Require verbose mention of dev or prod
| * a1d9ba0 2017-02-20 Ignore nohup.out
| * 2797ac1 2017-02-20 Customize script/runserver for dev and prod
| * 0a8110f 2017-02-20 Check for the accuracy of received location
| * 5a21cd2 2017-02-15 Send follow response to followee, not to follower
| * 3c6b42c 2017-02-11 Hold follow information in database, not in memory
| * 0c446b3 2017-02-11 Populate the data base after reset
| * 016d5e8 2017-02-10 Check follow request for already following user
| * 22726e5 2017-02-10 Create follow response handler
| * bc97857 2017-02-09 Specify command while sending location update
| * f3c086b 2017-02-09 Add a token to follow request sent to follower
| * 4f117b7 2017-02-08 Send follow request to user
| * 7ec94b5 2017-02-06 Parse JSON according to Python 3.6 JSON module
| * d7466d3 2017-02-06 Print stack trace after exceptions
| * de96fbd 2017-02-06 Get the project working with Python 3.5.2
| * 7243b0a 2017-02-05 Add name field to PinnedLocation
| * 13169d4 2017-02-05 Pin locations and load pinned locations
| * c7b91dd 2017-02-04 Get location pinning working
| * d5cfbd9 2017-02-04 Add ability to pin a location
| * 273eac2 2017-02-01 Send session id upon WebSocket connection
|/
* 9d257f0 2017-01-31 Remove HTTP session upon WebSocket connection
* 93bbdae 2017-01-31 Remove debugging lines
* c7a0cf5 2017-01-31 Fix the error that causes account_id to be NULL
* d754832 2017-01-29 Add missing import
* 6836532 2017-01-29 Extend built in session engine
* 753eb7b 2017-01-29 Prevent a user from following himself
* 17244cc 2017-01-29 Implement follow user
* c7cc8dd 2017-01-29 Remove HTTP session as well upon disconnection
* b500cc3 2017-01-23 Update Django Channels version
* de8f277 2017-01-23 Add stunnel to prerequisites
* 3c9a77d 2017-01-23 Remove Channels user from table upon logout
* c03a069 2017-01-20 Revert "Create configuration files"
* 2c7e2d3 2017-01-17 Change directory name for configuration scripts
* 75e29c6 2017-01-16 Create configuration files
* a88878c 2017-01-15 Add the back end machine to the list of allowed hosts
* 4ed2dd6 2017-01-14 Specify prerequisites for the project
* 7ae29df 2017-01-14 Don't run server automatically after setting up
* 221651f 2017-01-14 Add asgi-redis to pip requirements
* ca4ae43 2017-01-14 Put scripts in their own directory
* 586e204 2017-01-14 Automate updating 'requirements.txt'
* c4a129b 2017-01-08 Seperate sign in and sign up.
* 36b8479 2017-01-08 Add error messages in the responses for sign in and sign up views
* 7bad977 2017-01-08 Create sign up view
* 5d3c25f 2017-01-07 Add instructions to install and start Redis
* 6d60bf8 2017-01-07 Add instructions to set up the project
* 56a5dde 2017-01-07 Fix runserver.sh so that ^C will terminate the stunnel process
* ac7fd9d 2017-01-07 Enable SSL
* 2651183 2017-01-05 Add user ID to the data sent to client
* 47d8be4 2017-01-04 Receive locations from client
* 43bde0c 2017-01-04 Set up models and consumers
* 02e7371 2017-01-02 Get logging in working and establish WebSocket connection
* 5bb677b 2017-01-02 Initialize consumers
* a85a9f9 2017-01-01 Add channel routing
* 3c925bb 2017-01-01 Add login view
* e507b1e 2017-01-01 Configure 'settings.py' for a Channels project
* f2f5bab 2017-01-01 Initialize the Django app
* ee645d0 2017-01-01 Initialize the venv and Django project
For some reason, git-log
started to list the consumer_class
branch first in order, instead of the master
branch. That is, instead of the following output:
* 87b5f13 2017-02-26 (HEAD -> master) Put received locations into a queue
* 625118a 2017-02-21 Disable output buffering on non-interactive run
* 3be0b85 2017-02-21 Send averaged latitude and longitude to client
* 1b8bd08 2017-02-20 Require verbose mention of dev or prod
* a1d9ba0 2017-02-20 Ignore nohup.out
* 2797ac1 2017-02-20 Customize script/runserver for dev and prod
* 0a8110f 2017-02-20 Check for the accuracy of received location
* 5a21cd2 2017-02-15 Send follow response to followee, not to follower
* 3c6b42c 2017-02-11 Hold follow information in database, not in memory
* 0c446b3 2017-02-11 Populate the data base after reset
* 016d5e8 2017-02-10 Check follow request for already following user
* 22726e5 2017-02-10 Create follow response handler
* bc97857 2017-02-09 Specify command while sending location update
* f3c086b 2017-02-09 Add a token to follow request sent to follower
* 4f117b7 2017-02-08 Send follow request to user
* 7ec94b5 2017-02-06 Parse JSON according to Python 3.6 JSON module
* d7466d3 2017-02-06 Print stack trace after exceptions
* de96fbd 2017-02-06 Get the project working with Python 3.5.2
* 7243b0a 2017-02-05 Add name field to PinnedLocation
* 13169d4 2017-02-05 Pin locations and load pinned locations
* c7b91dd 2017-02-04 Get location pinning working
* d5cfbd9 2017-02-04 Add ability to pin a location
* 273eac2 2017-02-01 Send session id upon WebSocket connection
| * f46d89f 2017-02-02 (HEAD -> consumer_class) Add another commit
| * 052a341 2017-02-01 Add a commit
| * cba87f8 2017-01-31 Try a WebSocket consumer
|/
* 9d257f0 2017-01-31 Remove HTTP session upon WebSocket connection
* 93bbdae 2017-01-31 Remove debugging lines
* c7a0cf5 2017-01-31 Fix the error that causes account_id to be NULL
* d754832 2017-01-29 Add missing import
* 6836532 2017-01-29 Extend built in session engine
* 753eb7b 2017-01-29 Prevent a user from following himself
* 17244cc 2017-01-29 Implement follow user
* c7cc8dd 2017-01-29 Remove HTTP session as well upon disconnection
* b500cc3 2017-01-23 Update Django Channels version
* de8f277 2017-01-23 Add stunnel to prerequisites
* 3c9a77d 2017-01-23 Remove Channels user from table upon logout
* c03a069 2017-01-20 Revert "Create configuration files"
* 2c7e2d3 2017-01-17 Change directory name for configuration scripts
* 75e29c6 2017-01-16 Create configuration files
* a88878c 2017-01-15 Add the back end machine to the list of allowed hosts
* 4ed2dd6 2017-01-14 Specify prerequisites for the project
* 7ae29df 2017-01-14 Don't run server automatically after setting up
* 221651f 2017-01-14 Add asgi-redis to pip requirements
* ca4ae43 2017-01-14 Put scripts in their own directory
* 586e204 2017-01-14 Automate updating 'requirements.txt'
* c4a129b 2017-01-08 Seperate sign in and sign up.
* 36b8479 2017-01-08 Add error messages in the responses for sign in and sign up views
* 7bad977 2017-01-08 Create sign up view
* 5d3c25f 2017-01-07 Add instructions to install and start Redis
* 6d60bf8 2017-01-07 Add instructions to set up the project
* 56a5dde 2017-01-07 Fix runserver.sh so that ^C will terminate the stunnel process
* ac7fd9d 2017-01-07 Enable SSL
* 2651183 2017-01-05 Add user ID to the data sent to client
* 47d8be4 2017-01-04 Receive locations from client
* 43bde0c 2017-01-04 Set up models and consumers
* 02e7371 2017-01-02 Get logging in working and establish WebSocket connection
* 5bb677b 2017-01-02 Initialize consumers
* a85a9f9 2017-01-01 Add channel routing
* 3c925bb 2017-01-01 Add login view
* e507b1e 2017-01-01 Configure 'settings.py' for a Channels project
* f2f5bab 2017-01-01 Initialize the Django app
* ee645d0 2017-01-01 Initialize the venv and Django project
We got the output shown above. Why is this the case? It seems very weird because the date of the latest commit on consumer_class
, which is f46d89f 2017-02-02 (HEAD -> consumer_class) Add another commit
, is actually less than (earlier than) the date of the latest commit on master
, which is 87b5f13 2017-02-26 (master) Put received locations into a queue
. So how does this make any sense? Why would an earlier commit be listed before a later commit?
The answer is because Git lists them according to the "committer date", instead of the "author date". That is, the date specified with the --date
option in git-commit
, as well as the dates shown by running the git log --graph --all --pretty=format:"%C(auto)%h %ad%d %s" --date=short
is the "author date", as opposed to the "committer date". Since git-log
lists (orders) the branches w.r.t the "committer date" of the latest commit of the branches, the consumer_class
branch became the first in order, since the "committer date" of the commits that we added are actually today's date, which is the date at the time that we ran the git-commit
command. We can understand this better by running the following git-log
command, which shows both the "committer date", as well as the "author date":
$ git log --graph --all --pretty=format:"%C(auto)%h Committer Date=%cd Author Date=%ad%d %s" --date=short
* f46d89f Committer Date=2021-02-24 Author Date=2017-02-02 (HEAD -> consumer_class) Add another commit
* 052a341 Committer Date=2021-02-24 Author Date=2017-02-01 Add a commit
* cba87f8 Committer Date=2017-01-31 Author Date=2017-01-31 Try a WebSocket consumer
| * 87b5f13 Committer Date=2017-02-26 Author Date=2017-02-26 (master) Put received locations into a queue
| * 625118a Committer Date=2017-02-21 Author Date=2017-02-21 Disable output buffering on non-interactive run
| * 3be0b85 Committer Date=2017-02-21 Author Date=2017-02-21 Send averaged latitude and longitude to client
| * 1b8bd08 Committer Date=2017-02-20 Author Date=2017-02-20 Require verbose mention of dev or prod
| * a1d9ba0 Committer Date=2017-02-20 Author Date=2017-02-20 Ignore nohup.out
| * 2797ac1 Committer Date=2017-02-20 Author Date=2017-02-20 Customize script/runserver for dev and prod
| * 0a8110f Committer Date=2017-02-20 Author Date=2017-02-20 Check for the accuracy of received location
| * 5a21cd2 Committer Date=2017-02-15 Author Date=2017-02-15 Send follow response to followee, not to follower
| * 3c6b42c Committer Date=2017-02-11 Author Date=2017-02-11 Hold follow information in database, not in memory
| * 0c446b3 Committer Date=2017-02-11 Author Date=2017-02-11 Populate the data base after reset
| * 016d5e8 Committer Date=2017-02-10 Author Date=2017-02-10 Check follow request for already following user
| * 22726e5 Committer Date=2017-02-10 Author Date=2017-02-10 Create follow response handler
| * bc97857 Committer Date=2017-02-09 Author Date=2017-02-09 Specify command while sending location update
| * f3c086b Committer Date=2017-02-09 Author Date=2017-02-09 Add a token to follow request sent to follower
| * 4f117b7 Committer Date=2017-02-08 Author Date=2017-02-08 Send follow request to user
| * 7ec94b5 Committer Date=2017-02-06 Author Date=2017-02-06 Parse JSON according to Python 3.6 JSON module
| * d7466d3 Committer Date=2017-02-06 Author Date=2017-02-06 Print stack trace after exceptions
| * de96fbd Committer Date=2017-02-06 Author Date=2017-02-06 Get the project working with Python 3.5.2
| * 7243b0a Committer Date=2017-02-05 Author Date=2017-02-05 Add name field to PinnedLocation
| * 13169d4 Committer Date=2017-02-05 Author Date=2017-02-05 Pin locations and load pinned locations
| * c7b91dd Committer Date=2017-02-04 Author Date=2017-02-04 Get location pinning working
| * d5cfbd9 Committer Date=2017-02-04 Author Date=2017-02-04 Add ability to pin a location
| * 273eac2 Committer Date=2017-02-01 Author Date=2017-02-01 Send session id upon WebSocket connection
|/
* 9d257f0 Committer Date=2017-01-31 Author Date=2017-01-31 Remove HTTP session upon WebSocket connection
* 93bbdae Committer Date=2017-01-31 Author Date=2017-01-31 Remove debugging lines
* c7a0cf5 Committer Date=2017-01-31 Author Date=2017-01-31 Fix the error that causes account_id to be NULL
* d754832 Committer Date=2017-01-29 Author Date=2017-01-29 Add missing import
* 6836532 Committer Date=2017-01-29 Author Date=2017-01-29 Extend built in session engine
* 753eb7b Committer Date=2017-01-29 Author Date=2017-01-29 Prevent a user from following himself
* 17244cc Committer Date=2017-01-29 Author Date=2017-01-29 Implement follow user
* c7cc8dd Committer Date=2017-01-29 Author Date=2017-01-29 Remove HTTP session as well upon disconnection
* b500cc3 Committer Date=2017-01-23 Author Date=2017-01-23 Update Django Channels version
* de8f277 Committer Date=2017-01-23 Author Date=2017-01-23 Add stunnel to prerequisites
* 3c9a77d Committer Date=2017-01-23 Author Date=2017-01-23 Remove Channels user from table upon logout
* c03a069 Committer Date=2017-01-20 Author Date=2017-01-20 Revert "Create configuration files"
* 2c7e2d3 Committer Date=2017-01-17 Author Date=2017-01-17 Change directory name for configuration scripts
* 75e29c6 Committer Date=2017-01-16 Author Date=2017-01-16 Create configuration files
* a88878c Committer Date=2017-01-15 Author Date=2017-01-15 Add the back end machine to the list of allowed hosts
* 4ed2dd6 Committer Date=2017-01-14 Author Date=2017-01-14 Specify prerequisites for the project
* 7ae29df Committer Date=2017-01-14 Author Date=2017-01-14 Don't run server automatically after setting up
* 221651f Committer Date=2017-01-14 Author Date=2017-01-14 Add asgi-redis to pip requirements
* ca4ae43 Committer Date=2017-01-14 Author Date=2017-01-14 Put scripts in their own directory
* 586e204 Committer Date=2017-01-14 Author Date=2017-01-14 Automate updating 'requirements.txt'
* c4a129b Committer Date=2017-01-08 Author Date=2017-01-08 Seperate sign in and sign up.
* 36b8479 Committer Date=2017-01-08 Author Date=2017-01-08 Add error messages in the responses for sign in and sign up views
* 7bad977 Committer Date=2017-01-08 Author Date=2017-01-08 Create sign up view
* 5d3c25f Committer Date=2017-01-07 Author Date=2017-01-07 Add instructions to install and start Redis
* 6d60bf8 Committer Date=2017-01-07 Author Date=2017-01-07 Add instructions to set up the project
* 56a5dde Committer Date=2017-01-07 Author Date=2017-01-07 Fix runserver.sh so that ^C will terminate the stunnel process
* ac7fd9d Committer Date=2017-01-07 Author Date=2017-01-07 Enable SSL
* 2651183 Committer Date=2017-01-05 Author Date=2017-01-05 Add user ID to the data sent to client
* 47d8be4 Committer Date=2017-01-04 Author Date=2017-01-04 Receive locations from client
* 43bde0c Committer Date=2017-01-04 Author Date=2017-01-04 Set up models and consumers
* 02e7371 Committer Date=2017-01-02 Author Date=2017-01-02 Get logging in working and establish WebSocket connection
* 5bb677b Committer Date=2017-01-02 Author Date=2017-01-02 Initialize consumers
* a85a9f9 Committer Date=2017-01-01 Author Date=2017-01-01 Add channel routing
* 3c925bb Committer Date=2017-01-01 Author Date=2017-01-01 Add login view
* e507b1e Committer Date=2017-01-01 Author Date=2017-01-01 Configure 'settings.py' for a Channels project
* f2f5bab Committer Date=2017-01-01 Author Date=2017-01-01 Initialize the Django app
* ee645d0 Committer Date=2017-01-01 Author Date=2017-01-01 Initialize the venv and Django project
$
As we can observe from the output, the "committer date" of the latest commit in consumer_class
branch is later than the "committer date" of the latest commit in the master
branch. Hence, the consumer_class
branch is listed before the master
branch.
To demonstrate that it is indeed related to the "committer date", let's add the same commits to the consumer_class
branch on a fresh copy of the repository, but this time with a custom "committer date":
$ cd ..
# Checkout a fresh clone of the repository
$ cd repository
$ git log --graph --all --pretty=format:"%C(auto)%h Committer Date=%cd Author Date=%ad%d %s" --date=short
* 87b5f13 Committer Date=2017-02-26 Author Date=2017-02-26 (HEAD -> master) Put received locations into a queue
* 625118a Committer Date=2017-02-21 Author Date=2017-02-21 Disable output buffering on non-interactive run
* 3be0b85 Committer Date=2017-02-21 Author Date=2017-02-21 Send averaged latitude and longitude to client
* 1b8bd08 Committer Date=2017-02-20 Author Date=2017-02-20 Require verbose mention of dev or prod
* a1d9ba0 Committer Date=2017-02-20 Author Date=2017-02-20 Ignore nohup.out
* 2797ac1 Committer Date=2017-02-20 Author Date=2017-02-20 Customize script/runserver for dev and prod
* 0a8110f Committer Date=2017-02-20 Author Date=2017-02-20 Check for the accuracy of received location
* 5a21cd2 Committer Date=2017-02-15 Author Date=2017-02-15 Send follow response to followee, not to follower
* 3c6b42c Committer Date=2017-02-11 Author Date=2017-02-11 Hold follow information in database, not in memory
* 0c446b3 Committer Date=2017-02-11 Author Date=2017-02-11 Populate the data base after reset
* 016d5e8 Committer Date=2017-02-10 Author Date=2017-02-10 Check follow request for already following user
* 22726e5 Committer Date=2017-02-10 Author Date=2017-02-10 Create follow response handler
* bc97857 Committer Date=2017-02-09 Author Date=2017-02-09 Specify command while sending location update
* f3c086b Committer Date=2017-02-09 Author Date=2017-02-09 Add a token to follow request sent to follower
* 4f117b7 Committer Date=2017-02-08 Author Date=2017-02-08 Send follow request to user
* 7ec94b5 Committer Date=2017-02-06 Author Date=2017-02-06 Parse JSON according to Python 3.6 JSON module
* d7466d3 Committer Date=2017-02-06 Author Date=2017-02-06 Print stack trace after exceptions
* de96fbd Committer Date=2017-02-06 Author Date=2017-02-06 Get the project working with Python 3.5.2
* 7243b0a Committer Date=2017-02-05 Author Date=2017-02-05 Add name field to PinnedLocation
* 13169d4 Committer Date=2017-02-05 Author Date=2017-02-05 Pin locations and load pinned locations
* c7b91dd Committer Date=2017-02-04 Author Date=2017-02-04 Get location pinning working
* d5cfbd9 Committer Date=2017-02-04 Author Date=2017-02-04 Add ability to pin a location
* 273eac2 Committer Date=2017-02-01 Author Date=2017-02-01 Send session id upon WebSocket connection
| * cba87f8 Committer Date=2017-01-31 Author Date=2017-01-31 (consumer_class) Try a WebSocket consumer
|/
* 9d257f0 Committer Date=2017-01-31 Author Date=2017-01-31 Remove HTTP session upon WebSocket connection
* 93bbdae Committer Date=2017-01-31 Author Date=2017-01-31 Remove debugging lines
* c7a0cf5 Committer Date=2017-01-31 Author Date=2017-01-31 Fix the error that causes account_id to be NULL
* d754832 Committer Date=2017-01-29 Author Date=2017-01-29 Add missing import
* 6836532 Committer Date=2017-01-29 Author Date=2017-01-29 Extend built in session engine
* 753eb7b Committer Date=2017-01-29 Author Date=2017-01-29 Prevent a user from following himself
* 17244cc Committer Date=2017-01-29 Author Date=2017-01-29 Implement follow user
* c7cc8dd Committer Date=2017-01-29 Author Date=2017-01-29 Remove HTTP session as well upon disconnection
* b500cc3 Committer Date=2017-01-23 Author Date=2017-01-23 Update Django Channels version
* de8f277 Committer Date=2017-01-23 Author Date=2017-01-23 Add stunnel to prerequisites
* 3c9a77d Committer Date=2017-01-23 Author Date=2017-01-23 Remove Channels user from table upon logout
* c03a069 Committer Date=2017-01-20 Author Date=2017-01-20 Revert "Create configuration files"
* 2c7e2d3 Committer Date=2017-01-17 Author Date=2017-01-17 Change directory name for configuration scripts
* 75e29c6 Committer Date=2017-01-16 Author Date=2017-01-16 Create configuration files
* a88878c Committer Date=2017-01-15 Author Date=2017-01-15 Add the back end machine to the list of allowed hosts
* 4ed2dd6 Committer Date=2017-01-14 Author Date=2017-01-14 Specify prerequisites for the project
* 7ae29df Committer Date=2017-01-14 Author Date=2017-01-14 Don't run server automatically after setting up
* 221651f Committer Date=2017-01-14 Author Date=2017-01-14 Add asgi-redis to pip requirements
* ca4ae43 Committer Date=2017-01-14 Author Date=2017-01-14 Put scripts in their own directory
* 586e204 Committer Date=2017-01-14 Author Date=2017-01-14 Automate updating 'requirements.txt'
* c4a129b Committer Date=2017-01-08 Author Date=2017-01-08 Seperate sign in and sign up.
* 36b8479 Committer Date=2017-01-08 Author Date=2017-01-08 Add error messages in the responses for sign in and sign up views
* 7bad977 Committer Date=2017-01-08 Author Date=2017-01-08 Create sign up view
* 5d3c25f Committer Date=2017-01-07 Author Date=2017-01-07 Add instructions to install and start Redis
* 6d60bf8 Committer Date=2017-01-07 Author Date=2017-01-07 Add instructions to set up the project
* 56a5dde Committer Date=2017-01-07 Author Date=2017-01-07 Fix runserver.sh so that ^C will terminate the stunnel process
* ac7fd9d Committer Date=2017-01-07 Author Date=2017-01-07 Enable SSL
* 2651183 Committer Date=2017-01-05 Author Date=2017-01-05 Add user ID to the data sent to client
* 47d8be4 Committer Date=2017-01-04 Author Date=2017-01-04 Receive locations from client
* 43bde0c Committer Date=2017-01-04 Author Date=2017-01-04 Set up models and consumers
* 02e7371 Committer Date=2017-01-02 Author Date=2017-01-02 Get logging in working and establish WebSocket connection
* 5bb677b Committer Date=2017-01-02 Author Date=2017-01-02 Initialize consumers
* a85a9f9 Committer Date=2017-01-01 Author Date=2017-01-01 Add channel routing
* 3c925bb Committer Date=2017-01-01 Author Date=2017-01-01 Add login view
* e507b1e Committer Date=2017-01-01 Author Date=2017-01-01 Configure 'settings.py' for a Channels project
* f2f5bab Committer Date=2017-01-01 Author Date=2017-01-01 Initialize the Django app
* ee645d0 Committer Date=2017-01-01 Author Date=2017-01-01 Initialize the venv and Django project
$
Now, let's add some commits to consumer_class
branch, but this time with specifying the "committer date" (instead of, or in addition to, the "author date"):
git checkout consumer_class
touch dummy.txt
git add dummy.txt
GIT_COMMITTER_DATE="2017-02-01 12:27:46" git commit -m "Add a commit"
git rm dummy.txt
GIT_COMMITTER_DATE="2017-02-02 12:27:46" git commit -m "Add another commit"
Now let's run git-log
again:
$ git log --graph --all --pretty=format:"%C(auto)%h Committer Date=%cd Author Date=%ad%d %s" --date=short
* 87b5f13 Committer Date=2017-02-26 Author Date=2017-02-26 (master) Put received locations into a queue
* 625118a Committer Date=2017-02-21 Author Date=2017-02-21 Disable output buffering on non-interactive run
* 3be0b85 Committer Date=2017-02-21 Author Date=2017-02-21 Send averaged latitude and longitude to client
* 1b8bd08 Committer Date=2017-02-20 Author Date=2017-02-20 Require verbose mention of dev or prod
* a1d9ba0 Committer Date=2017-02-20 Author Date=2017-02-20 Ignore nohup.out
* 2797ac1 Committer Date=2017-02-20 Author Date=2017-02-20 Customize script/runserver for dev and prod
* 0a8110f Committer Date=2017-02-20 Author Date=2017-02-20 Check for the accuracy of received location
* 5a21cd2 Committer Date=2017-02-15 Author Date=2017-02-15 Send follow response to followee, not to follower
* 3c6b42c Committer Date=2017-02-11 Author Date=2017-02-11 Hold follow information in database, not in memory
* 0c446b3 Committer Date=2017-02-11 Author Date=2017-02-11 Populate the data base after reset
* 016d5e8 Committer Date=2017-02-10 Author Date=2017-02-10 Check follow request for already following user
* 22726e5 Committer Date=2017-02-10 Author Date=2017-02-10 Create follow response handler
* bc97857 Committer Date=2017-02-09 Author Date=2017-02-09 Specify command while sending location update
* f3c086b Committer Date=2017-02-09 Author Date=2017-02-09 Add a token to follow request sent to follower
* 4f117b7 Committer Date=2017-02-08 Author Date=2017-02-08 Send follow request to user
* 7ec94b5 Committer Date=2017-02-06 Author Date=2017-02-06 Parse JSON according to Python 3.6 JSON module
* d7466d3 Committer Date=2017-02-06 Author Date=2017-02-06 Print stack trace after exceptions
* de96fbd Committer Date=2017-02-06 Author Date=2017-02-06 Get the project working with Python 3.5.2
* 7243b0a Committer Date=2017-02-05 Author Date=2017-02-05 Add name field to PinnedLocation
* 13169d4 Committer Date=2017-02-05 Author Date=2017-02-05 Pin locations and load pinned locations
* c7b91dd Committer Date=2017-02-04 Author Date=2017-02-04 Get location pinning working
* d5cfbd9 Committer Date=2017-02-04 Author Date=2017-02-04 Add ability to pin a location
* 273eac2 Committer Date=2017-02-01 Author Date=2017-02-01 Send session id upon WebSocket connection
| * fa1ea53 Committer Date=2017-02-02 Author Date=2021-02-24 (HEAD -> consumer_class) Add another commit
| * 14f19b5 Committer Date=2017-02-01 Author Date=2021-02-24 Add a commit
| * cba87f8 Committer Date=2017-01-31 Author Date=2017-01-31 Try a WebSocket consumer
|/
* 9d257f0 Committer Date=2017-01-31 Author Date=2017-01-31 Remove HTTP session upon WebSocket connection
* 93bbdae Committer Date=2017-01-31 Author Date=2017-01-31 Remove debugging lines
* c7a0cf5 Committer Date=2017-01-31 Author Date=2017-01-31 Fix the error that causes account_id to be NULL
* d754832 Committer Date=2017-01-29 Author Date=2017-01-29 Add missing import
* 6836532 Committer Date=2017-01-29 Author Date=2017-01-29 Extend built in session engine
* 753eb7b Committer Date=2017-01-29 Author Date=2017-01-29 Prevent a user from following himself
* 17244cc Committer Date=2017-01-29 Author Date=2017-01-29 Implement follow user
* c7cc8dd Committer Date=2017-01-29 Author Date=2017-01-29 Remove HTTP session as well upon disconnection
* b500cc3 Committer Date=2017-01-23 Author Date=2017-01-23 Update Django Channels version
* de8f277 Committer Date=2017-01-23 Author Date=2017-01-23 Add stunnel to prerequisites
* 3c9a77d Committer Date=2017-01-23 Author Date=2017-01-23 Remove Channels user from table upon logout
* c03a069 Committer Date=2017-01-20 Author Date=2017-01-20 Revert "Create configuration files"
* 2c7e2d3 Committer Date=2017-01-17 Author Date=2017-01-17 Change directory name for configuration scripts
* 75e29c6 Committer Date=2017-01-16 Author Date=2017-01-16 Create configuration files
* a88878c Committer Date=2017-01-15 Author Date=2017-01-15 Add the back end machine to the list of allowed hosts
* 4ed2dd6 Committer Date=2017-01-14 Author Date=2017-01-14 Specify prerequisites for the project
* 7ae29df Committer Date=2017-01-14 Author Date=2017-01-14 Don't run server automatically after setting up
* 221651f Committer Date=2017-01-14 Author Date=2017-01-14 Add asgi-redis to pip requirements
* ca4ae43 Committer Date=2017-01-14 Author Date=2017-01-14 Put scripts in their own directory
* 586e204 Committer Date=2017-01-14 Author Date=2017-01-14 Automate updating 'requirements.txt'
* c4a129b Committer Date=2017-01-08 Author Date=2017-01-08 Seperate sign in and sign up.
* 36b8479 Committer Date=2017-01-08 Author Date=2017-01-08 Add error messages in the responses for sign in and sign up views
* 7bad977 Committer Date=2017-01-08 Author Date=2017-01-08 Create sign up view
* 5d3c25f Committer Date=2017-01-07 Author Date=2017-01-07 Add instructions to install and start Redis
* 6d60bf8 Committer Date=2017-01-07 Author Date=2017-01-07 Add instructions to set up the project
* 56a5dde Committer Date=2017-01-07 Author Date=2017-01-07 Fix runserver.sh so that ^C will terminate the stunnel process
* ac7fd9d Committer Date=2017-01-07 Author Date=2017-01-07 Enable SSL
* 2651183 Committer Date=2017-01-05 Author Date=2017-01-05 Add user ID to the data sent to client
* 47d8be4 Committer Date=2017-01-04 Author Date=2017-01-04 Receive locations from client
* 43bde0c Committer Date=2017-01-04 Author Date=2017-01-04 Set up models and consumers
* 02e7371 Committer Date=2017-01-02 Author Date=2017-01-02 Get logging in working and establish WebSocket connection
* 5bb677b Committer Date=2017-01-02 Author Date=2017-01-02 Initialize consumers
* a85a9f9 Committer Date=2017-01-01 Author Date=2017-01-01 Add channel routing
* 3c925bb Committer Date=2017-01-01 Author Date=2017-01-01 Add login view
* e507b1e Committer Date=2017-01-01 Author Date=2017-01-01 Configure 'settings.py' for a Channels project
* f2f5bab Committer Date=2017-01-01 Author Date=2017-01-01 Initialize the Django app
* ee645d0 Committer Date=2017-01-01 Author Date=2017-01-01 Initialize the venv and Django project
$
As you can observe, the consumer_class
branch didn't become the first in order this time. The reason is, the "committer date" of the latest commit in the consumer_class
branch is 2017-02-02
, whereas the "committer date" of the latest commit in the master
branch is 2017-02-26
. Since the "committer date" of the latest commit in the master
branch is greater than the "committer date" of the latest commit in the consumer_class
branch, the master
branch is listed first in order.
Note that even though the "author date" of the latest commit in the consumer_class
branch, which is 2021-02-24
, is way later than the "author date" of the latest commit in the master
branch, which is 2017-02-26
, the master
branch is still listed first in order, since the listing order depends only on the "committer date" and not on the "author date".