How to Get One File from Another Branch in Git
How can we checkout a single file from another branch into our current branch in Git?
Suppose we have a branch dev and another branch feature.
We want to pull index.js from feature into dev (assume it’s at the root of the project).
Get a file using git checkout
First, we’ll want to ensure we’re on the branch that will retrieve the file.
Then, we’ll want to use git checkout to obtain the file from the other branch.
git checkout dev
git checkout origin/feature -- index.js
The double dash
--is optional but avoids confusion. For instance,git checkout -- index.jsmeans “checkout fileindex.jsfromHEAD” (i.e. overwrite local changes), whilegit checkout index.jscould also mean “checkout branchindex.js.
Get a file using git restore
We can obtain the same functionality using git switch and git restore.
We’ll switch to the branch, then restore the correct file.
git switch dev
git restore --source feature -- index.js
Get a file using git show
Similarly, we can use git show; however, we need to specify the entire path from the root directory of the repo to the file we’d like to retrieve.
git switch dev
git show feature:path/to/index.js > path/to/index.js