关于Git(上)

一、关于git的简介:

☆    什么是git?
     Git是目前世界上最先进的分布式版本控制系统
☆    分布式与集中式的区别及其优势?
     集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的缺点就是必须联网才能工作。分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库。和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。
☆    什么是版本库?
     版本库又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
☆    如何创建版本库?
     (1)选择一个合适的地方,创建一个空目录;
     (2)通过git init命令在目录下初始化一个Git可以管理的仓库;
     (3)在目录下建立自己的文件(和.git在同一目录下)
     (4)用命令git add告诉Git,把文件添加到仓库;
     (5)用命令git commit告诉Git,把文件提交到仓库;
在这里插入图片描述
注:git commit命令,-m输入的是本次提交的说明,可输入任意内容,最好是有意义的

二、Git中的关于版本的命令

☆    git status查看仓库当前的状态
☆    git diff如果内容被修改了,通过该命令可以查看difference
☆    git log命令显示从最近到最远的提交日志
☆    git log --pretty=oneline查看简洁版的日志
在这里插入图片描述
注:前面长长的一串数字字母的组合是commit id(版本号),后面是上面提到过的-m后的说明部分。
☆    如果要把版本回退到上一个版本应该怎么做呢?
     首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本是 Head ~1,以此类推,然后用git reset --hard Head ~1就回到了上一个版本。
如果要回到指定的版本呢?只要用git reset --hard commitid就回指定版本。
☆    git reflog可以查看每一次切换版本的记录以及所有提交的版本号。
     这样就可以在任意版本之间切换了,再也不用怕之前的东西回丢失了哈哈。
☆    Git中的各个区
工作区:在文件目录下,除.git文件夹以外的部分叫工作区。

暂存区:如果把git比作一个仓库,那么暂存区就相当于仓库的大门。git add命令就是将文件修改添加到暂存区了。

版本库:代码最终被存放的地方。用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
注:每次对文件进行修改后,都要把所有修改放到暂存区,否则不会被提交到版本库。
☆    撤销修改
     如果你不小心打上去了不该出现的内容怎么办呢?这有三种情况,具体解决方法视情况而定:
情形一:文件还未添加到暂存区,想直接丢弃修改,那就直接用git checkout --file(文件名)即可。
情形二:修改了工作区某个文件的内容,而且已经添加到了暂存区,先用git reset HEAD file ,就到了情形一,再用git checkout --file命令删除。
情形三:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考上面讲到的回退,不过前提是没有推送到远程库。
☆    文件的删除
      一般情况下,通常直接在文件管理器中把没用的文件删了,或者用rm命令删了,但此时工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了。此时有两种选择,一个是确定要将文件删除,那就用命令git rm删掉,并且git commit。另外一种就是误删了,此时用$ git checkout – file就可以复原啦!!!
    远程仓库GitHub的使用
GitHub这个网站就是提供Git仓库托管服务的,要使用很简单,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
注册好GitHub账号后,登陆GitHub,打开“ settings”,“SSH and GPG Keys”页面,点击“New SSH key”,将用户主目录里的.ssh目录中id_rsa.pub文件的内容粘贴到在Key文本框里,title自己随便填。点“Add Key”,你就应该看到已经添加的Key:
在这里插入图片描述
给GitHub添加SSH Key的原因:别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送,这样我们就有一个自己的git仓库了。
现在可以在GitHub自己创建一个远程仓库,在右上角找到“Your repositories”按钮,然后点new创建新仓库,如下图:

在这里插入图片描述
然后如下图添加仓库名称,描述等,就可以建立了。
在这里插入图片描述
目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地的仓库下运行命令:
在这里插入图片描述
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。下一步,就可以用$ git push -u origin master命令把本地库的所有内容推送到远程库上。实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样,从现在起,只要本地作了提交,就可以通过命令 git push origin master把本地master分支的最新修改推送至GitHub。

还可以从远程库克隆:
先在GitHub上创建一个远程库,创建完成后下一步是用命令"git clone 远程地址"克隆一个本地库,如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。GitHub上还可以用https://github.com/Agino128/gitskills.git这样的地址,但一般最好还是使用SSH协议,因为https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令。

这篇博客就先分享到这里,关于git的分支和标签等操作我会在下一篇博客中继续分享,欢迎大家指点!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值