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. java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES) 最蠢

    我犯了七年前的错误,一个空格,昨天就想到的,还对比了一下密码有没有空格 问题原因1:多写空格 在datasource.properties 中的username 的值root后面多写了一个空格, jd ...

  2. unity 判断平台(安卓,iOS还是编辑器)

    两种方式 --------------- C预处理器编译判断 --------------- #if UNITY_IOS // ... iOS项目才会编译 #elif UNITY_ANDROID // ...

  3. 【转】分布式环境下5种session处理策略(大型网站技术架构:核心原理与案例分析 里面的方案)

    前言 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理.如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A.B两台服务器,用户在第一次访问网站时,Ngin ...

  4. element ui 时间控件 多个日期

    前言:工作中用到 vue+element ui 的前端框架,需要使用时间控件来选择多个日期,已月日的形式,且有默认值,所以记录一下.转载请注明出处:https://www.cnblogs.com/yu ...

  5. sql按月统计数量和按月累加统计数量

    1.简单的,按月统计数量 SELECT CREATE_DATE, DATE_FORMAT(CREATE_DATE, '%Y-%m') AS month , COUNT(*) AS sum FROM p ...

  6. javascript之原型

    写作背景 最近在抓基础,毕竟没有好地基盖楼容易塌啊...再回首javascript,原型可以说是该语言较为核心的设计之一,我们有必要了解下其设计理念 (#^.^#) 基本概念 MyObject.pro ...

  7. drupal7设置不含www的url跳转到含www的url

    打开drupal的.htaccess文件 找到 If your site can be accessed both with and without the 'www.' prefix 将下面对应的三 ...

  8. JavaScript standard 代码规范的全文

    这是 JavaScript standard 代码规范的全文. 掌握本规范的最好方法是安装并在自己的代码中使用它. 细则 使用两个空格进行缩进. eslint: indent function hel ...

  9. DOM增删操作(创建删除表格)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  10. L3(SP+OO+UT)能力评估