github小记

初次接触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的使用方法。
    branch_helphtm

根据 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位提交版本号"//暂时性的回滚,不会修改分支内容
相关文章
相关标签/搜索