初识git--基础命令

时间:2022-10-22 21:43:20

重要:远程分支是一些无法移动的本地分支,本地分支,本地分支,三遍!是对远程库中分支的索引,只有在git进行网络交互时才会更新,用 (远程仓库名)/(分支名) 这样的形式表示远程分支

一、基础命令1

1 修改全局名称和邮箱,可用其他命令修改单独库

git config --global user.name "xxx"

git config --global user.email "xxx"

2 在需要成为仓库的目录下,初始化git文件仓库

git -init

3 查看git仓库当前状态 有相关提示指令

git status

4 添加到暂存库,提交(并写有意义的提交提示)

git add fileName

git commit -m "xxx"

5 查看当前状态后,若有修改,可查看指定文件发生了什么修改变化

注意:在文件未git add时,若对文件修改了多次,使用git diff 时,只会比较最后一次修改和最后提交部分的不同,中间修改不记录

git diff fileName   (默认把当前工作空间最新的和最新的版本库中内容进行比较)

其他形式:把当前工作空间(可以是暂存区)最新的和指定版本库中的内同进行比较

git diff sha1值或head^等  --  fileName   ,其中sha1值或head^等为指定的版本库

小结:

随时查看git状态,用git status,查看哪个文件本怎么修改 用git diff fileName

----------------------------------------------------------------------------------------------------

二、基础命令2

1 显示从最近到最远的提交情况。

git log(sha1/author/date/提示)

git log --pretty=oneline 一行信息展示(sha1/提示)

2 跳到之前某个已经提交的版本(上个/上上个/前100个)

git reset --hard HEAD/HEAD^/HEAD^^/HEAD~100

git reset --hard 版本号(可以写前面几个字母数字 git自动查找)  可以跳到任意一个指定版本号的版本,故可前进和回退到指定版本

注意:此时需要知道确定的版本号(sha1值)。

3 若已经关闭shell,无法知道某个版本sha1值,如何回退?   需要查看commit和reset的相关操作 ,找到某个版本号

git reflog

小结:

'在git 中各个版本之间来回,改变的知识head指针指向的某个版本,速度极快。

HEAD表示当前版本 , HEAD^表示上一个, HEAD^^上上一个,HEAD~100上100个版本

跳到指定版本命令:git reset --hard commit_id

回退前需要查看历史提交记录(从最近到最远)git log  /git log --pretty=oneline

回到未来,需要查看命令历史 git reflog

----------------------------------------------------------------------------------------------------

三、基础命令3

1 对工作区(非暂存区)修改的文件进行撤销 (注意和git reset --hard head^/sha1有区别 这个是直接回退到某个commit版本)

   此处 --不能丢失,否则为切换分支命令, 这里撤销有两种情况:1)暂存区中没有,撤销后回到最新的commit版,2)

暂存区中有,则撤销后回到暂存区中的版本

git checkout --  fileName

2  暂存区的修改回退到工作区  

git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

git  reset head fileName

注意:若把文件改好了,从暂存区提交,此时想更改,可以通过git reset --hard head^回退到上个版本。

但是若已经上传到了远程,那就完蛋了。

小结:

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

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

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考git reset --hard submit_id,不过前提是没有推送到远程库。

----------------------------------------------------------------------------------------------------

四、基础命令4

说在前:

版本库1----->已修改未进暂存区----->已进入暂存区----->已修改未进暂存区

git reset --hard commit_id 回退到不同版本  也可git reset head fileName 从暂存区中撤销,回到工作区

git add fileName进去添加暂存区   git rm fileName进入删除暂存区

git checkout-- fileName 其实是用版本库或暂存区里的版本替换工作区的版本。添加时用此命令表示退回到最近的暂存区或版本库,误删除时用此命令,表示还原文件退到删除之前的  最近的暂存区或者版本库中。

1 删除与误删, 删除情况rm和add增加的情况类似,删除也有一个删除暂存区

在文件夹中删除一个文件之后有2中情况:

