Git Commit 未Push 自动切到其他版本的解决方式

现象描述:

我在现有的分支上进行修改代码,使用git提交本地代码后,SourceTree上面没有记录,我就纳闷了,我原本以为我提交到其他项目了,仔细查看了几个项目的提交记录也都没有,于是退出SourceTree,在打开这个项目还是没记录,并且最新修改的分支在两个版本之前的Develop v2.2.2分支(这个我记得我是在最新的分支上开发的,不排除我在其他分支上进行开发的情况),不过这个都不是事儿,怎么恢复修改的代码到最新的分支上面呢?下面提供解决方案~~

解决方案:

  1. 打开gitbash 命令行;
  2. 输出git log 查看不到提交历史的历史记录;
  3. 输入git reflog可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录。
阅读更多
Android 中取得当前时区和语言

国际化需求,要访问当地的时区和语言,作为参数上传服务器处理一些业务,Android手机中如果想以GMT形式(GMT+08:00)得到当前时区,如下的工具类做个记录:

阅读更多
Android NDK 开发(五)AndroidStudio 2.2 更友好的支持NDK

前言

之前一直在用Eclipse 做开发,直到今年年初才将项目迁移到Google 推荐的AndroidStudio上面,毕竟这是一个趋势,可谁知道事情根本没有我想的那么简单,这期间遇到了N多坑,我想这些坑可能大家也有可能遇到,不在这里详细叙述。最终一个个问题的去解决,走完了这些坑,觉得还挺好用的,Eclipse 是一个吃内存的IDE,反正我每次打开,编写代码的时候就会卡,有时候还是死掉,已无力吐糟~~,AndroidStudio的界面更人性化,除此之外,还有更多的功能。所以决定把之前在正在eclipse上开发的一个使用NDK开发的android项目转移到AndroidStudio上,在2.2之前对C/C++ 支持不是很友好,没有语法提示,编译也不方便等问题,所以期待了的Android Studio 2.2 版本稳定版终于在前段发布,一直未来得及尝试,今天把整个过程记下来,希望能给你有所帮助。

参考文献:https://developer.android.com/studio/projects/add-native-code.html#create-sources

阅读更多
Android NDK 开发(四)JNI 中局部引用、全局引用和弱全局引用

前言

做过Java的朋友都知道,内存管理这一块是完全透明的,new一个类的实例时,只知道创建完这个类的实例后,会返回这个实例的一个引用,然后拿着这个引用去访问它的成员了(属性、方法),完全不用管JVM内部怎么实现的,如何为新建的对象申请内存,使用完之后如何释放内存,只需要知道有个垃圾回收器在处理这些事情就行了,然而,从Java虚拟机创建的对象传到C/C++代码时会产生引用,根据Java的垃圾回收机制,只要有引用存在就不回触发该引用所指向Java对象的垃圾回收;这些引用在JNI 中分为3种:全局引用(Global Reference)、局部引用 (Local Reference)、弱全局引用 (Week Global Reference) since JDK1.2。

正文

三种引用的区别

1、全局引用

全局引用可以跨方法、跨线程使用,直到被开发者显式释放。类似局部引用,一个全局引用在被释放前保证引用对象不被GC回收。和局部引用不同的是,没有那么多函数能够创建全局引用。能创建全局引用的函数只有 NewGlobalRef。以下例子说明了如何使用一个全局引用。

java native方法:

1
2
3
4
5
public native void createGlobalRef();
public native String getGlobalRef();
public native void deleteGlobalRef();
阅读更多
Android NDK开发(三)C访问Java属性和方法

前言

native方法虽然是native的,但毕竟是方法,那么就应该同其他方法一样,能够访问类的属性和方法。实际上,JNI的确可以做到这一点,我们通过几个例子来说明~

阅读更多
Android NDK开发(二)JNI传递参数和返回值

前言

我们在使用 JNI 时最常问到的是 JAVA 和 C/C++之间如何传递数据,以及数据类型之间如何 互相映射。我们从整数等基本类型和数组、字符串等普通的对象类型开始讲述。至于如何传递任意对象,将在后面会更新。

阅读更多
Shell 脚本基础学习之函数(五)

前言

Linux shell脚本基础学习我们这里就差不多讲完了,函数相信大家都不陌生吧,直接入正题吧~

正文

继上篇博客之后

shell 函数

Linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。
shell 中函数的定义格式如下:

1
2
3
4
function_name () {
list of commands
[ return value ]
}
阅读更多
Shell 输入/输出重定向(四)

前言

原本计划国庆节第一天假期休息一天,但是想想自己还有很多事情没有完成,就立马打开电脑,开始干活了。打算这7天的假期好好整理下之前学的知识和巩固练习,充实每一天,好了入正题,Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续,Here Document 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。

原文链接请标明:
http://xuhaoblog.com/linux/shell-script-04.html
本文出自:【stromxu的博客】

阅读更多
Shell 流程控制Loop和引号(三)

前言

Linux shell 脚本基础学习第三篇;
上一篇Liunx shell 脚本基础学习中,我们讲到了Linux shell 脚本中控制流程的if、select、case,这里接着介绍Linux shell 脚本控制流程的loop和引导,控制流程这部分内容较多,还有一部分是关于here document。

阅读更多
Shell 命令和流程控制(二)

前言

Linxu shell 脚本基础这里介绍到第二篇,详细介绍shell 命令和流程控制,这部分介绍三类命令,在学习时大家应该加以比较学习。
Linux shell脚本基础课程前面一篇介绍的都是语法基础的开头、注释、变量和 环境变量,这里将介绍shell命令和控制流程的第一部分,在shell脚本中可以使用三类命令,而控制流程就放在下一讲吧。

阅读更多