1:修改已经提交N次代码的user.name和user.email

解决我在多电脑间,使用不同账户,git config 的global,system,local配置忽略改动,而添加了多台电脑ssh key的默认提交问题。

#分两次复制执行以下两行

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='wujuguang'; GIT_AUTHOR_EMAIL='1154545932@qq.com';
GIT_COMMITTER_NAME='wujuguang'; GIT_COMMITTER_EMAIL='1154545932@qq.com';" HEAD

#强制更新

git push origin master -f

2:某分支提交合到另分支上
在本地 dev 分支上的一个commit,如何把它放到本地ky-dev分支上?

git使用cherry-pick. 
简单用法:git cherry-pick <commit id>

Apply the changes introduced by some existing commits.
就是对已经存在的commit 进行apply (可以理解为再次提交)

checkout 到这个 dev 分支,使用 git log 获取这个 commit 的 <commit id>,假定为 6211d4912ec6752ee39b1c7b3ef9c76d01c2a49e,然后执行以下:
$ git checkout ky-dev
$ git cherry-pick 6211d4912ec6752ee39b1c7b3ef9c76d01c2a49e
$ git log

3:减少无用Merge消息的干扰

如果您正在团队中工作并且整个团队都在同一条branch上面工作,那么您就得经常地进行fetch/merge或者pull。Git中,分支的合并以所提交的merge来记录,以此表明一条feature分支何时与主分支合并。但是在多团队成员共同工作于一条branch的情形中,常规的merge会导致log中出现多条消息,从而产生混淆。因此,您可以在pull的时候使用rebase,以此来减少无用的merge消息,从而保持历史记录的清晰。
    
  git pull --rebase

您也可以将某条branch配置为总是使用rebase推送:
    
  git config branch.BRANCH_NAME_HERE.rebase true

4,修改commit的内容,包含最近一次,和任意某个commit两种情况

git修改last提交:
  在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息.
  但是如果你已经push过了,那么其历史最后一次,永远也不能修改了。

  git commit --amend 的用法,shell下 git commit --amend 然后在出来的编辑界面,直接编辑注释的信息。

git修改历史提交:
       git使用amend选项提供了最后一次commit的反悔。但是对于历史提交呢,就必须使用rebase了。
       git rebase -i HEAD~3
       表示要修改当前版本的倒数第三次状态。

这个命令出来之后,会出来三行东东:
        pick:*******
        pick:*******
        pick:*******
        如果你要修改哪个,就把那行的pick改成edit,然后退出。

这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
        git commit --amend
        来对commit进行修改。

修改完了之后,要回来对不对?
        使用git rebase --continue
        OK,一切都搞定了

5,删除远程分支

  git push origin :branch-name
  冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。

6,Git Tag相关

git push origin --tags

git tag -a 0.1 -m ""  66338cc
git tag -a 0.2 -m ""

git tag -u "" -a 0.1 -m ""  66338cc
git tag -u "" -a 0.2 -m ""

gpg --gen-key
gpg --list-keys
gpg --list-secret-keys
git push origin :refs/tags/v

git fetch --tags

GIT非常见命令使用笔记的更多相关文章

  1. Git 与 SVN 命令学习笔记

    一:Git git config --global user.name "you name"   #设置用户名git config --global user.email &quo ...

  2. git 工具常见命令

    1.git是什么 git是分布式版本管理工具,一台电脑既可以是客户端,也可以是服务端.工作过程中可以断开网络. git中的三个概念: 1.版本库:在初始化git版本库之后会生成一个隐藏的文件, .gi ...

  3. maven 常见命令 学习笔记(一)之 -pl -am -amd

    假设现有项目结构如下 dailylog-parent|-dailylog-common|-dailylog-web 三个文件夹处在同级目录中 dailylog-web依赖dailylog-common ...

  4. HTML_常见命令学习笔记

    1. java类中的这段代码 out.println(" <div class='line'>"); out.println(" <div align= ...

  5. 小白笔记:Git入门之常见命令

    安装 这里就不介绍安装了,度娘一大堆,找不到可以去找谷爹(前提是你能找到).安装好就跟着笔记进行下一步 准备工作 首先我们需要一个可以 git 的东西,所以我们需要一个文件夹和一个文件 创建文件夹 t ...

  6. git笔记(2)-常见命令的使用(详解待续)

    1. 常用命令 (1)git --help 帮助命令,其他的类似 (2)git branch 查看分支及其他(创建分支,查看远程分支名称等) (3)git checkout 切换分支以及其他 (3)g ...

  7. Git项目协同开发学习笔记1:项目库开发基础git命令

    这年头git基本都是项目开发的标配,之前刚好碰到了就花了两天时间系统学习了下.本文内容基本来自以下tutorial:Learn Git(建议直接去看原文,因为这个网站是有更新的).这个是我看过对git ...

  8. go学习笔记-常见命令

    常见命令 go 命令 可以在控制台执行go来查看 go Go is a tool for managing Go source code. Usage: go <command> [arg ...

  9. git中常见的几个命令

    git中常见的几个命令 本地仓库 三个区域 工作目录 暂存区 本地仓库 文件的四个状态 未跟踪 untracked 已暂存 staged 已提交commited 已修改 modified 基本命令 g ...

随机推荐

  1. ionic中generate page后module.ts报错的解决办法

    此问题出现在Ionic官方将版本从2.2升级到Ionic3以上之后, 在项目中generate page时,自动创建的module.ts就报错,如下: 解决办法如下: 1)将IonicModule替换 ...

  2. 初学nodejs之安装Express中遇到的问题: error: option `-v, --view <engine>' argument missing

    Windows安装下载nodejs地址:http://nodejs.org/download/ node -v 查看安装版本,输出版本即安装成功 之前学习了nodejs的基础,今天安装Express框 ...

  3. Dubbo下载-从missing artifactId说起

    项目pom文件引入dubbo 报 missing artifactId https://github.com/dangdangdotcom/dubbox 从GitHub上直接下载解压包, 最好下载分支 ...

  4. SQL Server删除表及删除表中数据的方法

    删除表的T-SQL语句为: drop table <表名> drop是丢弃的意思,drop table表示将一个表彻底删除掉. 删除表数据有两种方法:delete和truncate. de ...

  5. BZOJ1396: 识别子串(后缀自动机 线段树)

    题意 题目链接 Sol 后缀自动机+线段树 还是考虑通过每个前缀的后缀更新答案,首先出现次数只有一次,说明只有\(right\)集合大小为\(1\)的状态能对答案产生影响 设其结束位置为\(t\),代 ...

  6. CSS样式之a标签(原文网址http://www.divcss5.com/shili/s57.shtml)

    这是个人在做网站的时候整理的关于a标签的使用方法,整理一下,方便下次使用. 一.a超链接的代码 <a href="http://www.baidu.com" target=& ...

  7. libevent2笔记(linux、windows、android的编译)

    0. 前言 我使用的版本是libevent-2.0.21-stable.高级的应用还是得看官网文档http://www.wangafu.net/~nickm/libevent-2.0/doxygen/ ...

  8. elixir 关键字列表

    关键字列表 元组列表 每个元素第一个为原子时候 称为关键字列表 iex(7)> list = [{:d, 1}, {:s, 2},{:h, 3}][d: 1, s: 2, h: 3]iex(8) ...

  9. Android属性动画简单剖析

    运行效果图: 先看布局文件吧,activity_main.xml: <?xml version="1.0" encoding="utf-8"?> & ...

  10. flutter控件之CheckBox

    import 'package:flutter/material.dart'; class LearnCheckBox extends StatefulWidget{ @override State& ...