linux下git的简单运用

windows下也有git,是git公司出的bash,基本上模拟了linux下命令行。许多常用的命令和linux下操作一样。也就是说,windows下的git命令操作和linux是完全一样的。windows环境下而且还有GUI的软件,这就更加方便操作git了,因此如果你真是“大懒蛋”的话,使用windows下的图形操作,那也是非常方便的。

小跑题一下:

周围很多人,学习有一个非常大的误区。以为有了良好的学习资料,就能学的很好。以为只要把所有的东西一开始就掌握,就能无往不利,以为只要认真的看视频看文档,就能将这些命令牢记于心。其实这是非常不靠谱的思想,稍微开发过软件的朋友都知道,一个软件开发的初期,会先列出主要的功能。20%的主要功能占用平时使用的80%以上,而剩下百分之80%的功能,使用的人数只有20%。那么我们学习的时候不要眉毛胡子一把抓,要分清主次。先学自己目前能够用到的,目前思维和知识结构能够接受的就行。

好高骛远,贪婪无度最终只会导致所学的技术只是纸上谈兵的纸老虎,根本不能走进生产工作领域。

因此,踏踏实实的去学,不好高骛远,不贪多求全是非常重要的。

git的简介,我就不介绍了。

下面是我学习中一些常用的功能,以备自己脑袋短路的使用查看。

我的git是用yum的简便方式安装的。

生成的配置文件是在 ~/.ssh里面,.ssh是个隐藏文件。里面保存有本台电脑的公钥和私玥。公钥复制给github上面的ssh验证,以后只要自己保留有私钥就能和远程的github进行文件同步了。

我的git的工作目录是在 /usr/local/apache/htdoc/下面

我再下面新建了一个文件,mkdir project

然后cd project文件夹内,并将这个文件变成git的仓库 git init

然后ls –al 查看project文件夹下是否有 .git的隐藏文件。这个文件就是git库文件。

然后进行git的全局设定。

git config --global user.name “roverliang”

git config --global user.email mr.roverliang@gmail.com

当然也可在每个库里面为自己的库指定用户名,命令和上面的差不多,--global(全局)去掉即可。

生成git的密钥对。

ssh-keygen -t rsa -C 'mr.roverliang@gmail.com'

ssh-keygen是ssh非对称加密。

-t是type的意思。用那种方式加密。

这个rsa 是非对称加密。关于这个rsa加密的我能理解,但是让我讲我讲不通。相关资料介绍放这里,感兴趣的朋友看下:http://snowolf.iteye.com/blog/381767

然后查看 cat ~/.ssh/id_rsa.pub

.ssh是一个隐藏的文件。直接查看是看不到的,要用到ls -al的命令。

id_rsa.pub就是刚才我们生成的密钥中的公玥。复制下,放到github就能实现本地与git的互通了。

git有三个分区,

1、工作区

2、准备提交区

3、主版本区。

当我们新建一个文件的时候。touch roverliang.txt

我们可以使用git status 查看当前工作区的状态。

git会有提示:

(use "git add <file>..." to include in what will be committed)

说你可以通过git add 加上文件名 将这个文件提交

我们可以把这个文件添加到准备提交区。 git add  roverliang.txt

然后我们再来看git status 的状态。

(use "git reset HEAD <file>..." to unstage)

git告诉我们,现在你可以使用 git reset HEAD 加上你的文件名的方式,将刚才提交的文件回复到未提交的状态,也就是回退。

我们可以通过git commit –m “这里写你对文件的修改信息”

这样我们将一个文件成功提交到版本控制区,也就是master区。

这个时候我们继续编辑我们的roverliang.txt文件vim roverliang.txt

在里面写上一句话:roverliang是个大坏蛋。

然后保存。这个时候我们可以用git diff命令来比对我们工作区新修改的这个文件和我们的master区(主版本区)的那个roverliang有什么区别。

如果修改了。会用++来表示,非常清晰。

如果你近期提交了很多的文件,想知道自己提交了那些文件,那么我们可以用

git log的命令来查看自己的提交日志。

如果日志太长,我们可以使用键盘的j键来向下翻,使用k键来向上翻。如果不想看了,也可以使用q键来退出。

如果你只想看到简明清晰漂亮的日志信息,也可以用一个非常漂亮的命令来查看。

git log --pretty=oneline的命令来呈现。那么你的日志信息就会呈现如下的格式。

pretty英语意思是漂亮的

dc21f60b64db2c4f7b7dbdbed4ade5f15e78e79b 我是roverliang

d4f773a7ea120d763551b389e3441c030126c062 jj

794cc78900b456987d49280c3ce6b5f02a3cbba4 nol

1c7c6a2c6bb09c816e1c85ed8481a6ba2be213e0 Create 我想做个事.text

前面一长串的编码是你文件的唯一编码,在多人合作开发的环境下,也是区分文件修改者信息的重要依据。

如果我们觉得主版本需要回退到添加上个文件之前的状态。

那我们可以使用 git reset --hard HEAD^

hard 有登陆处,硬沙滩的意思,意思就是彻底将这个版本回退到工作区。

有硬着陆,就有软着陆。git reset –soft HEAD^ 回复到系统暂存区。

通过git reflog   re 回退 f 文件 log 日志。reflog版本跳跃日志

通过git diff HEAD – 文件名。比对修改信息。


上面都是一些很基础的应用。

我们可以再github网上上新建一个库房,名字比如就叫  LiangziTest

然后在我们的库房里面把git上面的库房,作为我们提交的库房。

我们本地的库房名字叫roverliangTest.

然后我们切入roverliangTest这个目录里。执行git init初始化git.

