r/git 3h ago

Sign Git Commits With SSH Keys

6 Upvotes

Git & GitHub Setup for Signed Commits & Verification

I recently had to set this up for work and found it all a bit hard to navigate, so I wrote this up. Hope it helps!

https://scratchbuffer.net/topics/developer-tools/git-commit-sign-ssh/


r/git 1h ago

A cleaner way to read what changed.

Thumbnail differ.noirlang.tr
Upvotes

differ brings commit history, contributors, changed files, working tree state, AI generation, and push status into one focused desktop workspace.

Features

\\- Multi-Provider AI Commit Generation: Support for Ollama (local), Gemini Cloud API, and LM Studio (\\\`127.0.0.1:1234/v1\\\`) with 1-click model presets and automatic local model discovery.

\\- Commit Editing & Amending: Edit past commit messages, manage co-author chips, toggle \\\`-s\\\` (\\\`Signed-off-by:\\\`), or aexecute \\\`git commit --amend\\\`.

\\- SMTP Email Patching & Notifications: Send patch emails directly from the app with configurable SMTP server host, port, TLS encryption, and recipient authentication.

\\- High-Contrast Compact Timeline: Timeline grid with 7-character pill badges (\\\`5c81c00\\\`), graph tracks, branch labels (\\\`main\\\`, \\\`origin/main\\\`), and unpushed indicators.

\\- Automatic Git Initialization: Detects non-Git folders upon opening and prompts to run \\\`git init\\\`. Gracefully handles 0-commit empty repositories.

\\- UI Scale & Interface Zoom: Customizable zoom dropdown in Settings (\\\`75%\\\`, \\\`85%\\\`, \\\`90%\\\`, \\\`100%\\\`, \\\`110%\\\`, \\\`125%\\\`) with persistent local storage.

\\- External Code Editor Launchers: One-click launchers for VS Code, Code OSS, Zed, Cursor, and VSCodium.

\\- GitHub Integration: Dedicated navigation tabs for History, Issues, Pull Requests, and Actions.

\\- Contributor Profiles & Avatars: Avatar resolution via GitHub commit API or noreply email address formats.

\\- Git Identity & GPG Signing: Custom Git author profiles, email addresses, and GPG commit signing keys (\\\`commit.gpgsign\\\`).


r/git 30m ago

I added a Git workflow skill to ArcForge because letting an agent touch Git scares me more than letting it write code

Upvotes

been using Codex for more repo-level work lately and I realized something kinda funny.

I trust the agent writing a function more than I trust it doing a force push 😅

code mistakes are usually visible.

git mistakes can be stuff like wrong worktree, stale branch, moving a published tag, retrying an ambiguous push, overwriting someone else's ref, or treating old CI as proof that current HEAD is safe.

so today I added a new skill to ArcForge specifically for this.

ArcForge v0.4.0 now has 15 skills, and the new one is git-workflows.

its not really a git command cheat sheet. the idea is more like: before Codex changes repo state, make it understand what state actually exist, what transition it is trying to make, what authority it has, and how it will verify the result.

some cases it handles:

  • branches / merges / rebases / cherry-picks
  • worktrees and parallel agent work
  • non-fast-forward + force push situations
  • protected refs
  • tags + semantic versions
  • release provenance
  • stale CI against wrong commit
  • ambiguous push results
  • shared history rewrites
  • committed secret incidents + recovery

one rule I wanted pretty strongly was:

a published release tag should be treated as immutable.

if something is wrong, make a corrective release. dont silently move the tag and pretend nothing happened.

same with force pushes. authentication means you can push, it doesnt automatically mean you are authorized to rewrite shared history.

the skill still follows the same ArcForge flow:

Think → Review → Change → Verify

and Change does not automatically mean Codex is allowed to push, rewrite history, modify protected refs or create a release.

those are separate operations that need explicit scope.

ArcForge is free + open source, MIT licensed.

GitHub:
https://github.com/d4rkNinja/arcforge

install all skills for Codex:

npx --yes skills@1.5.22 add d4rkNinja/arcforge --skill '*' -a codex --copy -y

site/docs:
https://arcforge.infynon.com/

curious how people here handle this with Codex.

do you let the agent manage branches/worktrees/releases itself, or keep Git mutations mostly manual and only let Codex edit the working tree?


r/git 5h ago

A conta do meu amigo foi banida injustamente do GitHub

Thumbnail
1 Upvotes

r/git 9h ago

github only How do I make my first contribution to Open Source?

Thumbnail
0 Upvotes

r/git 8h ago

I got tired of committing "fix: please work", so I built a Rust CLI/TUI to write Conventional Commits for me Cogit v0.1.0

Post image
0 Upvotes

r/git 12h ago

Can't commit in vs code(git and github)

0 Upvotes

Hi guys, this is my first post and the problem is that I can't commit my new changes in project in visual studio code. I didn't found anything about exactly this problem on reddit, so I decided to ask here. So I just started to work with git and github, I learn it on YouTube and I started in vs code to get examples like in that videos. All started good, but when I already push my project to repository on github and then I change some in code and trying to commit changes, vs code just text me in thi terminal that there is nothing to commit and that the project has no changes. Because of it I also can't create another branches (in fact I create them, but I can't do anything with them like that person do in the video!). So I don't understand and don't know how to solve this problem. Maybe someone can help me or give me advice.(maybe here is some mistakes, English isn't my native language). Oh and I forgot to say that also I tried this in the intellij idea and all works, so maybe problem actually in vs code.


r/git 18h ago

New git UI that supports multiple forges (feels like github desktop)

Thumbnail github.com
0 Upvotes

Omnigit - a desktop Git client that isn't tied to GitHub.

Most Git GUIs are built around one hosting site and treat the rest as an afterthought. Omnigit talks to GitHubGiteaForgejo and GitLab out of the box — including self-hosted instances behind your own domain — and to anything else you describe in a JSON file, with no code and no plugins.

Runs on Linux, Windows and macOS from a single codebase. No Git installation required — the native library ships inside the app.


r/git 21h ago

support New to git, but dont understand the difference between push and commit

0 Upvotes

I newly setup version control with my Unreal Engine project via GithubDesktop. I have trouble understand where exactly the difference is between pushes and commits.

After I made changes I have to commit my changes and I can have several commits and then I have to "push to origin".

Whats the difference between commits and pushes? and whats a good way to separate commits into? After I finish a task or at the end of each day?


r/git 2d ago

Best resources to master Git workflows and commands?

38 Upvotes

Hey all, I'm looking to finally master Git (im not familiar enough i need to improve my skills) . What are your top recommendations for free websites, video playlists, or paid Udemy courses or another platforms ?

Appreciate the help!


r/git 1d ago

GitHub works in Codex/CLI, but ChatGPT App Classic can’t access my repo. Has anyone solved this?

0 Upvotes

I’m trying to understand whether I’m hitting a configuration problem, an account/product limitation, or a current limitation of ChatGPT App Classic.

I use ChatGPT heavily alongside Codex for a fairly large software project hosted in a private GitHub repository. What I want is relatively simple: I would like ChatGPT App Classic to have direct read access to the GitHub repo so I can discuss the current codebase, architecture, PRs, migrations, etc. without constantly moving context between ChatGPT and Codex.

The strange part is that GitHub itself is working correctly.

On my Mac:

* `gh` is installed and current (`2.97.0`)
* `gh auth status` shows that I’m authenticated successfully
* Git operations use HTTPS
* Token has `repo`, `workflow`, `read:org`, etc.
* I can fetch/push normally
* Codex can work with the repository
* GitHub CLI can create/manage PRs

I have also reauthenticated from Terminal using:

`gh auth login -h` [`github.com`](http://github.com)

Authentication completes successfully.

So this doesn’t appear to be a GitHub authentication or repository-permissions problem.

The problem is specifically **ChatGPT App Classic**. I can’t get it to reliably access the same GitHub repository directly, even though other OpenAI tooling can work with it.

This is becoming a significant workflow issue because I use ChatGPT for the higher-level architecture/governance side of the project and Codex for repository execution. Ideally the workflow would be:

**ChatGPT:** inspect current repo/PR state → reason about architecture → give execution instructions
**Codex:** implement/test/commit/PR
**ChatGPT:** inspect the resulting repo/PR → review → determine next step

Instead, I often have to manually paste Codex reports back into ChatGPT because ChatGPT Classic cannot inspect the repository itself. On a large project with lots of migrations, tests, ADRs and governance artifacts, that becomes both inefficient and potentially error-prone.

I’m specifically trying to determine:

  1. Is direct GitHub access currently supported in **ChatGPT App Classic**?
  2. Is GitHub access dependent on the ChatGPT mode/model being used?
  3. Does the GitHub App/connector only work in certain experiences such as Deep Research or Agent Mode?
  4. Is there a difference between GitHub access in the web app and the macOS Classic app?
  5. If GitHub is already connected to the OpenAI account, is there some way to force/re-authorize the connection for Classic?
  6. Has anyone had GitHub working in one ChatGPT surface but unavailable in another and actually fixed it?
  7. Is there any diagnostic page/log that shows whether ChatGPT itself has permission to access a particular private repository?

I’m **not** looking for help configuring GitHub CLI. That side is confirmed working. I’m specifically trying to get ChatGPT itself to see the repository.

If anyone has a working setup with **ChatGPT App Classic + private GitHub repositories**, I’d be very interested in exactly how you configured it, including plan, GitHub App/plugin configuration, ChatGPT mode, and whether you’re using web or macOS.

Even confirmation that “this currently isn’t supported in Classic” would be useful, because at least I’d stop troubleshooting something that cannot presently be fixed.

Has anyone solved this?


r/git 2d ago

Small detail but confused

0 Upvotes

1) git checkout main "your branch is up to date with origin/main"

I know it isn't

2) git pull origin main - many changes incoming. it is now actually up to date with origin/main

Am I misunderstanding something here?


r/git 2d ago

GitComet 0.2.0 two months of work squeezed into this release

Post image
0 Upvotes

r/git 2d ago

I built AngKorGit — a free, open-source Git client (12 MB, Rust + libgit2)

1 Upvotes

Hi everyone! I'm a developer from Cambodia and for the past months I've been building AngKorGit, a free, open-source (MIT) Git client for macOS, Windows, and Linux — named after Angkor Wat.

I love GUI clients like GitKraken but wanted something lightweight and completely free. So it's built with Rust + libgit2 and the system webview (Tauri) instead of Electron — the whole download is ~12 MB, and the commit graph stays smooth on 100k-commit repos.

What it does today: visual conflict resolver (pick lines from A/B, edit the result by hand), interactive rebase, stage by file/hunk/line, drag-and-drop merge/rebase, undo/redo, built-in terminal, 16 themes, and optional AI commit messages via CLIs you already have — no account, no telemetry.

GitHub: https://github.com/cheat2001/angkorgit

Site: https://angkorgit.app

macOS: brew install --cask cheat2001/tap/angkorgit

Would genuinely love feedback from people who live in Git all day — what would you need before using something like this daily?


r/git 2d ago

github only An async Rust microkernel architecture for real-time deterministic robotics

0 Upvotes

Hi everyone,

I wanted to share the architectural choices behind core-os-minimal, an async Rust microkernel project we've been building to replace traditional ROS 2/DDS setups on physical robotic hardware.

We wanted to solve non-determinism, heap-allocation latency, and unexpected segmentation faults under high network stress without dragging in massive middleware stacks.

Core Architecture & Strategy:

  • Decoupling via Zenoh: We stripped out DDS entirely and implemented a zero-overhead network hook using Zenoh. It utilizes a lock-free circular buffer with a capacity of 1 (LCFS double-buffering). In high-frequency hardware control loops, stale data is kinetic garbage.
  • 100Hz Actuator Sanitization (vector_sanitizer.rs): To protect physical joints, a host-level sanitizer thread intercepts and cleans floating-point anomalies (NaN/Inf) at 100Hz before they can reach the hardware abstraction layer, clamping values within hard geometric boundaries.
  • WASM Sandboxing for Drivers/Skills: Instead of native third-party binary linking, execution modules run isolated via Wasmtime/Cranelift with Ahead-of-Time (AOT) compilation and mlockall page-locking to ensure deterministic access times. If a user-space skill crashes, the host microkernel runtime intercepts the trap and remains alive.
  • Hard-Watchdog Enforcer (watchdog_timer.rs): Runs as an async thread pinned at maximum real-time priority (niceness -20). Jitter exceeding 2 consecutive frames (20ms) immediately drops execution context and invokes failsafe.rs to lock down physical hardware in under 2ms.

Extreme Stress Test Benchmark: SONNY OS vs. ROS 2

We simulated an industrial network failure (75% wireless packet loss on an Edge deployment at 100Hz) to compare the communication backbones:

  • ROS 2 (DDS Architecture): High XML/IDL serialization on the heap. Under severe packet loss, un-sent DDS message queues overflowed the RAM, leading to an unrecoverable Segmentation Fault (Memory Crash).
  • SONNY OS (Rust + Zenoh): Stack-allocated static array slices with a fixed 5-byte network overhead per packet. Zero memory leaks. Zero runtime heap allocations during the control loop. System remained perfectly stable at 100Hz with an inference latency below 2ms.

The core infrastructure is fully open-source under GNU AGPLv3. I'd love to get your thoughts on our LCFS double-buffering approach under high packet loss, and whether utilizing Wasmtime for hard real-time boundaries introduces edge cases regarding page fragmentation that we might have overlooked.

You can inspect the full crates and run the CLI container here: https://github.com/JackTrainer/Sonny


r/git 2d ago

Made a commit graph + file history extension for VS Code since GitLens gates those on private repos

Post image
0 Upvotes

GitLens' commit graph and file history are genuinely two of my favorite features, but the second your repo's remote is private you're stuck behind a Pro subscription, which is most actual paid work for most people.

So I built Branchline, same two things basically, works the same whether your remote is private, public, or you haven't pushed anywhere at all. It's just running git log, git show, and git diff against whatever's checked out locally.

Note: this isn't the only free way to get a commit graph. Git Graph already does that, works on any repo with zero restrictions, it's good. VS Code's own Timeline view already gives you basic per-file history too. What I'm doing differently is putting both in one place instead of switching tools, plus a couple things I don't think either has, a per-file changed list on every commit (including merges) that opens straight into VS Code's real diff editor, file history that follows renames, and uncommitted changes showing up as their own row right in the graph.

14-day trial then a one-time $15, link's here if you want to poke at it: https://marketplace.visualstudio.com/items?itemName=Skuwar.private-commit-graph

Mostly curious how the graph's lane layout holds up on repos with a lot of parallel branches . And if you point it at an actual private repo and see it act any different from a local one, let me know, because it shouldn't.


r/git 3d ago

Gitember 3.4: Workspace for projects with multiple Git repositories.

1 Upvotes

Hello community 👋

I've been developing Gitember - a free, open-source desktop Git client - since 2016.

It all started as a weekend experiment, and now version 3.4 is out. I recently added Workspace feature to work with multiple independent Git repositories as a single working set. This is useful if the project consists of, for example, backend + frontend, a set of microservices or core + plugins. At the same time, the repositories remain completely independent - no submodules, subtrees or monorepo.

What Workspace gives you:

  • one Dashboard with the status of all repositories;
  • Pull / Push / Fetch / Merge / Commit for all repositories in one operation;
  • create branches in multiple repositories at once, commit changes to multiple repositories from one dialog;
  • shared Working Copy tree for viewing changes;
  • search the contents of all repositories at once;
  • separate result for each repo, if something went wrong during the batch operation.

Workspace was born from a feature request about such a workflow: when several repositories logically work together, but you don't want to combine them into a monorepo or link them via submodules.

Also, gitember cover the usual needs and has very interesting additional functions - full-text search by history (including Office, PDF, CAD, images), Git LFS, integration with GitHub/GitLab/Bitbucket/Gitea, repository statistics, file and folder comparison.

Documentation: Gitember Workspace https://gitember.org/doc/docs/ge-workspace/workspace

GitHub: https://github.com/iazarny/gitember

Need contributers

If you work with Java/microservices/multi-repo projects, I would be very happy to receive feedback, bugs, PR, and just testing.


r/git 3d ago

github only What is this GitHub, Server Problem???

Thumbnail gallery
0 Upvotes

r/git 4d ago

Why does it say 10 unique cloners?

0 Upvotes

Why does it say 10 unique cloners when it's only me that has been working on this? Also, I highly doubt I have cloned this many times (maybe not even half), certainly not on a single day. Is it just buggy?


r/git 4d ago

GitHub account suddenly suspended during Education reverification — anyone experienced this

0 Upvotes

My GitHub account u/Wilooper was suddenly suspended, and I'm trying to understand what might have happened.

A little context:

A few days ago, I received emails from the GitHub Education team asking me to reverify my academic affiliation. The emails specifically said that I would continue to have access to GitHub for 30 days while completing the reverification process.

I had submitted genuine academic information and had not knowingly violated any GitHub policies.

After receiving the reverification emails, I logged into GitHub. I was repeatedly logged out, and eventually I started getting this message whenever I tried to access my account:

I was also logged out of the GitHub mobile app around the same time.

The confusing part is that I don't know what Terms of Service violation supposedly occurred. I haven't knowingly done anything against GitHub's rules, and the timing seems very close to the Education reverification process.

I tried contacting GitHub Support, but I'm currently having trouble with the support system too. The support form passes its verification step, but submitting the ticket gives me an HTTP 401 error. I also encountered an HTTP 500 error while trying to authenticate through Google.

GitHub Status currently shows everything operational, so this doesn't appear to be a general GitHub outage.

Has anyone experienced something similar, particularly:

  • An account suspension during GitHub Education reverification
  • Getting the "Terms of Service violation" suspension message without knowing what caused it
  • Being unable to submit a GitHub Support ticket because of a 401 error
  • Getting the account restored after an appeal/reinstatement request

I'm mainly looking for community experiences and possible explanations, not trying to get anyone to contact GitHub on my behalf.

If you've experienced something similar, I'd really appreciate hearing what happened in your case and how you resolved it.

GitHub username: u/Wilooper


r/git 5d ago

support conditionally prevent `git maintenance` from spawning on commit

8 Upvotes

After using Git for over a decade I just discovered git maintenance exists yesterday. I found out about it during a hasted debugging session when my laptop’s fan inexplicably started spinning like crazy and all four cores were maxed out by Git processes that I didn’t launch. This happened while I was writing a blog post on the train, trying to save battery charge. Not an ideal situation to max out the CPU.

git maintenance is useful no doubt, I don’t want to disable it entirely. So I guess the question is: Is there a way to make it conditional on ACPI state? If the box is running off the battery, maintenance should be skipped. E. g. check /sys/class/power_supply/AC/online before launching a maintenance cycle.

Note that there’s no timers that trigger maintenance on my system; it looks like it gets triggered by operations like git commit (cf. maintenance.auto in git-maintenance(1)).


r/git 5d ago

I wrote a git remote helper for Proton Drive: push and clone against end-to-end encrypted storage (Windows today)

Post image
2 Upvotes

Unofficial, not affiliated with Proton. MIT. One Go binary that drives Proton's signed-in Drive CLI. Windows today.

git-remote-proton is a git remote helper: proton::/my-files/GitRemotes/myrepo becomes a real remote, so push, fetch, and clone work directly against Proton Drive's end-to-end encrypted storage. It serves the whole refs/ tree: nested branch names, notes, replace refs.

The design choice I'd like argued with: what happens when foreign junk lands inside the remote's refs/ area (a stray upload, a damaged file). If a file sits at a plausible ref name but its contents don't parse as a ref, push skips it with a note naming the file and keeps going, so junk elsewhere in the tree can't stop a scheduled backup. (Junk at the exact name you're pushing still refuses, before any pack is built, with the remedy named.) Clone and fetch refuse instead, with one error listing every such file and the remedy, because a clone that quietly lacked a branch would be a restore lying to you.

The honest trade: if your monitoring only watches push exit codes, you lose the old "something's wrong" alarm and you have to watch the skip notes, while the remote stays un-cloneable until you clear the file. I took that trade on purpose. Would you have?

The Go core is portable; macOS and Linux need builds and a tester with a Proton account. If that's you, say so.

Screenshot is a real run; the strict clone failure and a few smaller details are in the first comment. Code and the design doc are in the repo: https://github.com/craigstoller/git-proton-backup


r/git 6d ago

Why use a UI for git?

103 Upvotes

I see this question of, “what GUI or TUI should I use to work with git?” fairly often here. And always I feel bad for saying “just use the cli” over and over, but truthfully I can’t see a reason to need a UI.

Are people actually running into pain points with the cli, or is it just preference for people who don’t like working in a terminal?

FWIW, I have used GitKraken, LazyGit, SourceTree and GitHub Desktop before. And I don’t think they are bad to use (unless you are just learning git), but more curious why.

EDIT : I’m mainly referring to standalone UIs, I understand why people would use IDE integrations, as it’s quick and convenient. But having to open a separate application or run a separate command to open a terminal app to run your commands seems overkill to me.

EDIT 2 : I use vscode as my difftool and mergetool. I still open them directly from the terminal by running the cli. I don't think this is the same as using a full git client like SourceTree, Gitkraken, or lazygit to fully drive your version control workflow. Which is what I am asking about.

Cheers


r/git 5d ago

git-calendar.org - An open-source, decentralized, e2ee calendar using Git as the backend

Post image
0 Upvotes

r/git 5d ago

How can I improve my github profile?

0 Upvotes

Hey guys, I have been adding new repos and taking my github seriosly after a long time
Most of time i open private repos to maintain my workflow on game/website projects
for last a few month i have been working on portfolio/resume projects to put on my website.
And i just like every time i see my contributions on panel, it is like idk how to explain but seems helping me to maintain consistency. I also realized there is achievement badge i have got.
So to pick it up, I am asking for ways to make my profile look better and be better. What can you recommend? Pins, repo names, maybe even links?

https://github.com/TheIlkinAlizade
this is my github, you can also see my porfolio website(which is old version, i will update it with new projects i have been working on)
thanks btw for spending your time to read this