如何在我的分支中只存储多个已更改文件中的一个?
当前回答
对于VS代码的用户。Git侧边栏视图中Changes组的隐藏按钮将仅隐藏组中的文件。因此,如果您将一些文件移出该组,则可以隐藏其余文件。我所知道的在不恢复更改的情况下将一些文件移出的唯一方法是将它们暂存。因此:
暂存您不想隐藏的文件单击更改组标题中的隐藏按钮取消对您移开的文件的分级
其他回答
万一你真的打算在使用git stash时丢弃更改(而不是真的使用git stash临时存储),那么你可以使用
git checkout -- <file>
[注]
这个git存储只是分支和执行任务的一个快速而简单的替代方案。
git stash push -p -m "my commit message"
-p让我们选择应该隐藏的大块;也可以选择整个文件。
系统将提示您对每个大块执行一些操作:
y - stash this hunk
n - do not stash this hunk
q - quit; do not stash this hunk or any of the remaining ones
a - stash this hunk and all later hunks in the file
d - do not stash 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
如果您只想隐藏一些已更改的文件,只需在Stage中添加其他文件,然后执行git stash push--keep index
它将隐藏所有未暂存的更改文件
解决方案
本地更改:
file_A(已修改)未暂存file_B(已修改)未暂存file_C(已修改)未暂存
要创建仅包含file_C上的更改的存储“my_stash”:
1. git add file_C
2. git stash save --keep-index temp_stash
3. git stash save my_stash
4. git stash pop stash@#{1}
完成。
解释
将file_C添加到临时区域创建一个名为“temp_stash”的临时存储,并将更改保存在file_C上只使用file_C上的更改创建所需的存储(“my_stash”)将“temp_stash”(file_A和file_B)中的更改应用于本地代码并删除存储
您可以在步骤之间使用gitstatus来查看发生了什么。
您可以简单地执行以下操作:
git stash push "filename"
或带有可选消息
git stash push -m "Some message" "filename"
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别