pub trait GitOps {
// Required methods
fn init(&self) -> Result<()>;
fn add(&self, path: &Path) -> Result<()>;
fn commit(&self, message: &str) -> Result<()>;
fn pull_rebase(&self) -> Result<()>;
fn push(&self) -> Result<()>;
fn status(&self) -> Result<String>;
fn show(&self, revision: &str) -> Result<String>;
fn rebase_continue(&self) -> Result<()>;
fn has_remote(&self) -> Result<bool>;
fn config(&self, key: &str, value: &str) -> Result<()>;
}