A year of making you more productive using Git in Visual Studio

Jessie Houghton

As we reflect on the past year, it’s clear that the journey of enhancing our Git tooling has been exciting! Our team has been dedicated to increasing GitHub integration, boosting productivity, and addressing valuable feedback from Developer Community. Today, we’re thrilled to share the milestones we’ve achieved and the enhancements that are making your Git experience in Visual Studio smoother and more intuitive. We hope this post can summarize the updates over the past year, and help you find and try out any updates you may have missed.

More GitHub Integration

Because we can partner closely with GitHub, we’re hoping to continue building innovative integrations that make working with GitHub a breeze. This year, we brought GitHub issues right into the context of your commit messages with issue search. We helped you avoid switching context into the browser with create a pull request in Visual Studio. Finally, we leveraged the power of Copilot to write the first draft of your commit messages for you. All these integrations also work with Azure DevOps repositories as well.

Git changes window with GitHub issue search

Create a pull request

Image AI Generated Commit

Smoothing the Inner Loop

Productivity goes beyond making you faster. As this article from GitHub mentions, developer productivity also includes “the ability to stay focused on the task at hand, make meaningful progress, and feel good at the end of a day’s work.”

We took this seriously, making both small improvements and adding brand new features to keep you focused and efficient with the inner loop – the tasks you do every day. We improved your workflows with the keyboard, interpreting the Git graph and history, referencing the differences between files or versions, preparing for merge, creating new branches, and committing. Learn more about each improvement from their respective blog posts linked below.

Keyboard shortcuts

Merge conflict warning

Stage and commit during build

Image 17 6 git log demo 2 1

branch rename enhancements

unstage

Multi-branch graph

Compare files

Summary difference view option

Other Developer Community Improvements and Fixes

In addition to some of the new features that came from community suggestions above, the following are some of the other highly voted suggestions and bug fixes from the past year.

Looking Ahead

We encourage you to explore these updates in the latest versions of Visual Studio. We’re proud of the progress we’ve made and are excited for what the future holds. Thank you for being a part of this journey, and here’s to another year of innovation and productivity!

As we continue to innovate and refine our Git tooling, we remain committed to listening to your feedback and delivering features that enhance your development experience. You can share with us via Developer Community: report any bugs or issues via report a problem and share your suggestions for new features or improvements to existing ones.

Stay connected with the Visual Studio team by following us on YouTube, Twitter, LinkedIn, Twitch and on Microsoft Learn.

4 comments

Discussion is closed. Login to edit/delete existing comments.

  • Alexandre Grigoriev 0

    My 2c on these changes:

    1.Stage and Commit During Build: Not very useful to me. What would be more useful is to automatic staging all changes into a temporary index (git –index-file=Temp.index add .), then make a temporary commit, similar to what a stash does internally, but without undoing all changes (git –index-file=Temp.index write-tree; git commit-tree), and set this commit ID to the build environment. The build script would be able to refer to this exact snapshot, or embed the commit ID into the binary. You can also write a line into the reflog upon a successful build.

    (When I was doing kernel driver development, I was using Git repository as the source server. I had a script to embed the source file information into a driver executable, and a script for WinDBG to fetch the source blobs by their SHA1 from Git repository).

    2. Staging from diff still has bug: The wire frame for large added/deleted areas sometimes get out of sync. Also, the wire frames+button often stop showing, need to open another diff window. This happens most likely because of ill-conceived “optimization” – pre-calculated view position for those areas. Which doesn’t make sense, because the diff colors are calculated on the fly, which means the diff areas can be figured out from the diff itself. This was reported long time ago, but seems not pass the treage.

    3. Multi-branch graph is pretty useful.
    What would make the repository view better: better width for commit (actually author) date column, and/or remembering the column width. Note that a branch history window has much more sensible width for this column.

    History view of any given branch would also benefit if arranging the lines in parent order: first parent lineage always to the left. This will help to visualize the merged lineage vs main history.

    4. Git log speed improvements are supposedly implemented. But it doesn’t seem to have implement the most obvious would be most helpful improvement: cache the commits! It appears it has to read those commits over and over.

    • Alexandre Grigoriev 0

      Also: Why multi-repository support doesn’t automatically open the submodules? It’s sorely needed.

  • Gianluca Mariani 0

    Hello Jessie,
    thanks for all of this feature. I’m a little single developer but for me clean code and implementation of new features and technologies are more than a good practice…it’s a life philosophy. Now I try to implement the reference GitHub issues inside Visual Studio without no success. Simply the “#” doesn’t appear and if I try to put “#” in the message nothing appear. If I go to the menù “Git-GitHub” the voice “View Pull request” is grayed out. Please note that I have 18 projects in my solution with 7 different repositories (Visual could manage more than 1 repository…fantastic!). At the beginning when I create the solution I add the git init command by hand in the powershell…maybe could be this thing even if permit me to use GitHub as source control system doesn’t permit to manage the GitHub iusses?
    The most strange thing is that if I open a new Visual Studio instance and I clone the existing repository from GitHub (with exactly the same files) it appears without any problem but it take only one repository and not 7 (infact I can’t start my application because some projects aren’t load). Can you tell me how to solve this problem?
    My Visual Studio version is: 17.8.3

    • Jessie HoughtonMicrosoft employee 1

      Hi Gianluca, I’m sorry to hear some of these features aren’t working for you. Can you help us track and resolve this issue by using the Send Feedback > Report a Problem buttons in the upper right corner of Visual Studio? It’ll share some logs with us and take you to https://developercommunity.visualstudio.com/VisualStudio where we can engage with you to solve the problem.

Feedback usabilla icon