然后把远程的库房加进来。 git remote add origin git@github.com:roverliang/LiangziTest.git

remote是远程的操作的意思。

origin是源的意思。

git remote add origin git@github.com:roverliang/LiangziTest.git

整条命令的意思就是通过git 远程(remote) 添加(add) 一个源(origin) 通过git的加密传送方式(git) 位置在 github.com:roverliang/LiangziTest.git

这样子我们就把远程的库和本地的库连接在一起了。

使用的过程中,由于可能新建一些测试文件。这些文件提交到服务器之后,测试执行后,就不需要这些文件了。

可是使用git add 命令,git commit  -m '添加删除文件' git push origin master 并没有 将远程的文件删除。

git pull

查找资料后,发现。git add 是git add 只将新建的或者已更改的文件添加到索引区。(不会添加删除的文件)

可以使用 git   add -u 命令,然后再执行。

git的错误处理:

1、http request failed报错。

git push origin git@github.com:roverliang/butterfly.git
error: Couldn't resolve host 'github.com' while accessing https://github.com/roverliang/butterfly/info/refs

fatal: HTTP request failed

处理办法:复制github 上的ssh地址,替换掉当前目录里./.ssh/config 里面的remote url


使用git已经一段时间了,用的是linux下的命令行。虽然windows下也有更强大的gui版本,但是我还是钟爱简单朴实的命令行。

正确使用忽略列表

linux下git的简单运用的更多相关文章

  1. linux下git的安装和使用(转)

    转自:http://www.cnblogs.com/sunada2005/archive/2013/06/06/3121098.html 最近在使用github,感觉不错.在windows下,可使用g ...

  2. Linux下Git和GitHub使用方法总结

    来源:Linux下Git和GitHub使用方法总结 1 Linux下Git和GitHub环境的搭建 第一步: 安装Git,使用命令 “sudo apt-get install git” 第二步: 到G ...

  3. linux下git使用记录1 git 提交

    linux下git使用记录1   浏览:985 发布日期:2013/08/08 分类:技术分享 在使用github的时候,不可避免的接触到了git,用他来更新项目,做版本控制.这里特别把常用的命令记录 ...

  4. Linux下MySQL的简单操作

    Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...

  5. Linux下git安装配置

    一.Linux下git安装配置 2013-07-28 20:32:10|  分类: 默认分类 |  标签:linux  git  server  |举报|字号 订阅     http://abomby ...

  6. 在Linux下写一个简单的驱动程序

    本文首先描述了一个可以实际测试运行的驱动实例,然后由此去讨论Linux下驱动模板的要素,以及Linux上应用程序到驱动的执行过程.相信这样由浅入深.由具体实例到抽象理论的描述更容易初学者入手Linux ...

  7. 1.Linux下Git入门学习

    1.在Linux下安装git软件,使用以下命令: yum install git 2.设置用户名和邮箱(必须): git config --global user.name "Your Na ...

  8. linux下git+github个人使用记录

    Linux: 安装git的命令: sudo apt install git 查看版本确认安装成功: git --version 生成密钥: ssh-keygen -t rsa -C "you ...

  9. 【转】在Linux下写一个简单的驱动程序

    转自:https://www.cnblogs.com/amanlikethis/p/4914510.html 本文首先描述了一个可以实际测试运行的驱动实例,然后由此去讨论Linux下驱动模板的要素,以 ...

随机推荐

  1. 2016-12-15 java开发工作中,尚未做的工作

    目前未涉及的工作内容: 1.将静态页导入工程,建成jsp文件.配置css.js.img文件.跳转路径 2.未用工具生成pojo dao service等源码文件 3.未签入自己写的代码 4.未搭建子系 ...

  2. TextBox仿Foxmail收件人删除效果

    场景: 发邮件,添加收件人后,删除时直接删除整个收件人. 添加事件: 文本框实现,需要添加以下4个事件: txtQsdw_TextChanged txtQsdw_MouseDown txtQsdw_M ...

  3. JavaScript_1

    一.方法 ---------------------Array 对象------------------------ 1.concat() : 将作为参数传递的元素拼接到一个已存在的数组2.pop() ...

  4. Away3D 的实体收集器流程1

    View3D 顾名思义 它就是一个3D视口,视口的默认值是无穷大的,即相当于“窗口”是无限大的,我们看到的将是外面的所有景物即flash尺寸是视口的有效视域.传统电视的高宽比为4:3,现在的高清电视的 ...

  5. Spring-MongoDB 关键类的源码分析

    本文分析的是 spring-data-mongodb-1.9.2.RELEASE.jar 和 mongodb-driver-core-3.2.2.jar. 一.UML Class Diagram 核心 ...

  6. Javaweb之 servlet 开发详解1

    1.1  Tip:Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个 ...

  7. UVA11020 Efficient Solutions

    思路 先判断一个点能不能插入,能插入的话删除所有因为它而没有优势的点 注意 写 S.erase(it); it++; 会RE 要写 S.erase(it++); 代码 #include <cst ...

  8. KTV项目之3个ListView的跳转和加载歌手图片

    第一个ListView: 第二个ListView: 第三个ListView: 定义一个KTVUtil类,在里面定义一个静态变量保存歌手图片 //定义一个静态变量保存歌手图片路径 public stat ...

  9. android中SELINUX规则分析和语法简介【转】

    本文转载自:https://blog.csdn.net/LoongEmbedded/article/details/62430039 1. SELINUX是可以理解为一种Android上面的安全机制, ...

  10. 安卓开发_浅谈Fragment之事务添加Fragment对象

    我们都知道给一个activity动态添加fragment的时候 有下面几种添加方式 看一下布局文件 <LinearLayout xmlns:android="http://schema ...