刚开始学Git,记录下来,讹误之处还望指教。

安装好git之后,有两个东东,如图:

git bash 表示是命令行操作。

git GUI 表示是图形化操作。但是这个界面用起来不方便,另一个图形化操作工具是Tortoise Git,不过个人并不建议使用图形化操作界面,因为不方便在Linux和Windows之间来回切换。

好了,废话不多说,安装好之后点击git bash,打开如图界面:



可以通过help命令查看帮助,git中的帮助文档是一个html文件:

如图:

查看命令:git help git

打开的html文件:

好了,现在可以先给git配置一个用户名和邮箱了,如果不配置,在check时系统会提示你输入用户名和邮箱。--global表示你配置的用户名和密码是全局变量。

使用git config --list命令可以查看所有的配置信息。

在git的使用过程中有三个区域需要我们理解,分别是remote repository(远程仓库)、local repository(本地仓库) 以及stage areal(临时工作区)

远程服务器用来存放最终的代码,在一个分布式环境中可能有多个本地仓库,在本地仓库和我们的代码之间的缓冲区域称作stage areal。比如说添加了,但是没有commit那么此时代码存在于stage areal。

把一个本地文件夹初始化为一个git仓库。



初始化成功之后,git文件夹中多了一个.git的隐藏文件夹,我们后面上传的代码全部放在.git中的objects文件夹中。

创建一个名为hello的新文件,并向其中写入hello world



使用git add hello将刚才的hello文件提交,但是这时的提交只是保存在stage areal中,并没有保存到objects文件夹中,也就是在.git文件夹中的index文件中,不过这是一个二进制文件,我们用记事本打开是乱码的。



然后使用commit命令将代码提交到本地仓库中,这时就真正提交到objects文件夹中了,后面的-m "init hello"是注释。



我们的工作区和.git文件夹位于同一个文件夹中。

查看目前文件的状态git status:

如果我们在git目录下新建一个名为123的文本文档,如图:



这时123.txt还没有被版本管理,所以前面是一个问号,我们再执行git status,如图:

注意红色的文字,它建议我们使用git add 将未被管理的文件提交。

使用git add 123.txt将文件提交到stage areal中,然后使用git commit 123.txt将文件提交到本地仓库中。这时再查看文件状态,就没有问题了。

假设我们的项目中有一个bin.dll文件,这个文件我们不需要把它提交到版本仓库中,那么怎样设置忽略呢?

使用echo "bin" > bin.dll新建一个bin.dll文件,再把这个文件 名称添加到gitignore文件中,然后打开.gitignore,向其中手动加入内容.gitignore表示把这个文件也忽略掉。如图:

此时再查看状态就不会有任何问题。如上图。如果新文件或者文件夹不需要被版本管理,那么只需要把该文件的名称加入到.gitignore文件中即可。

git中还有一个diff命令用来比较版本仓库的不同之处,diff命令包含两个,一个是git diff --staged,另一个是git diff --cached,这两个命令有什么不同呢?

git diff --staged 表示 workspace  VS staged

git diff --cached 表示 staged VS local repository

git diff 表示 git diff --staged

我们在123.txt文件中新加一句“123456”,然后使用git diff命令查看workspace和staged有什么不同,如图:



注意绿色文字,是说workspace中的文件比staged中的文件多出一行“123456”,那么我们使用git add 123.txt将该文件重新提交,提交完了再查看有什么不同,这个时候没有任何提示,说明完全一样,如图:

workspace和staged中的文件一样了,那么staged和local repository中的文件又是否一样呢?我们使用git diff --cached来查看一下。

注意绿色文字,这是说staged中的文件内容比local repository中文的文件内容多出一行“123456”,这是我们需要使用commit命令来提交,提交完了之后再查看有什么不同就不存在问题了。

Git学习笔记(一)的更多相关文章

  1. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  2. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  3. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

  4. git 学习笔记6--remote & log

    git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...

  5. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  6. 【转帖】Git学习笔记 记录一下

    本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...

  7. [转]Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  8. GIT学习笔记(1):创建版本库

    GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...

  9. GIT学习笔记(5):变基

    GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...

  10. GIT学习笔记(4):远程分支

    GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓 ...

随机推荐

  1. Linux下fork()、vfork()、clone()和exec()的区别

    转自Linux下fork().vfork().clone()和exec()的区别 前三个和最后一个是两个类型.前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定 ...

  2. 【UVA 11354】 Bond (最小瓶颈生成树、树上倍增)

    [题意] n个点m条边的图 q次询问 找到一条从s到t的一条边 使所有边的最大危险系数最小 InputThere will be at most 5 cases in the input file.T ...

  3. CAS单点登录配置[2]:证书生成

    上一篇介绍了准备工作,本片将介绍如何生成证书. 服务器端证书 1 我们在F盘下建立一个cas文件夹,在此文件夹中生成证书文件,打开命令窗口,进入此目录下,如图: 2 生成服务器端证书, 此命令用于在当 ...

  4. 四种必须知道的Android屏幕自适应解决方案

    一.细说layout_weight     目前最为推荐的Android多屏幕自适应解决方案.     该属性的作用是决定控件在其父布局中的显示权重,一般用于线性布局中.其值越小,则对应的layout ...

  5. [OJ] Find Minimum in Rotated Sorted Array II

    LintCode 160. Find Minimum in Rotated Sorted Array II (Medium) LeetCode 154. Find Minimum in Rotated ...

  6. (转载)c库不正确问题

    (转载)http://blog.csdn.net/piratejk/article/details/6115748 在linux下面变成,有时候在一个发行版本上编译通过,并且可以运行,但是将程序拷贝到 ...

  7. android报错——java.lang.ClassNotFoundException[android]

    E/AndroidRuntime(1875): Caused by: java.lang.ClassNotFoundException:XXXXX    in loader dalvik.system ...

  8. 【原】关于IPcamera几个问题的思考

    安全性: 1.RTSP连接的权限管理. 2.视频加密(一般采用选择性加密算法,如对运动矢量,量化参数等进行加密.) 3.数字水印技术(用于版权等认证) 稳定性: 1.mobileIP 是用来进行丢包模 ...

  9. HDOJ 1004题 Let the Balloon Rise strcmp()函数

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  10. vim spf13

    效果图来一个: http://vim.spf13.com/ 这个网站里面的vim配置非常全,推荐. 下面是对这个vim快捷键总结: <Leader> 是"," 打卡一个 ...