1)确实要删除,rm fileName,git rm fileName  进入删除暂存区; git commit -m "delete fileName"  即可彻底从git中删除,无法恢复

2)已经在文件夹中误删,但git中未删, git checkout-- fileName 后有4种情况(根据文件的修改情况如上图分类):会进入最近的版本库或者暂存区,未在版本库或暂存区中的修改会丢失

注意:不能对进入删除暂存区(git rm fileName)中的文件直接使用git checkout-- fileName进行恢复,必须先从删除暂存区中退回到删除工作区git reset head fileName,后再git checkout-- fileName进行恢复

  一句话,只要没有从git中彻底git rm,git commit删除,都可以进行恢复操作,恢复到文件之前的版本

---

不删除文件夹中文件,只是删除git中,git rm --cached fineName

----------------------------------------------------------------------------------------------------

五、基础命令5

1 在本地git仓库文件夹下,添加远程库:

    git remote add origin git@github.com:feiwang1991/learnGit.git

此命令后,origin是git的默认远程仓库名称,

 2  第一次推送到远程仓库,-u参数 不但会把本地的master分支推送到远程新的master分支,还会把本地master和远程master分支关联起来

git push -u origin master

此时,只要本地做了修改提交后,即可使用git push origin master,推送到远程

小结:

要关联一个远程库,使用命令:git remote add origin git@服务器地址:path/repo-name.git

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

在每一次本地提交后,可git push origin master 只要有必要,就可推送修改。

git可以不需要联网时,在本地提交,但是svn需要联网才能提交,只能通过网络提交,git可以有网络时再一次性提交

----------------------------------------------------------------------------------------------------

六、基础命令6

通常最好的方式是先在远程建立一个远程库,然后克隆到本地

1 从远程仓库克隆一个仓库到本地

git clone git@github.com:feiwang1991/gitSkills.git

小结:

克隆的时候使用git clone命令

git支持多种协议,其中git方式默认支持ssh协议,速度最快,当然也可以使用https协议,这个每次需要输入口令,速度较慢。

----------------------------------------------------------------------------------------------------

七、基础命令7

 1 创建分支

   git branch xxx

 2 切换分支

   git checkout xxx

 3 创建并切换分支,相当于1和2的两个效果。

   git checkout -b xxx

4 查看当前分支

git branch

 5 合并指定分支到当前分支

  git merge xxxbranch

 6 删除分支 

   git branch -d xxx

小结:

Git鼓励大量使用分支,速度极快,且安全

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建并直接切换到分支:git checkout -b <name>

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

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

----------------------------------------------------------------------------------------------------

八、基础命令8

在当前分支中合并某个分支用git merge xxx ,分支合并有fast-forward ,这种不需要解决冲突。 另一种是会产生冲突,此时需要在冲突文件中,手动解决冲突,然后git add,git commit即可

 注意:冲突解决后,其他分支仍在原始位置,并没有跟进,需要删除分支

 1 查看分支合并情况图

  git log --graph --pretty=oneline --abbrev-commit

----------------------------------------------------------------------------------------------------

九、基础命令9

合并分支时,如果可以git会使用fast-forward方式,如果删除分支后,会丢失分支信息,

若要强制禁止使用此中方式,可以git merge --no-ff -m <name>方式,git在merge时会产生一个新的commit,这样从历史上就可以看出分支信息。

1 禁止使用fast-forward方式

git merge --no-ff -m "" <name>

分支策略:

git开发时,应该注意几个原则。master分支时最稳定的分支,一般不在上面开发,master分支用于发布新的稳定版本。

dev分支用于开发任务,每个小伙伴从dev中弄一个自己的分支,ok了就往dev上合并就可以了

初识git--基础命令

----------------------------------------------------------------------------------------------------

