git操做详见:http://www.cnblogs.com/fanlinqiang/p/7741220.htmlhtml
第一步:$> ssh一keygen 一t rss 一C zhangsan@abc.com 第二步:拷贝公钥到gitlab 第三步: $> git config —global user.name zhangsan $> git config —global user.email zhangsan@abc.com 第四步:$> git clone git@lab.com:org/project.git 第五步:$> git checkout 一b project一20170227一zhangsan一bugfix 第六步:修改代码 第七步:git status 第八步:git add . 第九步:git commit 一am ‘bugfix’ 第十步:git push 一一set一upstream origin project一20170227一zhangsan一bugfix
Index/Stage:暂存区java
Workspace:工做区git
Repository:仓库区(或本地仓库)算法
Remote:远程仓库服务器
git init; (# 在当前目录新建一个Git代码库)网络
git add (添加当前目录的全部文件到暂存区)ssh
git rm –cached [file] (# 中止追踪指定文件,但该文件会保留在工做区)分布式
git commit [file1] [file2] -m [message] (# 提交暂存区的指定文件到仓库区 )svn
git branch -a (列出全部本地分支和远程分支)gitlab
git checkout [branch-name] (# 切换到指定分支,并更新工做区)
git status( # 显示有变动的文件)
git push [remote] -tags (# 提交全部tag)
详细参见:http://www.cnblogs.com/fanlinqiang/p/7741220.html
git是分布式的,svn不是。
git跟svn同样有本身的集中式版本库或服务器。但git更倾向于被使用于分布式模式,克隆版本库后即便没有网络也可以commit文件,查看历史版本记录,建立项目分支等,等网络再次链接上Push到服务器端。
git把内容按元数据方式存储,而svn是按文件。
全部的资源控制系统都是把文件的元信息隐藏在一个相似.svn,.cvs等的文件夹里。
git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上全部的东西,例如标签,分支,版本记录等。
git没有一个全局的版本号,svn有。
git的内容完整性优于svn。由于git的内容存储使用的是SHA-1哈希算法。
git能够有无限个版本库,svn只能有一个指定中央版本库。
当svn中央版本库有问题时,全部工做成员都一块儿瘫痪直到版本库维修完毕或者新的版本库设立完成。
每个git都是一个版本库,区别是它们是否拥有活跃目录(Git Working Tree)。若是主要版本库(例如:置於GitHub的版本库)有问题,工做成员仍然能够在本身的本地版本库(local repository)提交,等待主要版本库恢复便可。工做成员也能够提交到其余的版本库!
方法1:在当前主分支修改bug,暂存当前的改动的代码,目的是让工做空间和远程代码一致: Git stash 修改完bug后提交修改: git add . git commit 一m "fix bug 1" git push 从暂存区把以前的修改恢复,这样就和以前改动同样了 git stash pop 这时可能会出现冲突,由于你以前修改的文件,可能和bug是同一个文件,若是有冲突会提示: Auto一merging xxx.Java CONFLICT (content): Merge conflict in xxx.java 前往xxx.java解决冲突 注意stash pop意思是从暂存区恢复到工做空间,同时删除此条暂存记录。
方式2:拉一个新分支,老司机都推荐这样作,充分利用了git特性,先暂存一下工做空间改动:
git stash 新建一个分支,而且换到这个新分支 git branch fix_bug //新建分支 git checkout fix_bug //切换分支 这时候就能够安心的在这个fix_bug分支改bug了,改完以后: git add . git commit 一m "fix a bug" 切换到master主分支 git checkout master 从fix_bug合并到master分支 git merge fix_bug 提交代码 git push 而后从暂存区恢复代码 git stash pop 此时若有冲突,须要解决冲突