安装

git官网就有git各个系统的安装包,可以根据自己系统安装相应的安装包。
window的git安装包 依据国内网速原因,将安装放到网盘里,链接: https://pan.baidu.com/s/1kWDLHDP 密码: hkmx
默认安装就欧了,最后的结果就是在桌面点击右键,出现 git bash Here和git GUI Here 代表安装成功

操作:
在一个文件夹里点击服务进入终端(window直接右键进入git命令面板)

首先第一次使用git时,需要进行账号和邮箱绑定,因为git是分布式管理系统,每个人的电脑上都有自己的git,因此就有了每一个账号和邮箱
$ git config --global user.name "Your Name"。 ----自己的名字
$ git config --global user.email "email@example.com" ----邮箱,我建议用gitHub的对应的邮箱就好
(--global 代表 全局 ,这台电脑都能使用这git的配置)

git在mac的终端和window的git面板的输入的命令都是相似的,对于其他的系统我没有试过。复习时我用mac的终端进行操作

初始化仓库: 新建一个空的仓库,
新建一个文件夹,启动这个文件夹的终端: git init 之后会有一个隐藏的.git的存在,在mac看不到,可以输入ls -ah查看,这就代表创建了git空仓库。结果如下:

我们开发了一个文件叫 text.html,放到该文件夹中,下面就要放到git仓库里了,按顺序依次输入:
git add text.html
git commit -m ‘第一次提交‘

git add 代表把选中的文件放到暂存区中。
(单个文件放到暂存区中 git add 文件名<有后缀名>
多个文件放到暂存区中 git add .)
git commit 是将暂存区的文件全部提交到仓库里去。 (-m代表的是提交的说明,就是引号里面的内容)

对于add和commit的注意事项:
1.只有add之后才能commit
2.add之后又在工作区修改了内容,再commit,只提交了add在暂存区的文件,工作区的依然没提交。
3.可以add多次,最后时 一次commit就可以。
4.可以参考状态的三个区别。

状态:
工作区和暂存区以及仓库的区别:
工作区:就是在本地看到的文件和目录
暂存区:add之后文件所在的地方
仓库:commit之后所在的地方

一般开发都会这样的操作。先add再commit。可以通过git status查看状态。如果当前的文件夹已经修改过但未add会出现红色的文件名,这说明这个文件已操作。例如:

如果已经add了但commit,git status的状态里也会出现绿色的文件名,是说明未提交,如:

可以直接通过git diff 来查看修改的内容
git diff 是工作区和暂存区的比较
git diff --cached 是暂存区和仓库的比较

如果status状态里没有任何提醒,只有这个,说明已经add并commit了。

版本回退和前进:
版本控制就是为了方便修改文件,那么提交之后就会有很多个版本,如果想要回退到某个版本重新开发,那么就可以用git reset了。

git log 查看版本历史,都有对应的commit的id,作者,提交的时间以及提交的内容
注意:如果回退到某个版本,那么git reset 之后这个版本以后的修改内容就看不到了。
git reflog 查看命令历史,通过id进行回退和前进

如果将要进行版本回退或者回退之后将要再恢复刚才的文件就进行以下操作
git reflog 通过git reflog查看版本历史,确定要回退到某个版本的id。
git reset --hard id 通过id进行回退,
根据版本回退有两种写法:
1. git reset --hard HEAD^ 这代表回退到上一个版本,若回退到上上一个版本,就 HEAD^^,依次类推,如果是100次,那就HEAD~100
2. git reset --hard id 这一步骤需要知道上一个版本的id
如果只回退上一个版本,次数不多的话那就用第一种写法,如果次数太多就用第二种写法。

撤销修改:
有的文件发现修改错误,可以用git checkout进行补救,分三种情况:
1. 文件已修改,但未add到暂存区
git checkout -- 文件名 (--代表是撤销,如果不加--代表切换分支)

2. 文件已add到暂存区,但未commit
git reset HEAD 文件名
git checkout -- 文件名

3. 文件已commit到仓库
git reset --herd HEAD^

注意:如果文件已经提交到远程库,此办法多此一举。

删除文件:
git rm 文件名 这是删除版本库的文件。
rm 文件名 删除工作区的文件
如果是工作区的文件删除,就可以add再commit即可
注意:rm后就要commit,最近修改的内容也就没了。

