diff --git a/src/cargo/sources/git/source.rs b/src/cargo/sources/git/source.rs
index 9d7c42b82..f11442bfc 100644
--- a/src/cargo/sources/git/source.rs
+++ b/src/cargo/sources/git/source.rs
@@ -84,6 +84,9 @@ impl<'cfg> Debug for GitSource<'cfg> {
 
 impl<'cfg> Source for GitSource<'cfg> {
     fn query(&mut self, dep: &Dependency, f: &mut dyn FnMut(Summary)) -> CargoResult<()> {
+        if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
+            return Ok(());
+        }
         let src = self
             .path_source
             .as_mut()
@@ -92,6 +95,9 @@ impl<'cfg> Source for GitSource<'cfg> {
     }
 
     fn fuzzy_query(&mut self, dep: &Dependency, f: &mut dyn FnMut(Summary)) -> CargoResult<()> {
+        if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
+            return Ok(());
+        }
         let src = self
             .path_source
             .as_mut()
@@ -112,6 +118,9 @@ impl<'cfg> Source for GitSource<'cfg> {
     }
 
     fn update(&mut self) -> CargoResult<()> {
+        if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
+            return Ok(());
+        }
         let git_path = self.config.git_path();
         let git_path = self.config.assert_package_cache_locked(&git_path);
         let db_path = git_path.join("db").join(&self.ident);