Skip to main content

git_side/commands/
push.rs

1use colored::Colorize;
2
3use crate::error::Result;
4use crate::side_repo::SideRepo;
5
6/// Push side repo to remote.
7/// Uses force push — local always wins, no conflicts.
8///
9/// # Errors
10///
11/// Returns an error if the side repo cannot be opened or push fails.
12pub fn run() -> Result<()> {
13    let repo = SideRepo::open()?;
14    repo.ensure_initialized()?;
15
16    // Force push to origin main — local wins, no questions asked
17    repo.git(&["push", "-u", "--force", "origin", "main"])?;
18
19    println!("{}", "Pushed to remote.".green().bold());
20    Ok(())
21}