十、基础命令10

 BUG分支:当出现bug时,如紧急接到issue-101BUG,我们此时在dev分支上进行新功能开发,且暂时有许多在暂存区和工作区的文件未提交,暂时无法写完,怎么办?

 需要对当前dev环境进行存档,以一个十分干净的环境修改bug,这很重要(用之前稳定的版本修改bug),若在master上修改bug,则从master出分支,完成后合并bug,之后切换并还原dev现场存档,继续开发等工作。

 1 将工作线程存储起来

   git stash

2 查看当前分支中所有存档的现场

git stash list

3 恢复现场

git stash apply

4 恢复后删除现场

git stash drop

5 恢复并删除现场存档,等于3和4两步操作

git stash pop

 6 可以多次stash,恢复时候可以恢复指定stash (查看用git stash list)

git stash apply <stash@{0}>

小结:

当有bug时,我们通过创建bug分支修复bug,然后修复bug,然后合并

当手头工作没完成时,我们把现场保存一下git stash,然后去修复bug,完成后恢复现场继续工作

----------------------------------------------------------------------------------------------------

十一、基础命令11

1 如果要丢掉一个没有合并过的分支,如用来开发新功能的feature分支,每次开发新功能需要创建一个feather分支,即不能正常删除,会提示丢失数据

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

十二、基础命令12

  • master分支是主分支,因此要时刻与远程同步;

  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

1 从远程仓库克隆到本地,git会直接关联本地master分支和远程master分支,且将远程名称默认为origin

   git clone git@github.com:feiwang1991/learnGit.git

2 在本地git仓库文件夹下,添加远程库:

    git remote add origin git@github.com:feiwang1991/learnGit.git

此命令后,origin是git的默认远程仓库名称,

 3 第一次推送到远程仓库,-u参数 不但会把本地的master分支推送到远程新的master分支,还会把本地master和远程master分支关联起来

git push -u origin master,此处的origin是远程库名称,master是本地分支的名称

git push origin master  意思为将本地master分支内同推送到远程Origin中对应的分支中去

十三、基础命令13 关于pull push merge rebase fetch区别

1 git clone url 之后默认远程仓库名字 origin

2 git remote -v 查看远程仓库名称 url

3 git remote add name url 添加远程仓库

4 git fetch remote-name 抓取远程仓库的所有本地没有的信息,可抓取所有分支,之后可以对其合并或者查看

如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下。所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以使用 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。在日常工作中我们经常这么用,既快且好。实际上,默认情况下git clone 命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有 master 分支)。所以一般我们运行git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。

5 git push remote-name local-branch-name

项目进行到一个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。实现这个任务的命令很简单: git push [remote-name] [branch-name]。如果要把本地的 master 分支推送到origin 服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字).如果在你推数据前,已经有其他人推送了若干更新,那 你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。

6 git remote show remote-name 查看某个远程仓库的详细信息 如push pull分支信息

初识git--基础命令

它告诉我们,运行 git push 时缺省推送的分支是什么(译注:最后两行)。它还显示了有哪些远端分支还没有同步到本地(译注:第六行的caching 分支),哪些已同步到本地的远端分支在远端服务器上已被删除(译注:Stale tracking branches 下面的两个分支),以及运行git pull 时将自动合并哪些分支(译注:前四行中列出的 issues 和 master 分支)。

8 git remote rename old-name new-name 给远程仓库重名了

git remote rm remote-name 移除远程仓库

9 git branch -v 查看每个分支最后提交的情况

git branch --merged/ --no-merged看哪些分支已经被/没有并入到当前分支

10 重要:假设你们团队有个地址为 git.ourcompany.com 的 Git 服务器。如果你从这里克隆,Git 会自动为你将此远程仓库命名为origin,并下载其中所有的数据,建立一个指向它的 master 分支的指针,在本地命名为origin/master,但你无法在本地更改其数据。接着,Git 建立一个属于你自己的本地master 分支,始于 origin 上 master分支相同的位置,你可以就此开始工作

初识git--基础命令

一次 Git 克隆会建立你自己的本地分支 master 和远程分支 origin/master,它们都指向 origin/master 分支的最后一次提交。

http://blog.jobbole.com/25877/

