how can I git stash a specific file?
Possible Duplicate:
How to stash only one file out of multiple files that have changed
How can I stash a specific file leaving the others currently modified out of the stash I am about to save?
For example, if git status gives me this:
younker % gst
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: app/controllers/cart_controller.php
# modified: app/views/cart/welcome.thtml
#
no changes added to commit (use "git add" and/or "git commit -a")
and I only want to stash app/views/cart/welcome.thtml, how would I do that? Something like (but of course this does not work):
git stash save welcome_cart app/views/cart/welcome.thtml
EDIT: Since git 2.13, there is a command to save a specific path to the stash: git stash push <path>
. For example: git stash push -m welcome_cart app/views/cart/welcome.thtml
.
OLD ANSWER:
You can do that using git stash --patch
(or git stash -p
) -- you'll enter interactive mode where you'll be presented with each hunk that was changed. Use n
to skip the files that you don't want to stash, y
when you encounter the one that you want to stash, and q
to quit and leave the remaining hunks unstashed. a
will stash the shown hunk and the rest of the hunks in that file.
Not the most user-friendly approach, but it gets the work done if you really need it.
I usually add to index changes I don't want to stash and then stash with --keep-index option.
git add app/controllers/cart_controller.php
git stash --keep-index
git reset
Last step is optional, but usually you want it. It removes changes from index.
Warning As noted in the comments, this puts everything into the stash, both staged and unstaged. The --keep-index just leaves the index alone after the stash is done. This can cause merge conflicts when you later pop the stash.
链接地址: http://www.djcxy.com/p/4196.html上一篇: 在JavaScript中循环数组的最快方法是什么?
下一篇: 我怎样才能保存一个特定的文件?