如何在我的分支中只存储多个已更改文件中的一个?
当前回答
当您尝试在两个分支之间切换时,会出现这种情况。
尝试使用“git add filepath”添加文件。
稍后执行此行
git stash—保留索引
其他回答
在这种情况下,我使用gitadd-p(交互式)、gitcommit-m blah,然后在必要时存储剩余的内容。
由于在Git中创建分支很简单,您可以创建一个临时分支并将各个文件检入其中。
这里的每个答案都很复杂。。。
“藏起来”怎么样
git diff /dir/to/file/file_to_stash > /tmp/stash.patch
git checkout -- /dir/to/file/file_to_stash
这将弹出文件更改:
git apply /tmp/stash.patch
与隐藏一个文件并将其弹出完全相同的行为。
使用git存储推送,如下所示:
git stash push [--] [<pathspec>...]
例如:
git stash push -- my/file.sh
这是自2017年春季发布的Git 2.13以来提供的。
将以下代码保存到一个文件中,例如,名为stash。用法是stash<filename_regex>。参数是文件完整路径的正则表达式。例如,要隐藏a/b/c.txt、隐藏a/b/c.txt或隐藏.*/c.txt等。
$ chmod +x stash
$ stash .*.xml
$ stash xyz.xml
要复制到文件中的代码:
#! /usr/bin/expect --
log_user 0
set filename_regexp [lindex $argv 0]
spawn git stash -p
for {} 1 {} {
expect {
-re "diff --git a/($filename_regexp) " {
set filename $expect_out(1,string)
}
"diff --git a/" {
set filename ""
}
"Stash this hunk " {
if {$filename == ""} {
send "n\n"
} else {
send "a\n"
send_user "$filename\n"
}
}
"Stash deletion " {
send "n\n"
}
eof {
exit
}
}
}
推荐文章
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时
- git reflog和log有什么区别?
- git推挂在Total line之后
- 重命名git子模块
- 结合Git存储库的前两次提交?
- Xcode 6 gitignore文件应该包括什么?
- 我如何从现有回购的分支创建一个新的GitHub回购?