我有两个分支:master和dev
我想从dev分支创建一个"功能分支" .
目前在分支开发,我做:
$ git checkout -b myfeature dev
Run Code Online (Sandbox Code Playgroud)
... (一些工作)
$ git commit -am "blablabla"
$ git push origin myfeature
Run Code Online (Sandbox Code Playgroud)
但是,在对我的树枝进行可视化之后,我得到了:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Run Code Online (Sandbox Code Playgroud)
我的意思是分支似乎合并了,我不明白为什么......
我做错了什么?
请问您如何解释我如何从另一个分支分支并推回到功能分支的远程存储库?
所有这些都在分支模型中,就像这里描述的那样.
在Git代码库中,我想列出包含特定单词的所有提交.我试过这个
git log -p | grep --context=4 "word"
Run Code Online (Sandbox Code Playgroud)
但它并不一定会给我回文件名(除非它比我搜索的单词少了5行.我也尝试过
git grep "word"
Run Code Online (Sandbox Code Playgroud)
但它只给我现在的文件,而不是历史.
如何搜索整个历史记录以便我可以跟踪特定单词的更改?我的意思是在我的代码库中搜索单词的出现以跟踪更改(在文件历史记录中搜索).
有没有办法在Github项目的代码中grep一些东西?
我可以拉动源并在本地grep它,但我想知道是否可以通过Web界面或第三方替代方案.
想法?
使用git,如何在所有本地分支中的所有文件中搜索给定的字符串?
Github具体:是否可以在所有github分支上执行上述搜索?(在我的远程github repo上有几个远程分支,理想情况下我不需要为此搜索降低...)
有没有办法对subversion存储库执行全文搜索,包括所有历史记录?
例如,我编写了一个我在某个地方使用过的功能,但之后就不需要了,所以我对这些文件进行了调整,但现在我需要再次找到它以将其用于其他内容.svn日志可能会说"删除未使用的东西"之类的内容,并且有大量的签名.
编辑2016-04-15:请注意,术语"全文搜索"在这里提到的是搜索提交历史的实际差异,而不是文件名和/或提交消息.我指出这一点是因为上面的作者的措词并没有很好地反映出来 - 因为在他的例子中他也可能只是寻找文件名和/或提交消息.因此有很多svn log
答案和评论.
是否可以git grep
在Git控件源项目的所有分支内运行?还是有另一个命令要运行?
git log
除了我指定的文件外,我怎么才能只显示改变文件的提交?
有了git log
,我可以将我看到的提交过滤给那些触及给定路径的人.我想要的是反转该过滤器,以便只列出除指定的触摸路径以外的触摸路径.
我可以得到我想要的东西
git log --format="%n/%n%H" --name-only | ~/filter-log.pl | git log --stdin --no-walk
Run Code Online (Sandbox Code Playgroud)
在哪里filter-log.pl
:
#!/usr/bin/perl
use strict;
use warnings;
$/ = "\n/\n";
<>;
while (<>) {
my ($commit, @files) = split /\n/, $_;
if (grep { $_ && $_ !~ m[^(/$|.etckeeper$|lvm/(archive|backup)/)] } @files) {
print "$commit\n";
}
}
Run Code Online (Sandbox Code Playgroud)
除了我想要比这更优雅的东西.
请注意,我不是在问如何让git忽略这些文件.应跟踪和提交这些文件.就是这样,大多数时候,我对看到它们并不感兴趣.
相关问题:如何反转`git log --grep = <pattern>`或如何显示与模式不匹配的git日志除了提交消息而不是路径之外,它是同一个问题.
关于这个主题的论坛讨论从2008年开始:Re:从git-diff中排除文件这看起来很有希望,但线程似乎已经枯竭了.
我试图使用Github上的代码搜索,以搜索包含类似字符的一些代码行=
,+
等等.
我从https://help.github.com/articles/searching-code/#considerations-for-code-search了解到这些字符是通配符并且必须进行转义,否则它们将被忽略.
这是一个例子:"if \(done is True \)",另一个:"if(done is True)".如您所见,两者都返回相同的"您的查询包含一个被忽略的字符"警告在搜索栏的右侧.我的逃避似乎没有做任何事情,我得到的结果是忽略了字符.
如何在此搜索中转义字符?
我知道,如果我只想对具有特定扩展名的文件进行格式化,我可以这样做:
// searches recursively and matches case insensitively in only javascript files
// for "res" from the current directory
grep -iIr --include=*.js res ./
Run Code Online (Sandbox Code Playgroud)
我一直试图通过git grep搜索一种方法(利用git grep从它存储的索引中获得的速度),但无济于事.我在这里看到不能排除某些文件类型.