欢迎光临
专注android技术,聚焦行业精粹,我们一直在努力

git常用命令检索

1. 跨分支查找字符串

解释

git branch -a : 列出所有远程分支,输出格式如下:

sed 是一种在线编辑器,它一次处理一行内容。-e :直接在命令列模式上进行 sed 的动作编辑;

grep : 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。-v 反转查找。-e<范本样式> 指定字符串作为查找文件内容的范本样式。

xargs命令 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。这里用于把前面命令的输出做为git grep的输入

 

2. git push本地仓库到远端

介绍:

  • 首先你需要在远程git分配一个代码仓库,你会获得一个ssh链接或者http链接
  • 然后在本地的remote映射表中添加映射:git remote add <待推送本地代码库别名>  <远程git仓库分配链接>
  • push本地的分支到远程

详细使用步骤:

不小心将git远程地址配错了,再次配置提示以下错误:

fatal: 远程 origin 已经存在。

此时只需要将远程配置删除,重新添加即可;

 

3. git二分法定位问题


执行完上面的命令后,会提示剩余多少步

此时验证如果ok,则输入 git bisect good, 反之则是 bad

经过几个步骤后,就可以找到出错的commit了,最后别忘了退出二分查找回到当前的分支

4. git 打patch方法

 

5. 给某个commit打tag

 

6. 搜索哪些分支包含指定的commit

仅仅列出包含指定commit的branch列表,下面语句是列出本地所有分支中包含指定commit的分支列表

以下语句列出远程分支中所有包含该commit的分支列表,执行此命令之前最好git fetch一下,保证远程分支最新

例子:

 

7. 查看单个commit修改的文件列表

方法一:

方法二:

  • –no-commit-id :隐藏commit-id显示
  • –pretty :传空串可以避免字符串开始处的多余的显示
  • –name-only :仅仅显示文件名
  • –name-status:显示新增、修改和删除的文件清单,上面的命令把–name-only改为–name-status,同样会列出文件列表,同时文件列表前面会标记增删改等操作
  • -r :递归 sub-trees

8、查看远程代码仓库地址命令

例子:

 

 

后面括号里面标识了该URL对应的命令,例如:fetch, push

 

9、从指定commit拉出分支(git checkout branch with a specified commit

 

10、git 删除本地和远程tag

1. 删除本地tag

2. 删除远程的tag

 

11、git查看远程和本地tag(git show remote and local tags)

显示远程tag列表命令:

显示本地tag列表命令:

 

12、重命名远程分支

不能直接修改远程分支名,需要先删除远程分支,然后修改本地分支名,再推送本地修改后的分支名到远程。具体操作步骤如下:

1)先删除远程分支

2) 修改本地分支名

3) 推送本地分支到远程

4) commit时会提示上游分支分当前分支不匹配

方法一:指定想推送到的远程分支

方法二:所有本地已存在的同名分支到远程仓库

这个方法需要慎用,因为会导致你在push当前分支的时候也推送其它所有的同名分支。导致你不想要的提交push到服务器了。

警告:push.default (默认push)未设置;在Git 2.0 中,push.default 的值从‘matching’改为‘simple’了。消除此警告并保留以前的习惯,可以用上面的命令改为’matching’

 

13、git 列出2个commit之间修改的文件

a) 列出所有修改的文件列表

b) 如果想要知道文件的状态,例如新增,删除,修改的状态

File status flags:
M modified – File has been modified
C copy-edit – File has been copied and modified
R rename-edit – File has been renamed and modified
A added – File has been added
D deleted – File has been deleted
U unmerged – File has conflicts after a merge

c) 如果想要了解这些改动文件的一些统计信息

 

14、查看单个commit修改行数统计

git命令:

输出:

15、查看提交历史中哪个commit和哪个文件增加或删除了指定的字符串

 

16、index file corrupt

1、如果是staging area的index问题:

在 OSX/Linux:平台

在Windows平台:

2、如果是packfile的index问题

 

staging area

staging area 是一个文件,通常包含在您的Git目录中,存储有关将在下一次提交中进行的操作的信息。它在Git用语中的技术名称是“索引”,但是用“staging area”词来描述也是OK的。

基本的git工作流程如下:

  1. 您修改git工程中的文件
  2. 您可以选择性地暂存您希望成为下一次提交一部分的更改,这些更改只会将这些更改添加到暂存区域(staging area)。
  3. 您执行提交,它会将保存在暂存区域(staging area)中的文件快照永久存储到您的Git目录中。

如果文件的特定版本在Git目录中,它被认为是已经committed(已提交)。如果这个文件被修改并添加到暂存区域(staging area),它的状态是已暂存。如果它在被check out(检出)后被修改但是没有被暂存(不是已暂存状态),那么它的状态时已修改。在Git基础里面,您将了解有关这些状态的更多信息,以及如何利用它们或完全跳过分阶段部分。

15、Git 跨仓库 cherry-pick commit

 

赞(1) 打赏
未经允许不得转载:花花鞋 » git常用命令检索
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

国内精品Android技术社区

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