Git:如何使用stash -p存放特定文件?

doub1ejack

我试图弄清楚如何在许多未提交的更改中存储两个特定的文件。

这个非常有前途的答案是,在Git更改的多个文件中,仅存储一个文件?,但未显示用法,因此无法解决。

以下内容不起作用,并且手册页不是很有帮助(它似乎是在谈论终端输出,而不是实际存储)。我想藏匿application.confplugins.sbt,然后提交一切。

app (master)$ git status
On branch master
Your branch is ahead of 'origin/master' by 29 commits.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   views/mobile/blog.scala.html
        modified:   views/mobile/slideshow.scala.html
        modified:   ../public/css/mobile/styles.css

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:   ../conf/application.conf

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:   ../project/plugins.sbt

app (master)$ git stash -p ../conf/application.conf ../project/plugins.sbt 

usage: git stash list [<options>]
   or: git stash show [<stash>]
   or: git stash drop [-q|--quiet] [<stash>]
   or: git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
   or: git stash branch <branchname> [<stash>]
   or: git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet]
                       [-u|--include-untracked] [-a|--all] [<message>]]
   or: git stash clear
弗洛里安·诺伊曼(Florian Neumann)

利用

git stash --patch

对于可能提交中的每个大块,git都会显示如下对话框:

diff --git files over files
index e69de29..ac4f3b3 100644
--- a/file.txt
+++ b/file.txt
@@ -0,0 +1 @@
+you did awesome stuff!
Stash this hunk [y,n,q,a,d,/,e,?]?

大块是git-diff产生的线条的连贯差异。要选择一个文件d,只要您到达该文件,就必须取消添加块,然后您可以a从该文件中添加所有块

您还可以通过用yes回答问题来选择一个大块头如果块看起来太大,您甚至可以s将其拆分。也可以e驱散当前的大块头。


使用--patch-option上不同GIT中的命令是可能的(FE stashcommitadd)。

这是--patch-function的详细说明,我从开发人员文档中获取了该信息

This lets you choose one path out of a 'status' like selection.
After choosing the path, it presents the diff between the index
and the working tree file and asks you if you want to stage
the change of each hunk.  You can select one of the following
options and type return:

   y - stage this hunk
   n - do not stage this hunk
   q - quit; do not stage this hunk or any of the remaining ones
   a - stage this hunk and all later hunks in the file
   d - do not stage this hunk or any of the later hunks in the file
   g - select a hunk to go to
   / - search for a hunk matching the given regex
   j - leave this hunk undecided, see next undecided hunk
   J - leave this hunk undecided, see next hunk
   k - leave this hunk undecided, see previous undecided hunk
   K - leave this hunk undecided, see previous hunk
   s - split the current hunk into smaller hunks
   e - manually edit the current hunk
   ? - print help

如果您对一种更舒适的方式来完成此任务感兴趣,则可以使用git gui工具(例如LazyGit)我用这个将我的日常工作分解成原子提交。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

GNU存放:如何仅存放选定的文件/文件夹?

来自分类Dev

如何使git stash包含尚未上演的新文件?

来自分类Dev

如何git stash显示仅对一个文件的更改?

来自分类Dev

git stash恢复被忽略的文件

来自分类Dev

git stash恢复被忽略的文件

来自分类Dev

git stash show -p stash @ {N}和git show stash @ {N}之间的区别?

来自分类Dev

如何使用git中止特定文件的合并?

来自分类Dev

我可以使用“ git stash”默认情况下自动包括未跟踪的文件吗?

来自分类Dev

如何在我所有的Git存放区中搜索特定的字符串?

来自分类Dev

存放不使用rc文件中提供的“ ignore”选项

来自分类Dev

如何使用R从包含特定单词的html文件(<p> </ p>之间的部分)提取段落?

来自分类Dev

“ git stash apply”或“ git stash pop”是否还会添加修改后的文件以进行提交?

来自分类Dev

如何验证git是否使用了特定的公钥文件?

来自分类Dev

如何使用git删除bitbucket中的特定文件?

来自分类Dev

如何使用Ruby解析特定文件的git diff?

来自分类Dev

如何撤消 git stash --all

来自分类Dev

如何使用git恢复文件?

来自分类Dev

如何从提交中创建GIT存放区?

来自分类Dev

如何从提交中创建GIT存放区?

来自分类Dev

在git stash中列出修改后的文件名

来自分类Dev

避免/解决git stash / rebase更改文件时间戳的问题

来自分类Dev

执行git stash --include-untracked时丢失跟踪文件

来自分类Dev

向Stash(Git)添加一些文件

来自分类Dev

git stash pop:放弃单个文件中的本地更改

来自分类Dev

Git stash pop 错误:无法创建文件权限被拒绝

来自分类Dev

使用git stash分支时找不到stash

来自分类Dev

如何使用Meld(如git add -p)登台git commit?

来自分类Dev

如何使用Git引用特定的存储库?

来自分类Dev

如何使用Git引用特定的存储库?

Related 相关文章

  1. 1

    GNU存放:如何仅存放选定的文件/文件夹?

  2. 2

    如何使git stash包含尚未上演的新文件?

  3. 3

    如何git stash显示仅对一个文件的更改?

  4. 4

    git stash恢复被忽略的文件

  5. 5

    git stash恢复被忽略的文件

  6. 6

    git stash show -p stash @ {N}和git show stash @ {N}之间的区别?

  7. 7

    如何使用git中止特定文件的合并?

  8. 8

    我可以使用“ git stash”默认情况下自动包括未跟踪的文件吗?

  9. 9

    如何在我所有的Git存放区中搜索特定的字符串?

  10. 10

    存放不使用rc文件中提供的“ ignore”选项

  11. 11

    如何使用R从包含特定单词的html文件(<p> </ p>之间的部分)提取段落?

  12. 12

    “ git stash apply”或“ git stash pop”是否还会添加修改后的文件以进行提交?

  13. 13

    如何验证git是否使用了特定的公钥文件?

  14. 14

    如何使用git删除bitbucket中的特定文件?

  15. 15

    如何使用Ruby解析特定文件的git diff?

  16. 16

    如何撤消 git stash --all

  17. 17

    如何使用git恢复文件?

  18. 18

    如何从提交中创建GIT存放区?

  19. 19

    如何从提交中创建GIT存放区?

  20. 20

    在git stash中列出修改后的文件名

  21. 21

    避免/解决git stash / rebase更改文件时间戳的问题

  22. 22

    执行git stash --include-untracked时丢失跟踪文件

  23. 23

    向Stash(Git)添加一些文件

  24. 24

    git stash pop:放弃单个文件中的本地更改

  25. 25

    Git stash pop 错误:无法创建文件权限被拒绝

  26. 26

    使用git stash分支时找不到stash

  27. 27

    如何使用Meld(如git add -p)登台git commit?

  28. 28

    如何使用Git引用特定的存储库?

  29. 29

    如何使用Git引用特定的存储库?

热门标签

归档