diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index 7abe3c5fd9fde6c95878c1201dbaa67e0efa1929..cfcaa5a53689db784c1af6cf97ed1348f7d785f0 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -1918,10 +1918,18 @@ impl GitPanel { }; telemetry::event!("Git Pushed"); let branch = branch.clone(); + let options = if force_push { - PushOptions::Force + Some(PushOptions::Force) } else { - PushOptions::SetUpstream + match branch.upstream { + Some(Upstream { + tracking: UpstreamTracking::Gone, + .. + }) + | None => Some(PushOptions::SetUpstream), + _ => None, + } }; let remote = self.get_current_remote(window, cx); @@ -1951,7 +1959,7 @@ impl GitPanel { repo.push( branch.name.clone(), remote.name.clone(), - Some(options), + options, askpass_delegate, cx, )