草庐IT

apply_filter

全部标签

git - 使用 git-filter-branch 提取多个目录

我有一个很大的存储库,目前在顶级子文件夹中包含多个项目,比如/a、/b、/c和/d。现在我想将该存储库分成两个不同的存储库:一个包含/a和/b,另一个包含/c和/d。我知道gitfilter-branch--subdirectory-filter,它非常适合提取单个目录,但它似乎不能一次提取多个目录。我也知道gitfilter-branch--prune-empty--tree-filter,它允许我删除所有内容,但两个想要的目录。这感觉不完全正确,因为我必须手动指定所有可能存在的顶层目录。有没有更好的方法从一个大仓库中提取两个目录?PS:当然,使用gitfilter-branch以外

git - 获取错误消息 '' 致命 : sha1 information is lacking or useless"when apply a patch using "git am -3"

我正在尝试使用gitam-3“补丁路径”将一系列补丁从一个git存储库应用到另一个git存储库。我按顺序应用它们,从补丁1-4开始,效果很好。但是当我来到第5个补丁时,我收到错误提示“fatal:sha1informationislackedoruseless”。我转到应用补丁的git存储库,我确实看到了文件“dev/afile”。所以我想知道为什么git会提示“缺少或无用的sha1信息(dev/afile.c)”,我该如何解决我的问题?$gitam-3~/Tmp/mypatches/0005-fifth.patchApplying:rpmsg:Allowdevicestousecus

Git stash apply 和 drop

是否有一个git命令既可以应用存储又可以删除它?这是一个命令:gitstashapplygitstashdrop 最佳答案 你想要gitstashpop!pop[--index][-q|--quiet][]Removeasinglestashedstatefromthestashlistandapplyitontopofthecurrentworkingtreestate,i.e.,dotheinverseoperationofgitstashsave.Theworkingdirectorymustmatchtheindex.

git - 带有交互模式的“git stash apply”

我有一系列文件存储在(stash{0})中,我想gitapply只是一些部分/这些文件的大块(通常称为交互模式)。这可能吗?我已经看到可以执行一个gitstashsave-p'Stashname'但好像做不到gitstashapply-p'Stashname'你知道实现它的方法吗? 最佳答案 Isitpossible?是的!gitcheckout-pstash@{0}您可以将stash@{0}中的0替换为您要应用的存储的索引。如果不确定哪个n是您要应用的存储,请使用gitstashlist和gitshow-pstash@{n}。不要

git - 在一系列提交上运行 filter-branch

gitfilter-branch--env-filter'exportGIT_AUTHOR_EMAIL="foo@example.com"exportGIT_AUTHOR_NAME="foo"'--commita..commitb您想重写哪个ref的结果?看来filter-branch不允许您使用范围符号使用两个任意引用之间的范围。如果这种方法不可行,那么在一系列连续提交(分支历史中的某处)上运行过滤器的最直接的方法是什么。 最佳答案 正如@kan所说,您不能在历史中间应用过滤器分支。你必须从你已知的提交申请到历史结束gitfilt

Git 错误 : previous rebase directory . git/rebase-apply 仍然存在但给出了 mbox

我正在尝试应用我从http://www.winehq.org/pipermail/wine-devel/2014-May/104356.html获取的补丁.我将其复制到文本编辑器中,并将其保存为my.patch(我需要修复电子邮件,它已被混淆)。我尝试用Git应用它,但我收到了这个错误:sashoalm@sashoalm-VirtualBox:~/Desktop/wine-git$gitam--signoff这个神秘的错误消息让我不知道出了什么问题,也不知道我需要做什么才能让它工作。这个错误是什么意思?我该如何解决? 最佳答案 gi

git - rsync 根据 .gitignore & .hgignore & svn :ignore like --filter=:C 排除

Rsync包含一个漂亮的选项--cvs-exclude以“以与CVS相同的方式忽略文件”,但CVS已经过时多年。有没有办法让它也排除现代版本控制系统(Git、Mercurial、Subversion)会忽略的文件?例如,我有很多从GitHubcheckout的Maven项目。通常它们包括一个.gitignore至少列出target,默认的Maven构建目录(可能出现在顶层或子模块中)。由于这些目录的内容完全是一次性的,而且它们可能比源代码大得多,所以我想在使用rsync进行备份时将它们排除在外。当然我可以明确地--exclude=target/但这会意外地抑制不相关的目录,这些目录恰好

git - git am 和 git apply 有什么区别?

gitam和gitapply都可以用来打补丁。我看不出有什么区别。我现在看到了一个区别:gitam自动提交,而gitapply只接触文件但不创建提交。这是唯一的区别吗? 最佳答案 输入输出不同:gitapply获取补丁(例如gitdiff的输出)并将其应用于工作目录(或索引,如果使用--index或--cached)。gitam获取格式化为电子邮件消息的提交邮箱(例如gitformat-patch的输出)并将它们应用于当前分支。gitamusesgitapplybehindthescenes,但在(读取Maildir或mbox,以及

Git 存储 : "Cannot apply to a dirty working tree, please stage your changes"

我正在尝试应用我之前使用gitstashpopstash的更改并获取消息:Cannotapplytoadirtyworkingtree,pleasestageyourchanges关于如何处理这个问题有什么建议吗? 最佳答案 当我必须将stash的更改应用于脏工作副本时,例如从存储中pop多个变更集,我使用以下内容:$gitstashshow-p|gitapply-3&&gitstashdrop基本上是这样创建补丁将其通过管道传递给应用命令如果有任何冲突,需要通过三向merge来解决如果应用(或merge)成功,它会丢弃刚刚应用的存

git - git stash pop 和 git stash apply 的区别

我使用gitstashpop已经有一段时间了。我最近发现了gitstashapply命令。当我试用它时,它似乎与gitstashpop一样工作。gitstashpop和gitstashapply有什么区别? 最佳答案 gitstashpop丢弃应用后的(默认情况下最顶层的)stash,而gitstashapply保留它在存储列表中以便以后可能重用(或者你可以gitstashdrop它)。除非在gitstashpop之后发生冲突,否则会发生这种情况,在这种情况下,它不会删除存储,让它的行为与gitstashapply完全相同。另一种看