如果你在本地 master 分支做了些改动,与此同时,其他人向 git.ourcompany.com 推送了他们的更新,那么服务器上的master 分支就会向前推进,而于此同时,你在本地的提交历史正朝向不同方向发展。不过只要你不和服务器通讯,你的 origin/master 指针仍然保持原位不会移动(见图 3-23)。

初识git--基础命令

图 3-23. 在本地工作的同时有人向远程仓库推送内容会让提交历史开始分流。

可以运行 git fetch origin 来同步远程服务器上的数据到本地。该命令首先找到 origin 是哪个服务器(本例为git.ourcompany.com),从上面获取你尚未拥有的数据,更新你本地的数据库,然后把 origin/master 的指针移到它最新的位置上(见图 3-24)。

初识git--基础命令

图 3-24. git fetch 命令会更新 remote 索引。

11 推送本地分支 重要

如果你有个叫 serverfix 的分支需要和他人一起开发,可以运行 git push (远程仓库名) (本地分支名): git push origin serverfix

==git push origin serverfix:serverfix

这其实有点像条捷径。Git 自动把 serverfix 分支名扩展为 refs/heads/serverfix:refs/heads/serverfix,意为“取出我在本地的 serverfix 分支,推送到远程仓库的 serverfix 分支中去”。不过一般使用的时候都可以省略它。也可以运行 git push origin serverfix:serferfix 来实现相同的效果,它的意思是“上传我本地的 serverfix 分支到远程仓库中去,仍旧称它为 serverfix 分支”。通过此语法,你可以把本地分支推送到某个命名不同的远程分支:若想把远程分支叫作awesomebranch,可以用 git push origin serverfix:awesomebranch 来推送数据。接下来,当你的协作者再次从服务器上获取数据时,他们将得到一个新的远程分支 origin/serverfix:

git fetch origin

值得注意的是,在 fetch 操作下载好新的远程分支之后,你仍然无法在本地编辑该远程仓库中的分支。换句话说,在本例中,你不会有一个新的serverfix 分支,有的只是一个你无法移动的 origin/serverfix 指针。如果要把该内容合并到当前分支,可以运行 git merge origin/serverfix。如果想要一份自己的 serverfix 来开发,可以在远程分支的基础上分化出一个新的分支来:

git checkout -b serverfix origin/serverfix这会切换到新建的 serverfix 本地分支,其内容同远程分支 origin/serverfix 一致,这样你就可以在里面继续开发了。我们克隆时候,不需要自己新建本地master分支,会自动创建

12 跟踪远程分支 重要

从远程分支 checkout 出来的本地分支,称为_跟踪分支(tracking branch)_。跟踪分支是一种和远程分支有直接联系的本地分支。在跟踪分支里输入git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在这些分支里运行 git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。

在克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master。这正是git push 和 git pull 一开始就能正常工作的原因。当然,你可以随心所欲地设定为其它跟踪分支,比如origin 上除了 master 之外的其它分支。刚才我们已经看到了这样的一个例子:git checkout -b [分支名] [远程名]/[分支名]。如果你有 1.6.2 以上版本的 Git,还可以用–track 选项简化:

git checkout --track origin/servfix

要为本地分支设定不同于远程分支的名字,只需在前个版本的命令里换个名字

git checkout -b sf  origin/serverfix 现在你的本地分支 sf 会自动向 origin/serverfix 推送和抓取数据了。

13 删除远程分支

如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放稳定代码的地方),可以用这个非常无厘头的语法来删除它:git push [远程名] :[分支名]。如果想在服务器上删除serverfix 分支,运行下面的命令:git push origin :serverfix

咚!服务器上的分支没了。你最好特别留心这一页,因为你一定会用到那个命令,而且你很可能会忘掉它的语法。有种方便记忆这条命令的方法:记住我们不久前见过的 git push [远程名] [本地分支]:[远程分支] 语法,如果省略 [本地分支],那就等于是在说“在这里提取空白然后把它变成[远程分支]”。

