Skip to content

Commit 6d30ff3

Browse files
author
MacroMan
committed
Initial commit: git worktree terminal manager
WPF desktop application for managing git worktrees with embedded terminal panes, file explorer, and VS Code integration. Includes CI/CD pipeline for automated releases via GitHub Actions.
0 parents  commit 6d30ff3

19 files changed

Lines changed: 2244 additions & 0 deletions

.github/workflows/release.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
runs-on: windows-latest
14+
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
19+
- name: Setup .NET
20+
uses: actions/setup-dotnet@v4
21+
with:
22+
dotnet-version: '8.0.x'
23+
24+
- name: Extract version from tag
25+
id: version
26+
shell: bash
27+
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
28+
29+
- name: Restore dependencies
30+
run: dotnet restore tmuxlike/tmuxlike.csproj
31+
32+
- name: Publish
33+
run: >
34+
dotnet publish tmuxlike/tmuxlike.csproj
35+
-c Release
36+
-r win-x64
37+
--self-contained
38+
-p:PublishSingleFile=true
39+
-p:IncludeNativeLibrariesForSelfExtract=true
40+
-p:Version=${{ steps.version.outputs.VERSION }}
41+
-p:AssemblyVersion=${{ steps.version.outputs.VERSION }}.0
42+
-p:FileVersion=${{ steps.version.outputs.VERSION }}.0
43+
44+
- name: Rename executable
45+
shell: bash
46+
run: mv tmuxlike/bin/Release/net8.0-windows7.0/win-x64/publish/tmuxlike.exe tmuxlike/bin/Release/net8.0-windows7.0/win-x64/publish/git-worktree-terminal.exe
47+
48+
- name: Create GitHub Release
49+
uses: softprops/action-gh-release@v2
50+
with:
51+
generate_release_notes: true
52+
files: tmuxlike/bin/Release/net8.0-windows7.0/win-x64/publish/git-worktree-terminal.exe

.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Build output
2+
bin/
3+
obj/
4+
5+
# Visual Studio
6+
.vs/
7+
*.user
8+
*.suo
9+
*.csproj.user
10+
11+
# NuGet
12+
packages/
13+
14+
# Publish output
15+
*.exe
16+
!publish.bat
17+
18+
# OS files
19+
Thumbs.db
20+
Desktop.ini
21+
.DS_Store
22+
23+
# Rider / JetBrains
24+
.idea/
25+
*.sln.iml

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
6+
7+
## [1.0.0] - 2026-02-17
8+
9+
### Added
10+
11+
- Worktree sidebar listing all git worktrees with branch names and paths
12+
- Embedded ConPTY terminal with PowerShell, pwsh, and cmd support
13+
- Split terminal panes — up to 4 per worktree in a tiled grid layout
14+
- File explorer panel with lazy-loaded directory tree
15+
- VS Code integration — open worktree folders or individual files
16+
- Worktree creation dialog with auto-generated branch and path
17+
- Worktree deletion with confirmation
18+
- Terminal session preservation when switching between worktrees
19+
- Keyboard shortcuts for all major actions
20+
- Dark theme inspired by VS Code
21+
- Self-contained single-file executable publishing
22+
- GitHub Actions CI/CD pipeline for automated releases
23+
24+
[1.0.0]: https://github.com/MacroMan/git-worktree-terminal/releases/tag/v1.0.0

CONTRIBUTING.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Contributing to Git Worktree Terminal
2+
3+
Contributions are welcome! Here's how to get started.
4+
5+
## Development Setup
6+
7+
### Prerequisites
8+
9+
- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
10+
- Windows 10 version 1809 or later
11+
- Git
12+
- Visual Studio 2022 or VS Code with C# Dev Kit
13+
14+
### Building
15+
16+
```bash
17+
git clone https://github.com/MacroMan/git-worktree-terminal.git
18+
cd git-worktree-terminal
19+
dotnet build tmuxlike/tmuxlike.csproj
20+
```
21+
22+
### Running
23+
24+
Run from inside any git repository:
25+
26+
```bash
27+
dotnet run --project tmuxlike/tmuxlike.csproj
28+
```
29+
30+
## Workflow
31+
32+
1. Fork the repository
33+
2. Create a feature branch from `main`: `git checkout -b feature/my-feature`
34+
3. Make your changes
35+
4. Test by building and running the app in a git repository
36+
5. Commit with a clear message describing the change
37+
6. Push to your fork and open a pull request
38+
39+
## Pull Request Guidelines
40+
41+
- Keep PRs focused — one feature or fix per PR
42+
- Update `CHANGELOG.md` under an `[Unreleased]` section
43+
- Ensure the project builds without warnings: `dotnet build tmuxlike/tmuxlike.csproj`
44+
- Describe what the change does and why in the PR description
45+
46+
## Code Style
47+
48+
- Follow standard C# conventions
49+
- Use file-scoped namespaces
50+
- Use `var` where the type is obvious
51+
- Keep methods short and focused
52+
- Add XML documentation comments (`/// <summary>`) to public types and members
53+
54+
## Reporting Issues
55+
56+
- Use [GitHub Issues](https://github.com/MacroMan/git-worktree-terminal/issues)
57+
- Include your Windows version and .NET SDK version
58+
- Describe what you expected vs. what happened
59+
- Include steps to reproduce if possible

0 commit comments

Comments
 (0)