版本管理工具:备份,或者记录过去记录,修改记录。从历史备份的文件中恢复,多端共享,团队协作
版本管理工具发展 cvs-svn-git -gitHub
将项目检出到本地:
git clone +项目地址
git clone -b 分支名仓库地址
例如:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git
将项目提交到gitHub:
1,将文件建立与git的跟踪 git add 文件
2,git commit
git add 是先把改动添加到一个缓冲区,你可以理解为暂时保存你的改动,而commit才是最后真正的提交,这样做的好处就是防止误操作。
gitadd&gitcommit看到这里估计很多人会有疑问,我想要提交直接进行commit不就行了么,为
什么先要再add一次呢?首先gitadd是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,
临时保存你的改动,而gitcommit才是最后真正的提交。这样做的好处就是防止误提交,当然也有办法把这两步合并成
一步,不过后面再介绍,建议新手先按部就班的一步步来
git branch 查看当前分支情况(分支的概念:
分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就是保证两人能协同合作的最大利器了。举个例子,A,B俩人都在做同一个项目,但是不同的模块,这个时候A新建了一个分支叫a,B新建了一个分支叫b,这样A、B做的所有代码改动都各自在各自的分支,互不影响,等到俩人都把各自的模块都做完了,最后再统一把分支合并起来。)
git branch a 创建一个名称为a的分支
git checkout a 切换到a分支去
快捷用法:git checkout -b a 创建一个名称为a的分支,并且切换到a分支去。
git merge
A同学在a分支代码写的不亦乐乎,终于他的功能完工了,并且测试也都ok了,准备要上线了,这个时候就需要把他的代码合并到主分支master上来,然后发布。gitmerge就是合并分支用到的命令,针对这个情况,需要先做两步,第一步是切换到master分支,如果你已经在了就不用切换了,第二步执行gitmergea,意思就是把a分支的代码合并过来,不出意外,这个时候a分支的代码就顺利合并到master分支来了。为什么说不出意外呢?因为这个时候可能会有冲突而合并失败,留个包袱,这个到后面进阶的时候再讲。
配置git sshKey 时遇到一个问题 “(
在 GIt Brash 中执行 ssh-keygen -t rsa 命令生产公用密钥,然后公用密钥复杂到gitHub网址中去。最后用ssh -T git@github.com 测试是否配置成功
You've successfully authenticated, but GitHub does not provide shell access.
)
github Host key verification failed.
原创 2015年01月05日 22:39:27
- 4215
- 14
- 12
不是密钥问题,不是权限问题,只是在询问 (yes/no)的时候直接回车了,输入yes 再回车就ok了!
”
关于git讲解非常详细的一篇笔记
Push:直译过来就是「推」的意思,什么意思呢?如果你本地代码有更新了,那么就需要把本地代码推到远程仓库,这样本地仓库跟远程仓库就可以保持同步了。代码示例:gitpushoriginmaster意思就是把本地代码推到远程master分支。Pull:直译过来就是「拉」的意思,如果别人提交代码到远程仓库,这个时候你需要把远程仓库的最新代码拉下来,然后保证两端代码的同步。代码示例:gitpulloriginmaster意思就是把远程最新的代码更新到本地。一般我们在push之前都会先pull,这样不容易冲突。
将代码提交到git:
git init 初始化
---要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:
git remote add xf git@github.com:nazi1992/comercePro.git 从远程地址克隆到本地
git pull origin master 从远程仓库origin分支 master 拉取文件
git add test.html 追踪 test.html
git commit -am 'test' 提交 test代表推送的文件描述
git push origin master 从本地推送到远程仓库origin的master分支
git push -u -f origin master
-u 代表会推送本地所有有远程链接的本地分支
git push -u origin master 如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push,
不带任何参数的git push,默认只推送当前分支,这叫做simple方式,还有一种matching方式,会推送所有有对应的远程分支的本地分支, Git 2.0之前默认使用matching,现在改为simple方式
如果想更改设置,可以使用git config命令。git config --global push.default matching OR git config --global push.default simple;可以使用git config -l 查看配置
-f 代表强制推送
昨晚上述操作后,就刷新gitHub软件就会出现自己推送的文件。
备注:git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
ls -al 显示隐藏文件
$ git checkout -b xf1 创建一个新的分支,并且切换过去。
git merge 合并分区
git tag tagtest1 tagtest1为标签名字,可自取,为当前版本打上标签,相当于开发的版本,可以保存每个版本在远程服务器,以便回溯等
git push origin tagtest1 提交标签---
git push --tags 提交所有tag
删除远程仓库中的文件
1,先删除本地仓库中的文件
git rm -r src/main/webapp/WEB-INF/lib
2,提交
git commit -am 'removevalid'
3,git push origin v1.0 推到远程仓库,完成同步,删除成功!
回退到上一个版本
git reset --hard xxx
其中xxx指的是 提交的id
通过 git log 可以查看每次提交的commit id ,
id不用写全,git会自动识别出完整的id
在本地创建一个项目,然后与git远程项目 同步的步骤
1,现在远程创建一个项目
2,克隆到本地
3,在本地的创建项目覆盖该项目