修改git已提交的的author和email

这个问题来源于我的实际应用中的需求,在[得问][1]发起提问:[修改git已提交的的author和email][2],具体如下: 修改上一次提交的用户名和Email可以用以下命令: git commit –amend –author=‘Your Name [email protected]’ 我现在的需求是这样的:项目中git初始化时未指定name和email,使用了全局的name和email设置,已经提交过N次,假设10次。但是我希望这个项目使用自己的name和email,而不是全局的。那么该如何修改N次已提交的name和email? 我明确的知道肯定有这样一个操作,可以一次完成,但是苦于不知道这是怎样一个操作。有兄弟回答,给出答案:[git filter-branch][3],大概明白了意思,感觉要写一个脚本,但是只是用过简单的git命令,自己写不出,然后顺着这个方向找,找到 http://stackoverflow.com/questions/750172/how-do-i-change-the-author-of-a-commit-in-git。可以说是一模一样的需求(怎么没想到用英文搜索答案??估计想到,也拼装不出这句吧?)。这里的答案给出了具体的脚本,其中github上的http://help.github.com/articles/changing-author-info 解决方案比较完美,或者说扩展了这个需求,不仅仅解决这个问题。以下是实现代码: # !/bin/sh git filter-branch --env-filter ' an="$GIT_AUTHOR_NAME" am="$GIT_AUTHOR_EMAIL" cn="$GIT_COMMITTER_NAME" cm="$GIT_COMMITTER_EMAIL" if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ] then cn="Your New Committer Name" cm="Your New Committer Email" fi if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ] then an="Your New Author Name" am="Your New Author Email" fi export GIT_AUTHOR_NAME="$an" export GIT_AUTHOR_EMAIL="$am" export GIT_COMMITTER_NAME="$cn" export GIT_COMMITTER_EMAIL="$cm" ' 最后吐槽一下,百度搜索上确实比Google差很多。 [1]:http://www.dewen.org [2]:http://www.dewen.org/q/6876/%E4%BF%AE%E6%94%B9git%E5%B7%B2%E6%8F%90%E4%BA%A4%E7%9A%84%E7%9A%84author%E5%92%8Cemail [3]:http://schacon.github.com/git/git-filter-branch.html

十月 24, 2012

Ant编译Android工程

一.Ant安装 Windows下安装Ant: ant 官网可下载 http://ant.apache.org ant 环境配置: 解压ant的包到本地目录。 在环境变量中设置ANT_HOME,值为你的安装目录。 把ANT_HOME/bin加到你系统环境的path。 Ubuntu下安装Ant sudo apt-get install ant即可,环境变量也会自动配置。 二.编译Anadroid工程 android本身是支持Ant编译的,这里要知道一些Android命令。配置好android sdk 环境,保证在任意目录下执行android 命令。 1.创建一个android项目 android create project -k tk.laomos.demo -a Demo -t 25 -p . 参数说明: -k /–package 为命名空间(包名) -a /–name 工程名 -p /–path 项目 -t 为目标平台的版本对应id编号 查看当前平台Api level对应的id:(列出不同版本平台的对应id编号) android list targets 2.更新一个android项目产生build.xml等ant配置文件 对已经存在的android工程,我们可以update下(修改平台的版本),这样会自动添加build.xml 等ant的配置文件. android update project --name Demo -t 25 -p . 然后直接执行ant可以查看相应的参数。 ant 参数如下: debug:带调试用签名的构建 release:构建应用程序,生成的apk必须签名才可以发布 install:安装调试构建的包到运行着的模拟器或者设备; 直接执行: ant debug install...

十月 12, 2012

Eclipse启动自动加载指定工作空间

Eclipse使用过程中,经常会有使用多个工作空间的情况,每次选择太麻烦了,可以同时设置快捷方式的不同参数和不同名字(比如就是对应的工作空间的名字)。 Eclipse启动参数 -data [workspace location] 描述 指定启动时的Workspace位置 举例 例如Workspace位置设在D:/myworkspace,则eclipse -data D:/myworkspace 实际应用 要使用 -data 命令行自变量,只要将 -data your_workspace_location(例如,-data E:\workspace)添加至快捷方式属性中的目标字段。 E:\eclipse\eclipse.exe -data E:/workspace

六月 6, 2012

更改eclipse @author的默认名字[转]

在eclipse中,给类添加注释时,@author 后默认填充登录计算机的用户名。如何去修改呢: 方法一:修改计算机登录的用户名(99.9999%的人应该都不愿意去这样做,特别是一些公司的域帐户登录的电脑根本就改不了)。 方法二:将 @author 属性写死 。 通 过菜单 Window->Preference 打开参数设置面板,然后选择:Java -> Code Style -> Code Templates ,在右侧选择Comments,将其中的Types项,然后选右边的"Edit",进入编辑模式,将 @author ${user} 中的${user}改成你自己的名字即可。 方法三:修改ini配置文件。 在eclipse的目录下找到eclipse.ini文件,在-vmargs后边添加上启动参数:-Duser.name=你想要显示的名字。 重启eclipse 推荐使用方法二 转自:http://hi.baidu.com/zdz8207/blog/item/71afb235c06b74aba71e1220.html

六月 6, 2012

通过shell命令一次性git checkout所有改动

一次性git checkout所有改动 git checkout|awk '{print $2}'|xargs git checkout git rm所有已删除文件 git checkout|awk '{if ( $1 == "D"){print $2}}'|xargs git rm 参考:一次向svn中增加所有新增文件 推荐图书:卓有成效的程序员

