您的位置:首页 > 移动开发 > Android开发

Android从放弃到精通 第二天 我还好

2017-12-06 20:21 204 查看
今天发现野生的大神一只,毫不犹豫将我唯一的大师球投了出去,但是很遗憾,被秒逃脱= =

一只对git有不可磨灭的阴影,在各种时候的不愿去触碰它,但是在经过激烈的思想斗争之后,我还是毅然的选择了去拥抱它.

说说今天都遭遇到了一些什么事情吧,大神说的一句话令我十分感动,”Linus花了两周的时间自己写了一个分布式版本控制系统,这就是git!”感慨万千,我离神还是有一段很长的路要走的=
=,人与人的区别很多时候不仅仅在于能力,更多的时候甚至还与行动力有关,好吧,我承认这两者貌似是一个概念.

git教学方面建议大家去看看”廖雪峰的官方网站”,讲的很细,很通俗易懂,连我这种小白都能轻易理解,真的很厉害,链接也不贴了,百度稍微找一下就有了.

回顾一下这两天在大神的笔下学到的东西吧~大部分都是照搬雪峰大神的,我这里总结一下只是为了个人回顾用:

创建版本库

初始化一个版本库,使用git init命令

添加文件到git仓库,分为两步: 1.使用命令git add<file>可反复使用添加多个文件

2.使用命令git commit完成对git的提交

随时掌握工作区的状态,使用git status命令

如果git status告诉你文件被修改过,用git diff可以查看修改的内容

Git diff 的使用方法: git diff +
文件名

HEAD只想的版本就是当前版本,因此git允许我们在版本的历史之间穿梭

使用命令git reset —hard commit_id //说起来,到最后都没说hard到底是什么意思啊=
=

1.穿梭前
用git log可以查看当前的版本历史,以便确定要回到哪个版本

2.要重返未来
用git reflog查看历史命令,以便确定要回到未来的哪个版本

手残,瞎改文件的各种情况的解决方法(体现git的强大)

场景1:当你改乱工作区某个文件中的内容,想直接丢弃工作区的修改时,用命令git checkout
——file

场景2:当你不但改乱了工作区的某个文件,还添到了暂存区,想丢弃修改时,分两步,第一步用命令
git reset HEAD <fileName>,就回到了场景1

场景3:已经提交不合适的修改到版本库时,这时候只能使用版本回退,前提是没有推送到远程仓库,如果推送到远程仓库,你就惨了

命令rm用于删除一个文件,如果一个文件已经被提交到了版本库,那么你永远都不用担心误删,但是要小心,你只能恢复到最新版本,相关操作有

1.rm test.txt

2.git rm test.txt

3.git commit -m “”

4.git checkout ——test.txt
由此达到一键还原功能

要关联一个远程库,使用命令git remote add origin git@…

关联后使用命令git push -u oringin master第一次推送master分支的所有内容

此后,每次本地提交之后,只要有必要,就可以使用命令git push origin master推送最新修改

要克隆一个仓库们首先必须知道仓库的地址,然后使用git clone命令克隆

git支持很多协议,包括https,但是ssh支持原生git协议,速度最快

git鼓励大量使用分支,以下为常用的git分支相关的命令

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge<name>

删除分支:git branch - d <name>

当git无法自动合并分支时,就必须首先解决冲突,解决冲突后再提交,合并完成.

用git log ——graph命令可以看到分支合并图

git分支十分强大,再团队开发中应该能达到充分应用.合并分支是加上no-ff参数就可以使用普通模式合并,合并后的历史有分支,能看出曾经做过合并,而fase
forward合并就看不出曾经做过合并.

例如$git merge —no-ff -m “merge with no ff” dev

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,再git
stash pop,回到工作现场

查看工作现场:git stash list

Git stash pop = git stash apply + dit stash drop(这里要加上对应的编号,编号再list中可以看到)

开发一个新feature时,最好新建一个分支,如果要去弄一个没有合并过得分支

可以通过git branch -D <name>
强行删除

查看远程库信息,使用git remote -v

本地新家你的分支如果不推送到远程,对其他人就是不可见的

从本地推送分支,使用git push origin branch_name
如果推送失败,先用git pull抓取远程的新提交信息

在本地创建和远程对应的分支使用git checkout -b branch_name origin/branch_name本地分支和远程分支的名称最好一直

建立本地分支和远程分支的关联,使用git branch —set-upstream branch-name origin/branch_name

从远程分支抓取分支,使用git pull如果有冲突,先处理冲突

命令git tag<name>
用于新建一个标签,默认为HEAD,也可以指定一个commit_id

Git tag -a <tagname> -m “….”
可以指定标签信息 如果要制定id,在后面再加上id就行了

Git tag -s <tagname> -m “….”可以用PGP签名标签

命令git tag可以查看所有标签

命令git push origin <tagname>可以推送一个本地标签

命令git push origin —tag可以推送所有未推送过的本地标签

命令git tag -d <tagname>可以删除一个本地标签

命令git push origin:refs/tags/<tagname>

忽略某些文件时,需要编写 .gitignore

.gitignore文件本身要放到版本库中,并且可以对.gitignore进行版本管理的工作

另外的另外,有个狠狠很给力的语句

git config --global
alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' —abbrev-commit"

 

这个一句可以很好的看到图像化输出历史log的操作,而且语句之简单git lg足够了= =,这效果,能感觉的到作者满满的恶意,一定是作者第一次接触git的时候也没发现这个,看到有这么简单的方法,想着不能开始就给大家=
=

最后呢,还有git服务器相关的内容,因为最近穷,腾讯的服务器已经停机了,等有钱的时候再实践吧=
=

感觉有点走偏了,明明是见讲android相关方面的知识的,最后变成了git,虽然还是有一定的关系的,谈谈今天解决的相应的问题吧,以前看到每个第三方SDK需要授权的权限一堆一堆的,十分无语,每次都是不管3
7 21直接全部套上去,也不管是不是重复,但是今天我感觉我需要扭转一下我的态度了,今后的代码编写活动我希望讲每一个权限都进行一定的标注,并且删除重复的权限,让代码看起来更加的简洁而并非像原来那样还是乱成一锅粥.

今天在昨天那个项目上的进度还是微乎其微,因为各种原因,毕竟git比较陌生,需要一定的时间进行巩固,所以今天就谈谈bmob方面的内容吧,感觉现在接触的还是这个第三方sdk框架的及其冰山一角的冰山一角,很多方面都是这么感觉,先记录一下bmob的官方网站吧,www.bmob.cn

感觉用户注册和登录交给第三方来实现真的是很简单,主要有一点让我搞不懂的是,为什么一定要打开邮箱验证,用户信息才能完整的发送到呢=
=,等会试试,应该没有这么邪门

另外就是edittext:password被划线了…也就是说这个方法现在都没有人在用了,那么我就要看看他对应的替代品是什么了=
=

bmob默认的数据库参数username, password, phone, email,也就是说除了这些之外的用户信息,你如果需要的话,必须自己集成BmobUser类来自己实现,其实也很简单.

最后贴一份注册的代码吧= =

myUser.signUp(new SaveListener<MyUser>() {

                @Override

                public void done(MyUser myUser, BmobException e) {

                    if(e == null) {

                        Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();

                        RegisterActivity.this.finish();

                    }

                    else {

//                        Toast.makeText(RegisterActivity.this, "注册失败: " + e.getMessage(), Toast.LENGTH_SHORT).show();

                        L.de(e.getMessage());

                    }

好了,大家晚安,无论发生什么事情都要乐观的活下去哦.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: