Git学习(二):Git的初步使用
一、Git的最小配置
1、使用如下命令创建Git的用户名和邮箱,如下所示:
- $git config --global user.name 'your_name'
- $git config --global user.email 'your_email'
使用如下命令清除创建的用户名和邮箱,如下所示:
- $git config --unset --global user.name
- $git config --unset --global user.email
2、在global的位置处,分为有三种参数:local、global、system,现分别介绍如下:
1)local:默认参数,该参数只对某个仓库有效;
2)global:该参数对当前用户的所有仓库有效,在使用时也通常设置此值参数;
3)system:对系统所有登录的用户有效,一般很少用;
3、对于仓库配置的查看,有如下命令:
- $git config --list --local
- $git config --list --global
- $git config --list --system
二、创建Git仓库
1、对于Git管理代码有两种场景:
1)把已有代码纳入Git管理
- $cd 项目所在的文件目录
- $git init
2)新建立的项目,直接使用Git进行管理
- $cd 建立项目的文件夹
- $git init your_project (会在当前路径下创建和项目名称同名的文件夹)
- $cd your_project
2、新建项目的操作
1)首先创建一个文件夹,取名为GitLearning;
2)然后进入该文件夹
3)创建一个git_test的仓库
注意:如果此时对当前仓库又设置了local的username、useremail,那么在向仓库提交文件时,会优先以local的用户名进行提交。由此可知,local的优先权要高于global的。三个可选项的优先级顺序:local>global>system
4)向Git提交资源
登录到git_test当前目录下,我们从其他目录中将一个文件copy到当前目录,如下图所示:
5)将copy过来的文件向Git申请管控,通过查看Git的状态会发现相应的文件已经在Git的暂存区当中。
6)向Git进行相应文件的提交,同时写好提交备注。红框当中是此次提交产生的commit号。
三、Git使用习惯的养成
1、 Git提交步骤的设计
在上图中可以看出,在工作目录中操作的文件,可以向暂存区中提交,此时仅仅是暂存。那暂存区此时其实已经是对文件进行了Git管理,但还不是正式的版本提交管理。
比如,当你在写一个算法的类文件时,完成了一种A算法的实现,但是有可能还有另外一种可能更好的B算法实现。此时,你可以将现在完成的A算法添加到暂存区,当你实现了B算法方案后,发现还是A算法好,你可以从暂存区中将A算法覆盖掉B算法。
2、基于Git设计进行文件管理实操,对四个文件资源进行操作,分别是index.html,images文件夹,styles文件夹,js文件夹。
1)首先从源目录中将资源拷贝到Git仓库目录下,添加images文件夹及index.html页面。
我们将一个html页面和一个包括资源文件夹copy到仓库目录下,同时查看了git的状态,发现对这两个资源并没有跟踪,然后我们将两个资源添加到暂存区中。
注意:git add ***1 ***2...,表示添加多个文件或文件夹到暂存区;git add --all或git add -A,表示一次把所有Git追踪到的文件放入暂存区。两者可达到同样目的。
通过命令ls可以查看到当前仓库下面新增加的文件夹和文件。
2)添加style.css文件至Git仓库中。
3)添加js文件至Git仓库中。
通过上图中的日志可以发现,对示例资源文件的操作过程有一个清晰的记录。
4)修改已由Git管理的文件
将下述代码复制到index.html文件中末位处。
- <footer>
- <p>
- <a href="https://github.com/TTN-js/unforGITtable"> 参考项目 01</a>
- </p>
- </footer>
查看Git的状态,会发现相应被跟踪的文件已被修改,如下图所示:
对于修改后的文件添加到Git暂存区中。
注意:对于已由Git跟踪的文件,若修改后添加,用git add -u,当然如果不愿意加-u,可以使用git add . 也是可以达到目的的。
如果有新增的文件和已经跟踪文件的变量均需要添加到暂存区,可以直接执行git add -A或git add .
最后再次对修改后的文件进行 git commit -m '修改说明' 操作,以提交到Git仓库中。
5)对文件进行重命名
- $git mv filename1 filename2
如下图所示,我们将index.html更改为myindex.htm
四、Gig Log的使用
1、Log的常用操作命令有:
- git log --all 查看所有分支的历史
- git log --all --graph 查看所有分支的图形化历史
- git log --oneline 查看分支的简洁历史
- git log -n2 查看最近的2条历史
- 以上命令可根据需要进行自由组合,其他更多的命令细节可调用git log的网页帮助文档命令
- git help --web log 跳转到git log的网页版帮助文档
2、Log的界面化工具
通过执行gitk命令,可以调出对log管理的界面化工具gitk,如下图所示:
在该工具中,我们可以进行许多关于log的操作,方便对日志的详细信息有一个更全面的了解。
当然类似对Git操作的工具还有gitkarken、sourcetree、tower等。
大家可关注我的公众号
知识学习来源:苏玲:《玩转Git三剑客》
Git学习(二):Git的初步使用的更多相关文章
- git学习(二) git的文件状态
git的文件状态 用于查看git的状态 git status 用于git文件的删除操作 git rm 如果只是 git rm --cache 仅删除暂存区里的文件: 如果不加--cache 会删除工作 ...
- git学习——<二>git配置文件
一.git所有配置文件 <一>./etc/gitconfig全局配置文件 修改该配置文件,会对所有用户有影响. 使用git config --system来配置该文件 <二>. ...
- git学习——<五>git分支
git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...
- Git 笔记二-Git安装与初始配置
git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...
- 【Git学习二】深入了解git checkout命令
检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区.检出命令的用法如下: 用法一:git checkout[-q][<commit& ...
- Git 学习之Git 基础(二)
Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...
- Git学习二
一.在工作区和暂存区退回 在工作区: $git checkout -- filename 在暂存区: $git reset HEAD filename $git checkout -- filenam ...
- 【git学习二】git基础之git管理本地项目
1.背景 git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. ...
- git学习(二):git config命令
不同的git config操作不同的参数文件 git config --global // 配置用户目录下的.gitconfig那文件 git config --system // 配置系统级配置文件 ...
- Git学习记录--git仓库
Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...
随机推荐
- EF 6.0 Code First 迁移MySql数据库
一.准备工作 使用NUGET安装Entity Framework 6,下载MySql Connector/Net 6.9.5 二.创建实体 我们在下面创建了两个类(博客和文章),并 ...
- C语言实现常用排序算法——插入排序
插入排序是最基础的排序算法,原理: 首先1个元素肯定是有序的,所以插入排序从第二个元素开始遍历:内循环首先请求一个空间保存待插入元素,从当前元素向数组起始位置反向遍历:当发现有大于待插入元素的元素,则 ...
- 数组Array
数组Array是最基本的数据结构,在内存中为一段定长连续内存,很多编程语言都有实现. 一.一维数组 下面代码实现了一维数组和它的遍历. clear并非清空数组,而是采用具体值对数组进行初始化. imp ...
- 你必须了解的java内存管理机制(三)-垃圾标记
本文在个人技术博客不同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩... 相关链接(注:文章讲解JVM以Hotspot虚拟机为例,jdk版本为1.8) ...
- 惊:FastThreadLocal吞吐量居然是ThreadLocal的3倍!!!
说明 接着上次手撕面试题ThreadLocal!!!面试官一听,哎呦不错哦!本文将继续上文的话题,来聊聊FastThreadLocal,目前关于FastThreadLocal的很多文章都有点老有点过时 ...
- Sqoop 简介与安装
一.Sqoop 简介 Sqoop是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从MySQL,Oracle等关系型数据库中导入数据到HDFS.Hive.HBase ...
- 【面试】MySQL 中NULL和空值的区别?
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 01 小木的故事 作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值.那 ...
- 网络IO-阻塞、非阻塞、IO复用、异步
网络socket输入操作分为两个阶段:等待网络数据到达和将到达内核的数据复制到应用进程缓冲区.对这两个阶段不同的处理方式将网络IO分为不同的模型:IO阻塞模型.非阻塞模型.多路复用和异步IO. 一 阻 ...
- MyBatis从入门到精通(八):MyBatis动态Sql之foreach标签的用法
最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用foreach ...
- HDU 4462:Scaring the Birds(暴力枚举+状态压缩)
http://acm.hdu.edu.cn/showproblem.php?pid=4462 题意:有一个n*n的地图,有k个空地可以放稻草人,给出每个空地可以放的稻草人属性,属性中有个R代表这个位置 ...