Supported Capabilities

Here is a non-comprehensive table of git commands and features whose equivalent is supported by go-git.

FeatureStatusNotes
config
configReading and modifying per-repository configuration (.git/config) is supported. Global configuration ($HOME/.gitconfig) is not.
getting and creating repositories
initPlain init and --bare are supported. Flags --template, --separate-git-dir and --shared are not.
clonePlain clone and equivalents to --progress, --single-branch, --depth, --origin, --recurse-submodules are supported. Others are not.
basic snapshotting
addPlain add is supported. Any other flag aren't supported
status
commit
reset
rm
mv
branching and merging
branch
checkoutBasic usages of checkout are supported.
merge
mergetool
stash
tag
sharing and updating projects
fetch
pullOnly supports merges where the merge can be resolved as a fast-forward.
push
remote
submodule
inspection and comparison
show
log
shortlog(see log)
describe
patching
apply
cherry-pick
diffPatch object with UnifiedDiff output representation
rebase
revert
debugging
bisect
blame
grep
email
am
apply
format-patch
send-email
request-pull
external systems
svn
fast-import
administration
clean
gc
fsck
reflog
filter-branch
instaweb
archive
bundle
prune
repack
server admin
daemon
update-server-info
advanced
notes
replace
worktree
annotate(see blame)
gpg
git-verify-commit
git-verify-tag
plumbing commands
cat-file
check-ignore
commit-tree
count-objects
diff-index
for-each-ref
hash-object
ls-files
merge-base
read-tree
rev-list
rev-parse
show-ref
symbolic-ref
update-index
update-ref
verify-pack
write-tree
protocols
http(s):// (dumb)
http(s):// (smart)
git://
ssh://
file://
custom
other features
gitignore
gitattributes
index version
packfile version
push-certs