版本控制工具--svn和git的使用(三) -----git的使用(1)的更多相关文章

  1. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)

    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上) 本篇导读: 上篇介绍了常用的代码管理工具VSS,看了一下评论,很多同学深恶痛绝,有的甚至因为公司使用VS ...

  2. 版本控制工具SVN学习

    教学视频链接:https://edu.aliyun.com/course/83?spm=5176.10731334.0.0.778e6580zC0Ri0 版本控制工具SVN学习 1,SVN的简介 在实 ...

  3. 版本控制工具svn的安装与简单使用

    版本控制工具多用于多人协作开发项目中,这不同于个人开发项目,想把自己代码怎样放置都可以,而且删除了代码很难查找. 版本控制工具类似于个人处理钱的过程,放于自己口袋管理类似于个人开发情形,如果自己钱丢了 ...

  4. 版本控制工具-svn

    两个疑问: 1.什么是版本控制? 2.为什么要用版本控制工具? 银联卡的特征: 1.受保护的 2.受约束的 如何与银联卡对应? 1.个人的代码--口袋里的钱 2.版本控制工具中的代码--银联卡里的钱 ...

  5. 版本控制工具--svn和git的使用(三) -----git的使用(2)

    远程仓库github是git所用的远程仓库,免费的也有私用的.github的账号注册,----省略.创建ssh key:$ ssh-keygen -t rsa -c 'github的账号'查看各个系统 ...

  6. 版本控制工具--svn和git的使用(二) -----SVN的操作

    SVN的使用 开头: 对于svn的详解,我不是很熟,只是用过svn的客户端,没使用过服务端,在这里我只是简单说一下在svn的客户端怎么拉取代码,提交代码和修改冲突等等.svn的客户端我在Mac中用的s ...

  7. 版本控制工具--svn和git的使用(一) -----版本控制的好处以及分类

    版本控制工具 版本控制VCS(Version Control Systems)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.这个系统可以自动帮我们备份文件的每一次更改,并且可以 ...

  8. 版本控制工具——SVN

    一.需求 需求之一:备份 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流 需求之二:代码还原 这个项目中需要一个很复杂的功能,老王摸索 ...

  9. 版本控制工具 svn 一

    一.svn 概述 1).svn的作用 1.多人协作开发:2.远程控制:3.版本控制 2).软件控制管理工具发展之路 SCM:软件配置管理,所谓的软件配置管理实际就是软件源代码的 控制与管理. CVS: ...

随机推荐

  1. 洛谷 [P1280] 尼克的任务

    DP 题目问的是最大空暇时间,那么就定义dp[i]为第i分钟的最大空暇时间,显然满足最优子结构,我们发现dp[i]仅与其后的值有关,那么从后往前推,如果第i分钟没有任务,dp[i]=dp[i+1],如 ...

  2. CF781D Axel and Marston in Bitland [倍增 矩阵乘法 bitset]

    Axel and Marston in Bitland 好开心第一次补$F$题虽然是$Div.2$ 题意: 一个有向图,每条边是$0$或$1$,要求按如下规则构造一个序列然后走: 第一个是$0$,每次 ...

  3. getHibernateTemplate() VS getSession()

    如题所示,对于这个问题,官网文档已给出答案,详见: /** * Obtain a Hibernate Session, either from the current transaction or * ...

  4. SpringMVC之HelloWorld实例

    1.1 Helloworld实例的操作步骤  1. 加入jar包 2. 配置dispatcherServlet 3. 加入Spring配置文件 4. 编写请求处理器 并表示为处理器 5. 编写视图 1 ...

  5. MDT 2013 从入门到精通之概念扫盲

    从今日开始为大家带来微软MDT 2013批量部署操作系统从入门到精通系列教程,旨在为大家以后的工作.学习提供一个便利的参考教程,以便大家更好.更深入的了解微软MDT,从而减轻企业工程师.IT从业人员及 ...

  6. 【linux之正则表达式】

    一.grep grep家族grep.egrep.fgrepGlobally search a Regular Expression and Print根据我们提供的模式进行查找,并且将文件中匹配的行显 ...

  7. python 3.x 爬虫基础---Urllib详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...

  8. ionic2 +Angular 使用自定义图标

    结合阿里巴巴矢量图标库实现在ionic2开发中使用自定义图标. step1:在阿里巴巴图标管理中新建项目,并添加自己选中的图标到购物车: step2:将购物车中的图标"添加至项目" ...

  9. ansible实践4- 管理配置文件

    生产环境中大多时候是需要管理配置文件的,安装软件包只是在初始化环境的时候用一下.下面我们来写个管理nginx配置文件的playbook   mkdir  -p /etc/ansible/nginx_c ...

  10. 洛谷 P2073 送花【Treap】题解+AC代码

    题目背景 小明准备给小红送一束花,以表达他对小红的爱意.他在花店看中了一些花,准备用它们包成花束. 题目描述 这些花都很漂亮,每朵花有一个美丽值W,价格为C. 小明一开始有一个空的花束,他不断地向里面 ...