14分支的合并 重要

http://blog.jobbole.com/25877/ 参考其合并操作

切换到次分支中,在次分支中git rebase master(主要分支),就可以把次分支做成补丁在朱分支中重做,此时产生一个新的提交成为主分支的直接下游,当前次分支指针指向这个新的提交,此时主分支还在原始位置。只需对主干进行一次快进合并即可

git merge 次分支,是在主分支中进行的,把次分支合并进当前主分支,git rebase 主分支,是在次分支中进行的,合并入主分支,次分支指针前进

虽然最后整合得到的结果没有任何区别,但衍合能产生一个更为整洁的提交历史。请注意,合并结果中最后一次提交所指向的快照,无论是通过衍合,还是三方合并,都会得到相同的快照内容,只不过提交历史不同罢了。衍合是按照每行的修改次序重演一遍修改,而合并是把最终结果合在一起。

git rebase --onto master server client 把client上的东西跳过server在master上重做一遍

重要:”我们可以直接把 特性分支衍合到主分支,而不用手工切换到 特性分支后再执行衍合操作 — git rebase [主分支] [特性分支] 命令会先取出特性分支server,然后在主分支 上重演:

之后再在切换到主分支上进行git merge 特性分支 快速前进即可

如果把衍合当成一种在推送之前清理提交历史的手段,而且仅仅衍合那些尚未公开的提交对象,就没问题。如果衍合那些已经公开的提交对象,并且已经有人基于这些提交对象开展了后续开发工作的话,就会出现叫人沮丧的麻烦。

小结:

关于重要的几个概念:

1 git中会把远程仓库中的分支通过git fetch remote-name 拉所有分支到本地 ,这就是远程分支 remote-name/branch-name表示。远程分支只用来拉数据(不能直接更改数据),和本地的分支是两回事,本地分支可通过git checkout -b 本地分支名 remote-name/remote-branch 的方式(或git checkout --track 远程名/分支名)产生一个和远程分支同起点的跟踪分支,clone的话,git可以直接产生origin/master的远程分支和master的本地跟踪分支,在跟踪分支可直接git push ,git pull

2 远程分支是不能更改数据的,只可以从远程git fetch name,可以通过远程分支对应的跟踪分支进行push数据即可

3 git rebase 只能必须只合并没有共享过的内容,不然会丢失内容,造成混乱

4 跟踪分支有个方便之处就是可以直接使用git pull  git push, 也可不需要,我们写满 git push remote-name branch-name、git pull remote-name branch-name也可以

十四、基础命令14

  标签就是给对应的commit版本一个好记住的名字,而已。

  1 打标签,切换到需要打的分支上,若直接打标签 git tag <name>

     git tag v1.0 就是在最新的提交上打标签

  2 查看已经打的标签

     git tag

  3 若想在之前提交的版本上打tag,可以先查看之前commit的版本号码,根据git tag <name> <commit_id>

   git tag v0.3 3ffr4

  4 查看某个标签对应版本的具体信息

git show tag-name

5 可以打具有说明的标签 -a是标签名  -m是说明

git tag -a  <name> -m "xxx" commit_id

6 删除标签

git tag -d <name>

7 推送某个标签到远程

git push origin <tag-name>

8 一次性推送所有尚未推送到远程的标签到远程

git push origin --tags

9 删除标签 ,要先从本地开始删除 git tag -d name, 再从远程删除

git push origin :refs/tags/v0.1

小结:

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

  • 命令git push origin --tags可以推送全部未推送过的本地标签;

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

  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

   十五、基础命令15

    1 .gitignore文件 ,直接放在工作目录下  且为了起作用必须提交到git

     里面直接写 *.txt 等或者 a.b就可以

    2 可以使用别名替代常命令

git config --global alias.st status

git config --global alias.ci commit

git config --global alias.br branch

     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"

  

