Git工具使用
-
GIT(分布式版本控制系统)
1.安装git
[root@controller ~]# rpm -aq git
git-1.8.3.1-12.el7_4.x86_64 //可以看到该系统上已经安装了git
如果未安装则运行以下命令即可:
yum install -y git
2.版本库创建
创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:
[root@controller ~]# mkdir git_db
[root@controller ~]# cd git_db/
[root@controller git_db]# git init
Initialized empty Git repository in /root/git_db/.git/
[root@controller git_db]# ls -a
. .. .git
git init命令生成一个版本库,我们可以看到提示”Initialized empty Git repository“ 是说这是一个空的仓库,可以通过ls -a命令查看隐藏的目录。
接下来我们在当前目录(/root/git_db/)下编写一个文档,记住一定要到git init 生成版本库的目录下创建,不然git无法识别。
[root@controller git_db]# cat first_file.txt
hello git
这是第一个版本
下面将一个文件放到Git仓库只需要两步。
第一步:用命令git add告诉Git,把文件添加到仓库:
[root@controller git_db]# git add first_file.txt
You have new mail in /var/spool/mail/root
[root@controller git_db]#
没有输入其他内容说明添加成功。
第二步:用命令git commit告诉Git提交说明,把文件提交到仓库:(这一步是必须的)
[root@controller git_db]# git commit -m "this is my fisrt git file" *** Please tell me who you are. Run git config --global user.email "you@example.com"
git config --global user.name "Your Name" to set your account's default identity.
Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'root@controller.(none)')
You have new mail in /var/spool/mail/root
我们可以看到提示出错无法提交,原因是没有设置名字和邮件地址Git仓库无法发送,我们需要做的是按照Run下提示的代码运行即可。
[root@controller git_db]# git config --global user.email "xxxx@qq.com"
[root@controller git_db]# git config --global user.name "alai" [root@controller git_db]# git commit -m "this is my fisrt git file"
[master (root-commit) a86e828] this is my fisrt git file
1 file changed, 2 insertions(+)
create mode 100644 first_file.txt
再次运行commit 命令可以看到已经成功上传Git仓库。
3.代码回滚设置
修改文档
[root@controller git_db]# cat first_file.txt
hello git
这是第二个版本
现在,运行git status命令看看结果:
[root@controller git_db]# git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: first_file.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
虽然Git告诉我们first_file.txt被修改了,但是不清楚修改了什么内容。需要用git diff这个命令看看:
[root@controller git_db]# git diff first_file.txt
diff --git a/first_file.txt b/first_file.txt
index 680655c..407ee40 100644
--- a/first_file.txt
+++ b/first_file.txt
@@ -1,2 +1,2 @@
hello git
-这是第一个版本
+这是第二个版本
输出中+号显示的就是修改或新增的内容,-号显示的就是去掉或被修改的内容
我们再次提交到Git仓库上:
[root@controller git_db]# git add . //.表示当前目录下所有改变的文档
You have new mail in /var/spool/mail/root
[root@controller git_db]# git commit -m "changes"
[master 25d561b] changes
1 file changed, 1 insertion(+), 1 deletion(-) [root@controller git_db]# git status
# On branch master
nothing to commit, working directory clean
在Git中,我们用git log命令查看历史记录:
[root@controller git_db]# git log
commit 25d561b0a53a764acf15b06a53ffab34598d455e
Author: alai <1259525@qq.com>
Date: Sun Feb 11 16:41:56 2018 +0800 changes commit a86e82810819202830f618440fbf4acaf3114498
Author: alai <1259525@qq.com>
Date: Sun Feb 11 16:28:56 2018 +0800 this is my fisrt git file
加上--pretty=oneline参数简化输出:
[root@controller git_db]# git log --pretty=oneline
25d561b0a53a764acf15b06a53ffab34598d455e changes
a86e82810819202830f618440fbf4acaf3114498 this is my fisrt git file
第一列是commit id(版本号),第二列是commit。
开始回滚
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。使用git reset --hard命令:
#查看当前版本为25d。。
[root@controller git_db]# git reset --hard HEAD
HEAD is now at 25d561b changes
You have new mail in /var/spool/mail/root
[root@controller git_db]# cat first_file.txt
hello git
这是第二个版本 #退回上一个版本
[root@controller git_db]# git reset --hard HEAD^
HEAD is now at a86e828 this is my fisrt git file
[root@controller git_db]# cat first_file.txt
hello git
这是第一个版本
这是我们又想回到最新的那个版本,你通过命令git log --pretty=oneline查看已经没有了,这时候该怎么办呢,翻日志找到该版本的commit id 命令如下:
[root@controller git_db]# git reset --hard 25d561 //commit id不必写全 git会自动查询
HEAD is now at 25d561b changes
[root@controller git_db]# cat first_file.txt
hello git
这是第二个版本
Git工具使用的更多相关文章
- 【转】第 02 天:在 Windows 平台必裝的三套 Git 工具
原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20% ...
- windows中使用Git工具连接GitHub(配置篇)
Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ...
- Git详解之六 Git工具(转)
Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你 ...
- Git详解之六:Git工具
Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力.(伯乐在线 ...
- 使用git工具将项目上传到github
注册github账号 https://github.com/ 安装git工具: https://git-for-windows.github.io/ 上面的准备工作完成后,现在开始操作. 一.进入gi ...
- Git工具的使用教程
Git 是一种版本控制工具,也叫作版本管理软件(分布式管理软件).这里介绍Git的基本使用步骤,关于 Git 更详细的介绍,读者可以参考其官方网站提供的文档. 1 安装Git 在Ubuntu系统中安 ...
- 使用git工具快速push项目到github(精简)
Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...
- 代码管理工具:使用github和git工具管理自己的代码
一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...
- 使用git工具上传自己的程序到github上
一:前期准备 可以运行的项目 github账号 git工具 二:开始操作 1.创建个人github仓库 写自己项目的名字,描述,权限,README 2.新建结束后会进入如下界面 3.复制仓库地址 4. ...
随机推荐
- 20175314 《Java程序设计》第五周学习总结
20175314 <Java程序设计>第五周学习总结 教材学习内容总结 public接口可以被任意一个类实现,友好接口可被同一个包里的接口实现. Java不支持多重继承,即一个类只能有一个 ...
- m文件转换c代码
parametet.mclc; clear; load('src.mat') CZT_N = ; CZT_M = ; CZT_W = exp(-j*(*pi/)); CZT_A = exp(j**pi ...
- 【转载】一个小时学会MySQL数据库
一个小时学会MySQL数据库 目录 一.数据库概要 1.1.发展历史 1.1.1.人工处理阶段 1.1.2.文件系统 1.1.3.数据库管理系统 1.2.常见数据库技术品牌.服务与架构 1.3.数 ...
- python--事务操作
#coding=utf-8 import sys import MySQLdb class TransferMoney(object): def __init__(self,conn): self.c ...
- Object强转为实体类类型失败!!!!!!
这是从我CSDN博客直接拿来的图片废话不多说,直接上代码:
- 微擎开发------day02
基本要素: 微擎系统数据库操作使用PDO兼容方式,参数绑定进行查询操作 (1) 数据表加上表前缀 $sql = "select * from ".tablename('users ...
- SecureCRT问题
使用SecureCRT 与虚拟机进行通信,提示The remote system refused the connection 解决:由于缺少SSH服务器端 sudo apt-get install ...
- C#跨窗体传值的几种方法分析(很详细)
创建一个Winform窗体应用程序项目,然后添加一个Form2窗体. 在Form1和Form2中各添加一个textBox和button: 单击Form1中的button1,弹出Form2,然后要做的就 ...
- pycharm快捷键及中文说明【使用翻译工具一条一条翻译】
Search Everywhere: Double Shift Go to File : Ctrl+Shilf+N Recent Files: Ctrl+E Navigation Bar: Alt+H ...
- DevExpress数据源 BindingList<FilesList> 与BindSource 使用区别
这两个都能实现对接girdcontrol.datasource . 我只是说我自己用的时候的差异 bingsource bs 添加了对象 之后成为一个对象集合 你是无法用foreach (var ...