四月 25, 2012

完美实现同时分享图片和文字(Intent.ACTION_SEND)

使用以下代码可以很好的完成同时分享图片和文字的功能: private void share(String content, Uri uri){ Intent shareIntent = new Intent(Intent.ACTION_SEND); if(uri!=null){ shareIntent.putExtra(Intent.EXTRA_STREAM, uri); shareIntent.setType("image/*"); //当用户选择短信时使用sms_body取得文字 shareIntent.putExtra("sms_body", content); }else{ shareIntent.setType("text/plain"); } shareIntent.putExtra(Intent.EXTRA_TEXT, content); //自定义选择框的标题 //startActivity(Intent.createChooser(shareIntent, "邀请好友")); //系统默认标题 startActivity(shareIntent); }

二月 6, 2012

[自动化]SVN 日志模板--svn checkin log template

# !/bin/sh # # SVN_EDITOR script # [ $# -eq 1 ] || { echo "usage: $0 file" exit 1 } file=$1 ed=$VISUAL [ -z $ed ] && ed=$EDITOR [ -z $ed ] && ed=vi cat <$file.$ Feature : BugID : Author : Reviewer : Description : Changed List : ENDTEMPLATE cat $file >>$file.$ sum=`cksum $file.$` if $ed $file.$; then newsum=`cksum $file.$` if [ "$newsum" != "$sum" ]; then rm -f $file mv $file....

九月 2, 2011

Android源码开发中单个模块的编译自动化

# !/bin/sh . build/envsetup.sh lunch 1 case $1 in "pc") mmm packages/apps/Contacts/ find out -name Contacts.apk |xargs -t -i adb push {} system/app/ ;; "pp") mmm packages/providers/ContactsProvider find out -name ContactsProvider.apk |xargs -t -i adb push {} system/app/ ;; "ph") mmm packages/apps/Phone/ find out -name Phone.apk |xargs -t -i adb push {} system/app/ ;; "pf") mmm frameworks/base find out -name framework.jar |xargs -t -i adb push {} system/framework/ ;; "pm") mmm packages/apps/Mms/ find out -name Mms....

九月 2, 2011

shell脚本打开IE快捷方式url文件

[InternetShortcut] URL=http://www.baidu.com/ IDList= BEST=0 [{000214A0-0000-0000-C000-000000000046}] Prop3=19,2 以上是windows下保存的百度的快捷方式文件以文本形式打开的代码。所有url文件的格式基本一致,前2行相同,后面的略有不同,没有研究。 现在的任务就是取得网址,然后用浏览器打开。shell脚本读取文件的指定行可以用以下方法: cat $1 | awk ‘NR==2’ 或者 sed -n 2p $1 其中$1表示你输入的文件名,想读去第几行就用几代替2即可。所以打开url文件的脚本如下: cat $1 | awk ‘NR==2’ |sed ’s/URL=/ /g’ |xargs firefox sed -n 2p $1 |sed ’s/URL=/ /g’ |xargs firefox 读取第二行,然后用空格替换URL=,最后用firefox启动。即相当于是执行了 firefox http://www.baidu.com/ 将以上脚本保存为openurl.sh,并赋予运行权限。此时可以在命令行下使用以下命令打开url文件 ./openurl baidu.url 这样还是不方便,继续。在url文件上点击右键,选择使用其他应用程序打开, 选择使用自定义命令,然后点击浏览定位到我们的shell脚本文件openurl.sh,注意,选中下边的记住打开。。。这样以后只要双击url文件就会出现以下对话框,选择显示即可在浏览器中打开这个url文件。 但是后来经过测试,有些url文件打开无效。目前还不清楚原因,可能和网址或者url文件代码中第二行以后的代码有关。

八月 13, 2011

Ubuntu快捷键

Win+E - 显示所有桌面,方便的左右选择。需要鼠标点击选中,再按 Win+E 切换,所以不是很实用 Alt+Ctrl+Left/Right Arrow -切换桌面 Alt+Ctrl+Shift+Left/Right Arrow - 移动当前窗口到其他桌面 Alt + Enter 显示文件属性窗口 Alt+F9/F10 - 最小化/最大化当前窗口 Alt+F5 -不最大化当前窗口 Alt+F7 - 激活当前窗口的移动选项,你可以使用方向键移动当前窗口,甚至移动到其他桌面。 Alt+F8 - 用方向键调整当前窗口大小 Shift+Ctrl+N - 新建文件夹, 很有用 Ctrl + 1/2 - 改变文件夹视图查看方式,图标视图/列表视图 Ctrl + W - 关闭当前窗口 Ctrl + Shift + W - 关闭所有窗口(这2条只关闭窗口,不关闭应用程序) Ctrl+T - 在Nautilus中新建一个标签(Nautilus 就是 Ubuntu 下的资源管理器) Alt + Up/Down Arrow - 移动到父文件夹/选择的文件夹 Alt + Left/Right Arrow - 后退/前进 Alt + Home -跳转到主目录 F9 - 开关显示Nautilus侧边栏 Alt + F1 - 打开应用程序菜单 Alt + F2 - 打开运行应用程序对话框 Win + 鼠标滚轮 - 放大/缩小屏幕 FireFox中 Alt + Home 打开主页,Ctrl+Shift+T打开之前关闭的页面

八月 12, 2011