---
title: Creating a git history that suits your needs
description: How using git to manipulate the history of a recent feature we worked on.
image: https://blog.optibus.com/hubfs/Creating%20a%20git%20history%20that%20suits%20your%20needs.png
---

[![optibus-logo-2019](https://blog.optibus.com/hs-fs/hubfs/optibus-logo-2019.png?width=180&height=49&name=optibus-logo-2019.png "optibus-logo-2019")](https://www.optibus.com/)

[![optibus-dark-logo](https://blog.optibus.com/hubfs/optibus-dark-logo.svg "optibus-dark-logo")](https://www.optibus.com/)

- Product 
    - [Platform](https://www.optibus.com/product/platform/)
    - [Passenger Information](https://optibus.com/product/passenger-information/)
    - [Planning](https://www.optibus.com/product/planning/)
    - [Control & Monitoring](https://optibus.com/product/control/)
    - [MagicEye - Driver Safety](https://optibus.com/product/magic-eye/)
    - [Operations](https://www.optibus.com/product/operations/)
    - [Scheduling](https://www.optibus.com/product/scheduling/)
    - [Driver App](https://www.optibus.com/product/driver-app/)
    - [Rostering](https://www.optibus.com/product/rostering/)
    - [Optibus AI](https://optibus.com/product/ai/)
- Solutions 
    - [Agencies](https://optibus.com/solutions/optibus-for-agencies/)
    - [Win Tenders](https://optibus.com/solutions/optibus-for-tenders/)
    - [Operators](https://optibus.com/solutions/optibus-for-operators/)
    - [Electrify Fleet](https://optibus.com/solutions/optibus-for-electrical-vehicles/)
    - [Consultancies](https://optibus.com/solutions/optibus-for-consultancies/)
    - [Enhance Passenger Experience](https://optibus.com/enhance-passenger-experience/)
    - [Reduce Costs](https://optibus.com/solutions/reduce-operating-costs/)
- Resources 
    - [Blog](https://blog.optibus.com/)
    - [eBooks](https://www.optibus.com/resources/ebooks/)
    - [Webinars](https://www.optibus.com/resources/webinars/)
    - [Case Studies](https://www.optibus.com/resources/case-studies/)
    - [Videos](https://www.optibus.com/resources/videos/)
- Company 
    - [About](https://www.optibus.com/about-the-company/)
    - [Careers](https://www.optibus.com/careers/)
    - [Contact Us](https://www.optibus.com/about/contacts/)
    - [Events](https://www.optibus.com/events/)
    - [Media](https://www.optibus.com/news-events/media-coverage/)
- EN 
    - [English](https://blog.optibus.com/)
    - [Español América Latina](https://blog.optibus.com/es/)
    - [Español Europa](https://blog.optibus.com/es-es/)
    - [Deutsch](https://blog.optibus.com/de/)
    - [Français](https://blog.optibus.com/fr/)
    - [Português Brasil](https://blog.optibus.com/pt-br/)
    - [Português Portugal](https://blog.optibus.com/pt-pt/)
    - [日本語](https://blog.optibus.com/ja/)
    - [Italiano](https://blog.optibus.com/it/)
    - [Русский](https://blog.optibus.com/ru/)
    - [Türkçe](https://blog.optibus.com/tr/)
    - [български](https://blog.optibus.com/bg/)
    - <https://blog.optibus.com/creating-a-git-history-that-suits-your-needs#empty>

[Request a demo](https://optibus.com/request-a-demo/)

# Creating a git history that suits your needs

![Rodrigo Chamun, Software Engineer](https://blog.optibus.com/hs-fs/hubfs/rodrigo.jpg?width=100&height=100&name=rodrigo.jpg)

#### Rodrigo Chamun, Software Engineer

February 7, 2023

[![Share on Facebook](https://blog.optibus.com/hubfs/fb_social_icon.svg)](http://www.facebook.com/share.php?u=https%3A%2F%2Fblog.optibus.com%2Fcreating-a-git-history-that-suits-your-needs%3Futm_medium%3Dsocial%26utm_source%3Dfacebook) [![Share on LinkedIn](https://blog.optibus.com/hubfs/linkedin%20logo_icon.svg)](http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fblog.optibus.com%2Fcreating-a-git-history-that-suits-your-needs%3Futm_medium%3Dsocial%26utm_source%3Dlinkedin) [![Share on Twitter](https://blog.optibus.com/hubfs/twitter%20logo_icon.svg)](https://twitter.com/intent/tweet?original_referer=https%3A%2F%2Fblog.optibus.com%2Fcreating-a-git-history-that-suits-your-needs%3Futm_medium%3Dsocial%26utm_source%3Dtwitter&url=https%3A%2F%2Fblog.optibus.com%2Fcreating-a-git-history-that-suits-your-needs%3Futm_medium%3Dsocial%26utm_source%3Dtwitter&source=tweetbutton&text=Creating%20a%20git%20history%20that%20suits%20your%20needs) [![Share on Email](https://blog.optibus.com/hs-fs/hubfs/email_icon-1.png?width=24&name=email_icon-1.png)](mailto:?subject=Check%20out%20https%3A%2F%2Fblog.optibus.com%2Fcreating-a-git-history-that-suits-your-needs%3Futm_medium%3Dsocial%26utm_source%3Demail%20&body=Check%20out%20https%3A%2F%2Fblog.optibus.com%2Fcreating-a-git-history-that-suits-your-needs%3Futm_medium%3Dsocial%26utm_source%3Demail)

Developing a feature can be messy: unclear requirements, refactoring, peer feedback, and typos. These events are unexpected, and your git history does not need to reflect the actual order they occurred during feature implementation.

Optibus is a SaaS company powering complex transit operations in 2,000+ cities around the world. We help these cities plan and schedule the movement of vehicles and drivers to improve the quality and reliability of transit service, and to make operations more efficient. Our development team is also distributed around the world. Clear communication of code changes is essential for efficient asynchronous interactions between developers, and the git history is a useful resource to achieve that.

In this post, I’ll demonstrate how I used git to manipulate the history of a recent feature I worked on, so it did not reflect the back-and-forth I went through while developing it. 

I’ll cover the following topics: 

- Reordering commits
- Committing changes incrementally
- Merging commits
- Getting distractions out of the way
- Deleting commits
- Splitting commits

What I’m going to demonstrate is an example of what is possible for those who want to be able to manipulate the git history to their needs.

 

# **Reordering commits**

My task began as a handover of my colleague’s work. His experience was required on other tasks, and we decided I should continue what he had left off. Part of the work was done and did not require changes. The other part was missing or implemented as a proof of concept (POC). My task was to develop the missing functionality and refactor the POC into production code.

When I start to work on a feature, I like to store the hash of the commit that my branch was forked off to a shell variable called **bc** (**b**ase **c**ommit). This variable is used as a reference point when I manipulate the git history as I progress in my work.

As I looked through my colleague’s history to identify where he forked his branch, I noticed that the commits for the POC were mixed with commits for the code that did not require changes. 

Since I was about to change the code for the POC, I moved its commits to the top of the history using the **git rebase --interactive $bc** command, so I could focus on the history manipulation from this point onwards.

| ![figure 1 left](https://blog.optibus.com/hs-fs/hubfs/figure%201%20left.png?width=288&height=230&name=figure%201%20left.png) | ![figure 1 center](https://blog.optibus.com/hs-fs/hubfs/figure%201%20center.png?width=289&height=233&name=figure%201%20center.png) |
| --- | --- |

![figure 1 right](https://blog.optibus.com/hs-fs/hubfs/figure%201%20right.png?width=244&height=226&name=figure%201%20right.png)

*Top left: original order of commits in the rebase command. Top right: order of commits defined by me. Bottom: The git history after the rebase command.*

 

# **Committing incrementally**

I find smaller commits easier to be manipulated, so I like to commit my changes in small increments. When I have small changes this is easy, as all of them are staged and committed together.

When my work requires bigger changes, I like to focus on them, not on commits. So I work until a point where I’m satisfied, and then I use **git add --patch**. This command is very powerful as it lets me choose which hunks of changes are staged and which are not. It is also a good opportunity to review what I have been doing.

![figure 2-1](https://blog.optibus.com/hs-fs/hubfs/figure%202-1.png?width=366&height=343&name=figure%202-1.png)

*Example of **git add --patch**.*

 

I continued my task, and by the time I was finished, I had a few new commits. Some of them refactored the POC, and some of them created new functionality.

These commits put my git history in a state I wasn’t comfortable with. Why should I keep in history refactoring changes for code that was introduced in the same branch? What value does it add for the reviewer or future readers?

 

# **Merging commits**

For me, the answer was none. So I wanted to merge all the code related to the POC into a single commit. This way, the history would not even mention a POC and the functionality would be presented in its final form.

Git provides two ways to merge commits: *squash* and *fixup*, both parts of the rebase command. The difference between them is that *squash* allows you to tweak the commit message, while *fixup* maintains the message of the first commit.

Once again, I ran **git rebase --interactive $bc** and then moved the commits I  
wanted merged, and marked them with the squash flag.

However, doing this many times a day is time-consuming and distracting. If you are committing a change that you know will be merged to another commit, git can automate the process so you can focus on your work and not on the rebase process. Let’s see how.

| ![figure 3 left](https://blog.optibus.com/hs-fs/hubfs/figure%203%20left.png?width=282&height=271&name=figure%203%20left.png) | ![figure 3 center](https://blog.optibus.com/hs-fs/hubfs/figure%203%20center.png?width=287&height=274&name=figure%203%20center.png) |
| --- | --- |

![figure 3 right](https://blog.optibus.com/hs-fs/hubfs/figure%203%20right.png?width=366&height=228&name=figure%203%20right.png)

*Top left: original order of commits in the rebase command. Top right: order of commits defined by me. Bottom: The git history after the rebase command.*

 

# **Getting distractions out of the way**

As my work continued, now implementing new functionality, I noticed many mistakes from my previous commits. As I mentioned before, I didn’t think the fixes for these mistakes deserved their own commits in the git history, but it was not the time to do a rebase process, as I didn’t want to break the flow.

Git provides the **--squash** and **--fixup** flags for the **git commit** command, which expects the commit hash that the changes will be merged to when used with these flags. In the end, you will have unwanted commits in the history, but git will know the commits to merge them with. Once you run **git rebase --interactive --autosquash $bc**, the rebase command will be set up automatically, and you just need to review it.

I usually use the **--fixup** flag for commits that do not require context, like fixing typos or adding missing tests. I use the **--squash** flag when the change has a context that I want in the original commit’s message, and I’m afraid to forget, like when adding a missing method or fixing a broken test, so I just type anything and edit it during the rebase process.

![figure 4 left](https://blog.optibus.com/hs-fs/hubfs/figure%204%20left.png?width=367&height=244&name=figure%204%20left.png)

![figure 4 center-1](https://blog.optibus.com/hs-fs/hubfs/figure%204%20center-1.png?width=366&height=200&name=figure%204%20center-1.png)

![figure 4 right](https://blog.optibus.com/hs-fs/hubfs/figure%204%20right.png?width=367&height=246&name=figure%204%20right.png)

*Top: original order of commits. Middle: order of commits automatically defined by the rebase command with the --autosquash flag. Bottom: The git history after the rebase command.*

 

# **Deleting commits**

When I was ready to submit my changes to review, my colleague and I decided that only my work should be merged. He wanted to do some more work on his part, and there was no reason for me to wait for him to merge my changes as both works were somewhat independent. 

All I needed to do was to *drop* his commits and keep mine. I ran the rebase command and marked all of his commits with the drop command, and continued the rebase. 

![figure 5 right](https://blog.optibus.com/hs-fs/hubfs/figure%205%20right.png?width=367&height=203&name=figure%205%20right.png)

![figure 5 left](https://blog.optibus.com/hs-fs/hubfs/figure%205%20left.png?width=366&height=178&name=figure%205%20left.png)

*Top: My manual changes to tell the rebase command which commits should be dropped. Bottom: The git history after the rebase command.*

 

# **Splitting commits**

I decided to review my work one more time and noticed that some unrelated changes were committed together. I wanted them to each have their own commit.

This required a bit more work. The way I did this was to run the rebase command and mark the commit I wanted to split with the **edit** command. Once the rebase stopped at this commit I ran a **git reset HEAD^**, committed each change at a time, staging them with **git add --patch,** and continued the rebase.

 

# **Wrap up**

In the end, I was satisfied with my work and how its history ended up: it was straightforward and granular. It was also nothing like the actual series of events I went through.

As I demonstrated, the **rebase** command is very powerful and, together with the **add**, **commit**and**reset** commands, can be used to efficiently craft any git history you want as you develop your feature or after you have developed it. 

![figure 6 left-1](https://blog.optibus.com/hs-fs/hubfs/figure%206%20left-1.png?width=366&height=345&name=figure%206%20left-1.png)

![figure 6 right](https://blog.optibus.com/hs-fs/hubfs/figure%206%20right.png?width=366&height=158&name=figure%206%20right.png)

*Top: Git history as events happened during my development. Bottom: Final git history.*

 

# **Resources**

My intention with this post is to show what is possible with concrete examples of when to use these commands. But, to keep it brief, I didn’t talk about conflict resolution or the inner workings of the rebase command. These are important things to know about when using the command. To learn more about the rebase command and the other commands, I invite you to take a look at their documentation below:

- [git add](https://git-scm.com/docs/git-add)  
  [--patch](https://git-scm.com/docs/git-add#Documentation/git-add.txt---patch)
- [git commit](https://git-scm.com/docs/git-commit)  
  [--fixup](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt)  
  [--squash](https://git-scm.com/docs/git-commit)
- [git rebase](https://git-scm.com/docs/git-rebase)  
  [--autosquash](https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---autosquash)  
  [--interactive](https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---interactive)
- [git reset](https://git-scm.com/docs/git-reset)

 Topics: [Engineering](https://optibus.com/tag/engineering/)

![](https://blog.optibus.com/hubfs/new%20design%20blog/illustration.svg)

### Get transportation industry updates

(But not too often, don't worry!)

Sign up for insights

## Recent Posts

- #### [Inside Niagara Transit: A Day with the People Who Run the Service](https://blog.optibus.com/inside-niagara-transit-a-day-with-the-people-who-run-the-service?hsLang=en)
  
  [Read More](https://blog.optibus.com/inside-niagara-transit-a-day-with-the-people-who-run-the-service?hsLang=en)
- #### [Optibus Launches Real-Time Suite to Improve CAD/AVL Accuracy, Give Passengers and Operators ETAs They Can Trust](https://blog.optibus.com/real-time-suite-to-improve-cad-avl?hsLang=en)
  
  [Read More](https://blog.optibus.com/real-time-suite-to-improve-cad-avl?hsLang=en)
- #### [Optibus and Carahsoft Partner to Deliver AI-Powered Public Transportation Solutions to the Public Sector](https://blog.optibus.com/carahsoft-partnership-public-sector?hsLang=en)
  
  [Read More](https://blog.optibus.com/carahsoft-partnership-public-sector?hsLang=en)

## Popular Content

[![Optibus at UITP 2025: Shaping Public Transportation Together](https://blog.optibus.com/hubfs/UITP%202025%20-%20Banner%201.png)](https://blog.optibus.com/optibus-at-uitp-2025?hsLang=en)

## [Optibus at UITP 2025: Shaping Public Transportation Together](https://blog.optibus.com/optibus-at-uitp-2025?hsLang=en)

[Read More](https://blog.optibus.com/optibus-at-uitp-2025?hsLang=en)

[![How I’m making our Calendar collaborative in real-time with Redux and Operational Transformation](https://blog.optibus.com/hubfs/Geese%20Leaving.png)](https://blog.optibus.com/how-im-making-our-calendar-collaborative-in-real-time-with-redux-and-operational-transformation?hsLang=en)

## [How I’m making our Calendar collaborative in real-time with Redux and Operational Transformation](https://blog.optibus.com/how-im-making-our-calendar-collaborative-in-real-time-with-redux-and-operational-transformation?hsLang=en)

[Read More](https://blog.optibus.com/how-im-making-our-calendar-collaborative-in-real-time-with-redux-and-operational-transformation?hsLang=en)

[![The State Of Digital Transformation In Public Transportation – 5 Key Takeaways For 2024 And Beyond](https://blog.optibus.com/hubfs/ebook-The-State-of-Digital-Transformation-in-Public-Transportation-2024-1024x597-4.png)](https://optibus.com/ebook/2024-digital-transformation-public-transportation/)

## [The State Of Digital Transformation In Public Transportation – 5 Key Takeaways For 2024 And Beyond](https://optibus.com/ebook/2024-digital-transformation-public-transportation/)

[Read More](https://optibus.com/ebook/2024-digital-transformation-public-transportation/)

[![Turning Network Disruption Into an Opportunity](https://blog.optibus.com/hubfs/Disruption%20Management%20%20Blog%20(1399%20%C3%97%20839px).png)](https://blog.optibus.com/turning-network-disruption-into-an-opportunity?hsLang=en)

## [Turning Network Disruption Into an Opportunity](https://blog.optibus.com/turning-network-disruption-into-an-opportunity?hsLang=en)

[Read More](https://blog.optibus.com/turning-network-disruption-into-an-opportunity?hsLang=en)

[![Free Scooters, Electric Bikes And Hoverboards at Optibus](https://blog.optibus.com/hubfs/Imported_Blog_Media/optibus-scooteres-1-1024x768.jpg)](https://blog.optibus.com/transportation/free-scooters-electric-bikes-and-hoverboards-at-optibus?hsLang=en)

## [Free Scooters, Electric Bikes And Hoverboards at Optibus](https://blog.optibus.com/transportation/free-scooters-electric-bikes-and-hoverboards-at-optibus?hsLang=en)

[Read More](https://blog.optibus.com/transportation/free-scooters-electric-bikes-and-hoverboards-at-optibus?hsLang=en)

[![The Trillion Dollar Market That Everyone Is Ignoring](https://blog.optibus.com/hubfs/Imported_Blog_Media/post-top.jpg)](https://blog.optibus.com/corporate/the-trillion-dollar-market-that-everyone-is-ignoring?hsLang=en)

## [The Trillion Dollar Market That Everyone Is Ignoring](https://blog.optibus.com/corporate/the-trillion-dollar-market-that-everyone-is-ignoring?hsLang=en)

[Read More](https://blog.optibus.com/corporate/the-trillion-dollar-market-that-everyone-is-ignoring?hsLang=en)

[![The Great Recovery: Agility in Fixed-Route Transport Networks](https://blog.optibus.com/hubfs/GettyImages-856905966.jpg)](https://blog.optibus.com/the-great-recovery-agility-in-fixed-route-transport-networks?hsLang=en)

## [The Great Recovery: Agility in Fixed-Route Transport Networks](https://blog.optibus.com/the-great-recovery-agility-in-fixed-route-transport-networks?hsLang=en)

[Read More](https://blog.optibus.com/the-great-recovery-agility-in-fixed-route-transport-networks?hsLang=en)

## See the power of Optibus for yourself

[Request a demo](https://www.optibus.com/request-a-demo/)

#### Get transportation industry updates

#### Product

- [Platform](https://www.optibus.com/product/platform/)
- [Planning](https://www.optibus.com/product/planning/)
- [Scheduling](https://www.optibus.com/product/scheduling/)
- [Rostering](https://www.optibus.com/product/rostering/)
- [Operations](https://www.optibus.com/product/operations/)
- [Driver App](https://www.optibus.com/product/driver-app/)
- [Passenger information](https://optibus.com/product/passenger-information/)
- [MagicEye – Driver Safety](https://optibus.com/product/magic-eye/)
- [Control & Monitoring](https://optibus.com/product/control/)
- [Optibus AI](https://optibus.com/product/control/)

#### Solutions

- [Agencies](https://www.optibus.com/solutions/optibus-for-agencies/)
- [Operators](https://www.optibus.com/solutions/optibus-for-operators/)
- [Consultancies](https://www.optibus.com/solutions/optibus-for-consultancies/)
- [Electrical Vehicles](https://www.optibus.com/solutions/optibus-for-electrical-vehicles/)
- [Tenders](https://www.optibus.com/solutions/optibus-for-tenders/)
- [Enhance Passenger Experience](https://optibus.com/enhance-passenger-experience/)
- [Reduce Costs](https://optibus.com/solutions/reduce-operating-costs/)

#### Resources

- [Blog](https://blog.optibus.com)
- [eBooks](https://www.optibus.com/resources/ebooks/)
- [Webinars](https://www.optibus.com/resources/webinars/)
- [Case Studies](https://www.optibus.com/resources/case-studies/)
- [Videos](https://www.optibus.com/resources/videos/)

#### Company

- [About](https://www.optibus.com/about-the-company/)
- [Careers](https://www.optibus.com/careers/)
- [Media](https://www.optibus.com/news-events/media-coverage/)
- [Events](https://www.optibus.com/events/)
- [Contact Us](https://www.optibus.com/about/contacts/)
- [Partnership Program](https://optibus.com/company/global-partnership-program/)
- [Academy Program](https://optibus.com/company/academy-program/)
- [Sustainability & ESG](https://optibus.com/esg/)
- [Security Whitepaper](https://optibus.com/company/security/)

#### Content

- Recentes
- Populares
- Categorias

### Lists by Topic

- [Transportation (174)](https://blog.optibus.com/tag/transportation)
- [Announcements (160)](https://blog.optibus.com/tag/announcements)
- [Public Transportation (60)](https://blog.optibus.com/tag/public-transportation)
- [Blog (55)](https://blog.optibus.com/tag/blog)
- [Corporate (49)](https://blog.optibus.com/tag/corporate)
- [Product (41)](https://blog.optibus.com/tag/product)
- [People (33)](https://blog.optibus.com/tag/people)
- [Technology (33)](https://blog.optibus.com/tag/technology)
- [Latin America (31)](https://blog.optibus.com/tag/latin-america)
- [AI (28)](https://blog.optibus.com/tag/ai)
- [Solutions (27)](https://blog.optibus.com/tag/solutions)
- [Electric Buses (26)](https://blog.optibus.com/tag/electric-buses)
- [North America (25)](https://blog.optibus.com/tag/north-america)
- [Engineering (24)](https://blog.optibus.com/tag/engineering)
- [APAC (19)](https://blog.optibus.com/tag/apac)
- [Brazil (19)](https://blog.optibus.com/tag/brazil)
- [UK (19)](https://blog.optibus.com/tag/uk)
- [Women (18)](https://blog.optibus.com/tag/women)
- [Company (17)](https://blog.optibus.com/tag/company)
- [performance (16)](https://blog.optibus.com/tag/performance)
- [Planning (14)](https://blog.optibus.com/tag/planning)
- [GTFS (13)](https://blog.optibus.com/tag/gtfs)
- [Passenger (13)](https://blog.optibus.com/tag/passenger)
- [efficiency (13)](https://blog.optibus.com/tag/efficiency)
- [Algorithms (12)](https://blog.optibus.com/tag/algorithms)
- [Driver Scheduling (12)](https://blog.optibus.com/tag/driver-scheduling)
- [driver shortage (12)](https://blog.optibus.com/tag/driver-shortage)
- [EV Charging (11)](https://blog.optibus.com/tag/ev-charging)
- [Innovation (11)](https://blog.optibus.com/tag/innovation)
- [Chile (10)](https://blog.optibus.com/tag/chile)
- [Operations (10)](https://blog.optibus.com/tag/operations)
- [case study (10)](https://blog.optibus.com/tag/case-study)
- [Driver retention (9)](https://blog.optibus.com/tag/driver-retention)
- [Drivers (9)](https://blog.optibus.com/tag/drivers)
- [Transit Agencies (9)](https://blog.optibus.com/tag/transit-agencies)
- [Transport Operators (9)](https://blog.optibus.com/tag/transport-operators)
- [values (9)](https://blog.optibus.com/tag/values)
- [Digital Transformation (8)](https://blog.optibus.com/tag/digital-transformation)
- [Future of Transportation (8)](https://blog.optibus.com/tag/future-of-transportation)
- [Passenger Information (8)](https://blog.optibus.com/tag/passenger-information)
- [Roster (8)](https://blog.optibus.com/tag/roster)
- [Timetables (8)](https://blog.optibus.com/tag/timetables)
- [Data (7)](https://blog.optibus.com/tag/data)
- [Demand response (7)](https://blog.optibus.com/tag/demand-response)
- [Automation (6)](https://blog.optibus.com/tag/automation)
- [BRT (6)](https://blog.optibus.com/tag/brt)
- [Control (6)](https://blog.optibus.com/tag/control)
- [Germany (6)](https://blog.optibus.com/tag/germany)
- [Partnerships (6)](https://blog.optibus.com/tag/partnerships)
- [Route Planning (6)](https://blog.optibus.com/tag/route-planning)
- [Scheduling (6)](https://blog.optibus.com/tag/scheduling)
- [cloud (6)](https://blog.optibus.com/tag/cloud)
- [impact (6)](https://blog.optibus.com/tag/impact)
- [Africa (5)](https://blog.optibus.com/tag/africa)
- [Depot (5)](https://blog.optibus.com/tag/depot)
- [Driver Portal (5)](https://blog.optibus.com/tag/driver-portal)
- [GTFS-Flex (5)](https://blog.optibus.com/tag/gtfs-flex)
- [India (5)](https://blog.optibus.com/tag/india)
- [Policy (5)](https://blog.optibus.com/tag/policy)
- [Santiago (5)](https://blog.optibus.com/tag/santiago)
- [Billboards (4)](https://blog.optibus.com/tag/billboards)
- [Security (4)](https://blog.optibus.com/tag/security)
- [Shuttles (4)](https://blog.optibus.com/tag/shuttles)
- [Sustainability (4)](https://blog.optibus.com/tag/sustainability)
- [digital bidding (4)](https://blog.optibus.com/tag/digital-bidding)
- [ebuses (4)](https://blog.optibus.com/tag/ebuses)
- [Break rules (3)](https://blog.optibus.com/tag/break-rules)
- [Cybersecurity (3)](https://blog.optibus.com/tag/cybersecurity)
- [Manaus (3)](https://blog.optibus.com/tag/manaus)
- [Rio de Janeiro (3)](https://blog.optibus.com/tag/rio-de-janeiro)
- [São Paulo (3)](https://blog.optibus.com/tag/são-paulo)
- [Tendering (3)](https://blog.optibus.com/tag/tendering)
- [covid-19 (3)](https://blog.optibus.com/tag/covid-19)
- [Allocation Optimization (2)](https://blog.optibus.com/tag/allocation-optimization)
- [Bidding (1)](https://blog.optibus.com/tag/bidding)
- [Demand response transport (1)](https://blog.optibus.com/tag/demand-response-transport)
- [Optibus Agent (1)](https://blog.optibus.com/tag/optibus-agent)
- [Trillium (1)](https://blog.optibus.com/tag/trillium)
- [design (1)](https://blog.optibus.com/tag/design)
- [punctuality (1)](https://blog.optibus.com/tag/punctuality)

see all

## Get transportation industry updates

(But not too often, don’t worry!)

[info@optibus.com](mailto:info@optibus.com) | [Privacy Policy](https://www.optibus.com/optibus-privacy-policy/) | [Cookies Policy](https://www.optibus.com/optibus-cookie-policy/) | [ISO 27001 certified](https://www.optibus.com/wp-content/uploads/2023/02/ISO-27001-Optibus-certification.pdf) | © Optibus 2026

<https://twitter.com/optibus> <https://www.facebook.com/Optibusltd/> <https://www.linkedin.com/company/optibus-ltd/>