Files

5.5 KiB

Supported Capabilities

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

Feature Status Notes
config
config ✔ Reading and modifying per-repository configuration (.git/config) is supported. Global configuration ($HOME/.gitconfig) is not.
getting and creating repositories
init ✔ Plain init and --bare are supported. Flags --template, --separate-git-dir and --shared are not.
clone ✔ Plain clone and equivalents to --progress, --single-branch, --depth, --origin, --recurse-submodules are supported. Others are not.
basic snapshotting
add ✔ Plain add is supported. Any other flags aren't supported
status ✔
commit ✔
reset ✔
rm ✔
mv ✔
branching and merging
branch ✔
checkout ✔ Basic usages of checkout are supported.
merge ✖
mergetool ✖
stash ✖
tag ✔
sharing and updating projects
fetch ✔
pull ✔ Only 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 ✖
diff ✔ Patch 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 ✔ Calculates the merge-base only between two commits, and supports --independent and --is-ancestor modifiers; Does not support --fork-point nor --octopus modifiers.
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:// partial Warning: this is not pure Golang. This shells out to the git binary.
custom ✔
other features
gitignore ✔
gitattributes ✖
index version
packfile version
push-certs ✖