初次接触git,这是一个新鲜玩意儿。展现一下个人成果吧。html
ssh免密码操做git
首先在coding.net上面注册了账号之后,须要配置ssh免密码操做。网上搜罗了一系列教程,配置完成后。在远端部署了公钥,但每次拉取代码或者上传更新时仍是须要输入密码。这使我烦恼不已,按照极客上面的教程来也是只能在git bash 一直开着的状况下可用。 一旦关掉就只可以继续输密码才能操做。而后我就想起了之前配置hadoop免密码操做的步骤。
步骤以下:bash
ssh-keygen -t rsa -C "email"
email填写本身能使用的邮箱名称
接下来是四个回车
使用ssh检查ssh
ssh -T git@git.coding.net
当执行完成这条命令时,会提示你成功的链接到了远程仓库oop
上面这个命令是经过ssh免密码操做远程仓库的,若没有这条命令就不能有相应的权限,例如:在本地删除项目后发现不能拉取远程仓库里的项目。fetch
克隆项目到本地spa
这个操做的目的在于把远程仓库的项目克隆带本地磁盘。.net
git clone + 项目地址
这里顺便说一下,可能有的朋友不清楚远程仓库的项目地址。只要在远端打开相应的项目,选择“代码”就会看到了,直接上图:code
关于分支的:
首先本身在使用 “git --help” 命令之后,查看了git的大概使用方法找到branch的使用方法。htm
根据 git branch --create branchname 的方式建立了个人第一个分支“developer”。
不过随着了解的加深通用的建立方式为:
git checkout -b developer master
即基于master分支建立developer分支,这样的话我的也感受这样的建立方式更明了一些。
每次开发前须要作的是与远程仓库同步,从仓库拉取代码到本地:
git pull或者git pull --rebase git pull = git fetch + git merge git pull --rebase = git fetch + git rebase
这里的区别能够查看这篇文章
因为开发的任务不容许在master上面进行的,因此就会涉及到合并分支的问题。在开发分支完成开发之后,提交到开发分支,再与主分支进行合并。
git add . //提交到暂缓区;add后面的点前面必须有一个空格 git status //此命令可在任意时候使用,它的做用在于查看暂缓区的文件及状态 git commit -m "对本次提交作出更改注释" //提交到当前分支 git checkout master //切换回主分支 git merge --no-ff developer /*合并开发分支,--no-ff参数的做用是执行正常的合并,如果没有这个参数,是一种快进 式的合并,对于版本的演进不清晰。由于在使用--no-ff参数之后master合并developer分 支时会新建立一个节点,developer和master都指向它,而不是直接由master指向 developer*/ git push origin master //上传更新到远程仓库
冲突解决
可是有时候不免会发生冲突,有人在远端提交了更新,而本身的本地对应文件也做了一些修改,这时上传(push)就会失败,并且拉取(pull)也会失败。这时候检查循着错误提示本地的文件,就会发现和本身保存时的不同了:
push失败
pull 冲突
冲突文件内容
打开冲突的文件删除点不须要的错误信息,从新上传就能够了。
回滚操做
一些时候若是发现了重大的错误或者没法解决的冲突时,咱们须要将项目回滚到之前的版本。
git log //查看提交历史
git reset --hard + 7位提交版本号
回退到须要的版本后修改相应的内容,提交到当前分支,在切换到master分支,合并开发分支,提交,上传就能够了。
git checkout master git merge --no-ff developer //此时会出现冲突,而后删除不须要的内容就能够上传了。 git push origin master git checkout "7位提交版本号"//暂时性的回滚,不会修改分支内容