不要与工具作斗争。让我们godep更新您的 json 文件和供应商文件夹,无论它对您的原始Godeps/godeps.json文件有多大影响。godep restore // put everything in a known statego get -u foo/bar // get new packagego test ./... // make sure everything is up to snuffgo run main.go // run your codegodep save ./... // update `godeps.json` to current state of packages如果你使用go get -u foo/bar你的新包,这只会影响你的新包foo/bar——它不会更新你现有的包。-u 标志指示 get 使用网络来更新命名包及其依赖项。默认情况下,get 使用网络检查丢失的包,但不使用它来查找现有包的更新。 https://golang.org/cmd/go/作为旁注,我建议养成使用godep前缀的习惯,以免破坏您的$GOPATH:go get -u foo/bar // get new packagegodep go test ./... // test your package, using your /vendor depsgodep go run main.go // run your code, using your /vendor depsgodep save ./... // update godeps if everything checks out它使切换多个存储库变得更加容易。提示:使您的配置默认值适合您的团队的“本地开发环境”。例如数据库用户名/密码,如“dev/dev”等等。这样,您不必使用godep go run main.go. 很好很简单。