1. 关于合入代码冲突情形分析
问题: 对一个文件进行多个修改B和C,需要分开提交,提交前更新代码为服务器最新节点A,合入B后,服务器最新节点为B,合入第二个修改C时冲突,因为第二个修改C所在的节点还在A那里
解决方法 : 当遇到需要对一个文件进行多个修改多个提交时,先提交一个合入后,再提交另一个,不能再未合入前同时提交
2. 在编译****Android****的时候,经常看到这样的命令
** make -j8 2>&1 | tee build.log **
其中 make 是编译命令,
-j8 这里的 8 指的是线程数量,就是你要用几个线程去编译这个工程,一般会是 CPU核心数的2 倍。
提示:开多了会卡死的!!!
2是标准错误,&1是标准输出,2>&1意思就是将标准错误输出到标准输出中。
如果没有2>&1,只会有标准输出,没有错误; tee的作用同时输出到控制台和文件
make > build.log 是将所有标准输出到这个文件中,并没有定义标准错误应该是定义到了标准输出,也就是说如果make执行出现错误,那么就不会写到 build.log中,而是输出到屏幕上,
2>&1是错误和结果都重定向到build.log中!
可以到根目录看到 build.log
3 . git stash****恢复
首先我先给大家讲一下我是如何丢弃代码的: 1.git stash``将写好的文件暂存缓存区
2\. git pull origin develop``从``develop``分支下载最新代码
3\.
发现没啥冲突,然后准备``git stash pop
4\.
在``git stash pop``时候发现有个文件改了,然后准备继续``git stash``然后``drop``一个文件
5\.
对!你没看错!就是这里!我竟然打错了``git stash``打成了``git status``!然后!直接``git stash drop stash@{0}``然后``git stash pop``!然后!对!
没有然后了!
6\.
错误就这样发生了,今天刚写了一天的代码啊,我凑!不行!不能怂,就是干!打开度娘,哎,别说,还真有人解决了这个问题,顿时。。。心花路放啊!
7\.
好,现在将方法告知!采用以下命令,即可找回丢弃代码!
8\.
首先``git fsck --lost-found``这个就是可以看下自己最近的一些删除的提交。
然后找到上述你刚才``git stash drop stash@{0}``时成功删除的``id``。例如:
Dropped stash@{0} (e2c07caec2b995ba75ce1abd15796c6f1686d532)
然后拷贝``e2c07caec2b995ba75ce1abd15796c6f1686d532``查找``git fsck --lost-found``列出的删除的提交``id``,
如果有恭喜你,离找回只差一步,你可以先用
git show e2c07caec2b995ba75ce1abd15796c6f1686d532``看一下是不是你丢弃的改动文件,
如果是,直接``git merge e2c07caec2b995ba75ce1abd15796c6f1686d532``即可找回!
后来想想其实这次丢失文件未尝不是一件好事,充分显示了``git``的强大,也又``get``到了新技能,简直棒棒哒!
不过还是奉劝大家,能别出错尽量别出错,万一出错出的太狠,可不一定真能再把错误纠正回来的。
4 . android中include和merge标记的区别和使用
<pre>include和merge标记的作用主要是为了解决layout的重用问题。 比如我们有三四个Activity但是他们都要用到同一个样式的标题栏,虽然我们把一样的代码copy个三四遍也没关系,但实在是太丑了,而且效率太低,如果这个标题栏要改样式,你岂不是要去三四个地方分别改动。 为了解决这个问题,android中有了include和merge标记 以下为标题栏的layout文件titlebar.xml 我们将使用Include标记重用这个文件 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width=”match_parent”
android:layout_height="wrap_content"
android:background="@color/titlebar_bg">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gafricalogo" />
</FrameLayout> 那么在那三四个activity中你可以适用Include标记
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity="center_horizontal">
<include layout="@layout/titlebar"/>
<TextView android:layout_width=”match_parent”
android:layout_height="wrap_content"
android:text="@string/hello" />
...
</LinearLayout> 调用了Include之后,titlebar文件的内容就被完全嵌入到了include所指定的位置。而且你还可以在include中重新更改一些属性的值,比如 <include android:id=”@+id/news_title”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
layout="@layout/title"/> 原来layout中的wrap_content属性就被改成了match_parent属性 再来说一下merge标记 上面的include有一个副作用就是他多套了一层root节点FrameLayout ,使得再构图的时候会多花费一点时间 如果你不能容忍这个的话那你可以试一下merge标记 titlebar2.xml
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gafricalogo" />
</merge> 这样行成的titlebar2文件就少了外层的root节点,merge标记可以直接成为root节点,当titlebar2被include到文件中时,merge标记就会被忽略掉,而直接由里面的ImageView取代原来include的位置。避免了冗余的layout。 所以include和merge是配合使用的,不是一个互斥的或者说是平级的关系。 再来说一个在使用这两个标签时最容易出现的问题。 经常会有同学在RelativeLayout中使用include标签 但是却发现include进来的控件无法用layout_alignParentBottom="true"之类的标签来调整。这个真的非常恼火。其实解决方法非常简单,只要你在include的时候同时重载下layout_width和layout_height这两个标签就可以了。如果不重载,任何针对include的layout调整都是无效的!</pre>
pathData里面的数据是代码简化而来的,其是就是一些画图的命令;在这里可以指定画笔移动到哪里(M),从当前位置开始画一条线到指定位置(L),画一个椭圆(A);等等,这些这些东西一时半会很难理解的,而且难于精通,建议楼主看一看SVG的内容,应为这个东西属于W3C,不仅仅适用于Android,学习它还是蛮有意义的。
5. repo sync [project]
下载最新本地工作文件,同步 repository 中的代码。 可以指定需要更新的project , 如果不指定任何参数,会同步整个所有的项目
如果是第一次运行 repo sync , 则这个命令相当于 git clone ,会把 repository 中的所有内容都拷贝到本地。
如果不是第一次运行 repo sync , 则相当于 更新 和 自动合并 动作;
repo sync 会更新 .repo 下面的文件。 如果在merge 的过程中出现冲突, 这需要手动运行 git rebase --continue
6. W5Lite cleaninstall****后增量编译无****scatter****文件生成
删除 W:\W5Lite\out\target\product\rlk6580_we_m\obj\PTGEN
网友评论