github.com/penguinn/godep@v0.0.0-20170205210856-a9cd0561f946/FAQ.md (about) 1 ## Why do I need to check in `vendor/`? 2 3 godep's primary concern is to allow you to repeatably build your project. Your 4 dependencies are part of that project. Without them it won't build. Not 5 committing `vendor/` adds additional external dependencies that are outside of 6 your control. In Go, fetching packages is tied to multiple external systems 7 (DNS, web servers, etc). Over time other developers or code hosting sites may 8 discontinue service, delete code, force push, or take any number of other 9 actions that may make a package unreachable. Therefore it's the opinion of the 10 godep authors that `vendor/` should always be checked in. 11 12 ## Should I use `godep restore`? 13 14 Probably not, unless you **need** to. Situations where you would **need** to are: 15 16 1. Using older Godep Workspaces (`Godeps/_workspace`) and not using `godep go 17 <cmd>`. 18 1. Resetting the state of $GOPATH to what is in your `Godeps.json` file in order 19 to cleanly re-vendor everything w/o upgrading/changing any deps. This is 20 useful when [migrating](https://github.com/tools/godep#migrating-to-vendor) 21 from workspaces to `vendor` or when a bug is fixed in `godep` that cleans up 22 a previous vendoring error.