{"id":27554288,"url":"https://github.com/siguici/gat","last_synced_at":"2026-04-18T09:33:03.061Z","repository":{"id":287911917,"uuid":"966192091","full_name":"siguici/gat","owner":"siguici","description":"🧭 Git Backdated - A CLI for Git-native operations with custom dates.","archived":false,"fork":false,"pushed_at":"2025-04-14T23:36:38.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T04:31:51.639Z","etag":null,"topics":["backdated-commits","gat","git","git-backdated"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/siguici.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-14T14:42:43.000Z","updated_at":"2025-04-14T23:36:11.000Z","dependencies_parsed_at":"2025-04-14T16:30:47.981Z","dependency_job_id":"dc53ff50-da0f-447d-b9f5-1fe4e8130d38","html_url":"https://github.com/siguici/gat","commit_stats":null,"previous_names":["siguici/gat"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/siguici/gat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siguici%2Fgat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siguici%2Fgat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siguici%2Fgat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siguici%2Fgat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siguici","download_url":"https://codeload.github.com/siguici/gat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siguici%2Fgat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31963966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backdated-commits","gat","git","git-backdated"],"created_at":"2025-04-19T14:30:35.188Z","updated_at":"2026-04-18T09:33:03.026Z","avatar_url":"https://github.com/siguici.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🕰️ gat\n\n\u003e **Timetravel through your Git history**\n\u003e Backdate your commits, merges, tags, cherry-picks and more —\nsafely, consistently, and with style.\n\n---\n\n## ✨ Overview\n\n🧭 `gat` is a flexible and extensible toolkit\nfor applying custom dates to Git-native operations.\n\nWith full support for relative/absolute/human-friendly dates, seamless Git integration,\nand a clear modular structure, it lets you:\n\n- 🕳️ Write history like a time traveler\n- 🧽 Clean up messy timelines\n- 📆 Simulate workflows for testing, demos, and storytelling\n\n---\n\n## ⚡ Installation\n\n### One-liner via `curl`\n\n```bash\ncurl -s https://raw.githubusercontent.com/siguici/gat/main/install.sh | bash\n```\n\n\u003e Installs `gat` into `~/.local/bin` (or globally if run with `sudo`).\n\n### Manual Installation\n\n```bash\ngit clone https://github.com/siguici/gat.git\ncd gat\n./install.sh\n```\n\n---\n\n## 🧠 Philosophy\n\n`gat` wraps your existing Git commands while allowing you to:\n\n- Specify the **date** in flexible formats\n- Use **natural aliases** (like `yesterday`, `last week`, `-2d`, `+1d`)\n- Apply dates to commits, merges, tags, cherry-picks, and more\n- Keep **your current time** (or override it)\n\nNo history rewriting. No rebase shenanigans. Just scoped, intentional backdating.\n\n---\n\n## 📦 Command Syntax\n\n```bash\ngat \u003cdate\u003e \u003cgit-subcommand\u003e [options]\n```\n\n### Example Usages\n\n```bash\n# Commit with yesterday's date and current time\ngat yesterday commit -am \"Fix for Monday\"\n\n# Commit from 3 days ago\ngat -3d commit -m \"Old feature work\"\n\n# Merge a branch with custom date\ngat 2024-03-21 merge feature-branch\n\n# Tag with relative date\ngat -1d tag v1.0.1 -m \"Hotfix release\"\n\n# Cherry-pick a commit with date override\ngat -2d cherry-pick abc123\n```\n\n---\n\n## 🗓️ Date Syntax\n\n| Format        | Meaning                            | Examples                |\n|---------------|------------------------------------|-------------------------|\n| `-1d`, `+3d`  | Relative day offset                | `-2d` (2 days ago)      |\n| `0`           | Today                              | `gat 0 commit ...`      |\n| `yesterday`   | Shortcut for `-1d`                 | `gat yesterday ...`     |\n| `tomorrow`    | Shortcut for `+1d`                 | `gat tomorrow ...`      |\n| `YYYY-MM-DD`  | Absolute date                      | `gat 2023-12-31 ...`    |\n| `now`         | Use current date \u0026 time            | `gat now ...`           |\n| `--time`      | Time override (HH:MM[:SS])         | `--time 14:30`          |\n\n### 🧠 Defaults\n\n- If no `--time` is passed: uses current time\n- All Git commands supported: `commit`, `merge`, `tag`, `cherry-pick`, etc.\n- Aliases auto-recognized: `-1`, `-1d`, `yesterday` are equivalent\n\n---\n\n## ✅ Supported Git Commands\n\n| Command        | Description                            |\n|----------------|----------------------------------------|\n| `commit`       | Date-aware commit                      |\n| `merge`        | Merge with custom date                 |\n| `tag`          | Annotated tag with date                |\n| `cherry-pick`  | Cherry-pick commit with new date       |\n| `revert`       | Revert commit with specified date      |\n\n---\n\n## 🛠️ Core Options\n\n| Option          | Description                           |\n|------------------|----------------------------------------|\n| `--time`         | Set a custom time (e.g., `--time 08:30`) |\n| `--debug`        | Show resolved date/time                |\n| `--dry-run`      | Print command but don’t execute         |\n| `--no-color`     | Disable colored output (CI-friendly)   |\n\n---\n\n## 📂 Project Structure\n\n```tree\ngat/\n├── bin/\n│   ├── gat         # Git CLI interface\n│   └── utils.sh   # Shared shell logic\n├── install.sh      # One-liner installer\n├── tests/          # Integration tests\n├── README.md       # This file\n└── LICENSE         # MIT License\n```\n\n---\n\n## 📚 Examples\n\n### Commit with absolute date\n\n```bash\ngat 2023-12-25 commit -am \"🎄 Christmas commit\"\n```\n\n### Tag with `yesterday` alias\n\n```bash\ngat yesterday tag v1.2.3 -m \"Hotfix pushed\"\n```\n\n### Merge with exact time\n\n```bash\ngat 2024-03-01 merge feature --no-ff --time 10:45\n```\n\n### Preview command without running\n\n```bash\ngat -2d commit -am \"Check this\" --dry-run\n```\n\n---\n\n## 🔒 License\n\n[MIT License](./LICENSE.md) - Open source and free to use.  \nCrafted with care by [@siguici](https://github.com/siguici)\n\n---\n\n## 👥 Contributing\n\n- ⭐ Star the repo\n- 🐛 Report bugs\n- 💡 Suggest features\n- 🙌 PRs welcome!\n\n---\n\n\u003e \"History is written by the victors. Git history is written by you.\" — `gat`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiguici%2Fgat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiguici%2Fgat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiguici%2Fgat/lists"}