初识git--基础命令的更多相关文章

  1. 学习 git基础命令

    缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...

  2. 常用 git 基础命令

    git config --global credential.helper store记住密码 git config user.name xxx配置帐号 git config user.email x ...

  3. Git基础命令的使用——详细教程2

    Git安装默认完成后,在左面点击鼠标右键,鼠标右键菜单中会多出来两个选项: a)  Git GUI Here <—>  图型界面模式 b) Git Bash Here <—> ...

  4. &lbrack;git&rsqb; 基础命令笔记

    --内容整理自廖雪峰的GIT教程-- git status 查看当前工作区状态,显示未跟踪的文件以及未上传的修改记录 git init 使当前文件夹变成Git可以管理的仓库 git add xxx 将 ...

  5. git基础命令详解

    一些必须要知道的概念 git的三个工作区域:工作目录.暂存区.git仓库. 工作目录:其实就是本地文件磁盘上的文件或目录: 暂存区:是一个文件,保存了下次提交的文件列表信息,一般在git仓库目录中: ...

  6. git 基础命令 学习总结

    首先介绍一个git 里工作流的概念: 你的本地仓库由 git 维护的三棵“树”组成.第一个是你的 工作目录,它持有实际文件:第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动:最后是 H ...

  7. git 基础命令

    1.git init git 初始化仓库 2.git add . git 添加全部文件 3.git add xxx.txt   git 添加单独文件 4.git commit -m "提交的 ...

  8. Git基础命令的使用

    当前git版本: git version 2.9.2.windows.1 1.创建一个能与git服务器连接的本地git库 本地:  git init git status (-s) git add . ...

  9. Git基础命令使用(个人总结)

    个人在开发中整理常用的git命令,相信很多人会需要到的. 全局配置信息: git config --global user.name "Your name" git config ...

  10. git基础命令学习总结

    git版本升级 git clone git://git.kernel.org/pub/scm/git/git.git 列出所有 Git 当时能找到的配置 git config --list git c ...

随机推荐

  1. vue-router2使用

    条件:紧接前面vue.js开发环境搭建 1.在cmd输入:npm install vue-router,回车,等待,安装对应版本router: 2.在入口文件用 import vueRouter fr ...

  2. json和pickle

    Pickle序列化 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 python的pic ...

  3. Python学习02 列表 List

    Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...

  4. Oracle Purchasing QUESTIONS AND ANSWERS

    Topic Summary Topic: CORRECTIONS: Corrections Topic: DELIVER: Receiving Delivery Topic: DROPSHIP: Dr ...

  5. 使用AChartEngine第一步:在项目中配置AChartEngine环境

    1. 从AChartEngine官网上下载acharengine的jar文件包. 地址:https://code.google.com/p/achartengine/downloads/list 2. ...

  6. struts2拦截器与过滤器

    转载:http://www.cnblogs.com/JohnLiang/archive/2011/12/15/2288376.html 过滤器,是在java web中,你传入的request,resp ...

  7. Android Map新用法:MapFragment应用

    MapView ,MapActivity 这种的局限在于,必须要继承MapActivity,否则无法使用MapView,但是,MapFragment 这种的局限在于,必须要安装Google Play ...

  8. java多线程(同步与死锁问题,生产者与消费者问题)

    首先我们来看同步与死锁问题: 所谓死锁,就是A拥有banana.B拥有apple. A对B说:你把apple给我.我就把banana给你. B对A说:你把banana给我,我就把apple给你. 可是 ...

  9. 【解惑】剖析float型的内存存储和精度丢失问题

    问题提出:12.0f-11.9f=0.10000038,"减不尽"为什么? 现在我们就详细剖析一下浮点型运算为什么会造成精度丢失? 1.小数的二进制表示问题 首先我们要搞清楚下面两 ...

  10. c&plus;&plus;&sol;cmake &sol;Android NDK 动态链接库交叉编译笔记

    项目使用cmake管理,由于项目的需要,核心代码要求跨 Linux/Windows/Android 三平台.Windows和Linux都好说,但Android NDK费了一番功夫还是没有解决.临时的解 ...