burak29/git-natural-language-commands
Git Natural Language Commands A dataset mapping English natural-language instructions to their corresponding git commands, intended for training and evaluating models that translate user intent into safe, correct shell commands. Disclaimer: This dataset was generated using Large Language Models (LLMs). The examples have not been manually verified against real-world usage and may contain errors, inconsistencies, or non-canonical phrasings. Use with appropriate caution.… See the full description on the dataset page: https://huggingface.co/datasets/burak29/git-natural-language-commands.
Git Natural Language Commands
A dataset mapping English natural-language instructions to their corresponding git commands, intended for training and evaluating models that translate user intent into safe, correct shell commands.
Disclaimer: This dataset was generated using Large Language Models (LLMs). The examples have not been manually verified against real-world usage and may contain errors, inconsistencies, or non-canonical phrasings. Use with appropriate caution.
Dataset Summary
- Rows: 1,050
- Languages: English (
en) - Format: CSV with two columns
- Coverage: Common git workflows — init, clone, add/commit, push/pull/fetch, branching, checkout/switch, log/diff/show, blame, merge, rebase, cherry-pick, revert, reset, restore, stash, tags, clean, reflog, grep, bisect, worktrees, submodules, archive/patches, config, remotes, and more.
- Note: All pairs are based on the latest Git CLI syntax (e.g.,
git switch/git restorerather than older overloadedgit checkoutusage where applicable).
Intended Usage
This dataset is designed for:
- Fine-tuning or evaluating LLMs that convert natural-language instructions into shell commands (text-to-command / NL2Bash-style tasks).
- Building safe command-suggestion features for developer tools, terminals, or assistants.
- Benchmarking text2text models on intent-to-CLI translation.
- Prototyping intent classifiers that map user requests to specific git subcommands.
Example training objective: given en_natural_language as input, generate corresponding_git_command as output.
Dataset Format
CSV file (git_nl_command_test.csv) with a header row and two quoted string columns:
Example rows:
Example Usage
from datasets import load_dataset
ds = load_dataset("burak29/git-natural-language-commands", split="test")
print(ds[0])
# {'en_natural_language': 'push my changes', 'corresponding_git_command': 'git push'}
for ex in ds.select(range(3)):
print(f"{ex['en_natural_language']!r} -> {ex['corresponding_git_command']!r}")Limitations
- LLM-generated: As stated in the disclaimer, examples were produced with LLMs and may include phrasing or command inaccuracies; always review predictions before executing them.
- English only: No multilingual coverage.
- Single-reference: Each instruction maps to one canonical command; many git actions have multiple valid invocations that are not represented.
- No context: Instructions assume a generic repository state; real-world execution may require arguments (paths, hashes, remotes) that are not inferable from the input.
- Dangerous commands included: Pairs contain destructive commands (e.g.,
git reset --hard,git push --force,git clean -fdx). Any system consuming this data should include safety guardrails and user confirmation before executing commands. - Not executable as-is in all environments: Some examples reference placeholder repos, users, or commits (
user/repo,abc1234). - Shell constructs: A small number of rows (~24) embed shell syntax (pipes,
&&,$(...),xargs) around git commands rather than being single git invocations.
License
This dataset is released under the MIT License. See LICENSE for the full text.
Citation
If you use this dataset, please cite it as:
@dataset{git_natural_language_commands,
author = {burak29},
title = {Git Natural Language Commands},
year = {2026},
url = {https://huggingface.co/datasets/burak29/git-natural-language-commands},
note = {Generated using LLMs}
}