Linux下git操作(一)——git基本命令
https://blog.csdn.net/qicheng777/article/details/74724015#commentBox
每日诗词欣赏:《汉广》
南有乔木,不可休思。汉有游女,不可求思。
汉之广矣,不可泳思。江之永矣,不可方思。
翘翘错薪,言刈其楚。之子于归,言秣其马。
汉之广矣,不可泳思。江之永矣,不可方思。
翘翘错薪,言刈其蒌。之子于归,言秣其驹。
汉之广矣,不可泳思。江之永矣,不可方思。
git和svn一样,是一款强大的版本控制系统软件,它和svn有一些区别,目前从我现在对svn以及git学习以后来看,git似乎更强大一点,因为git可以在没有网络的情况下也可以提交(因为git是分布式的),而svn在操作之前必须先checkout远程仓库。但是svn有个优点(有全局额版本号),在回退到各版本的时候比较方便。
一、关于软件安装
1、首先查看是否以及安装了git:
rpm -qa | grep xxx 查询某个安装包
rpm -ql xxx :查询某个包安装路径
或者直接在终端敲git,如果已经安装会提示你命令使用方法。
2、linux下安装:
sudo yum install git
3、设置当前用户信息
[yangni@yangni fistlab]$ git config --global user.name "yangni"
[yangni@yangni fistlab]$ git config --global user.email 497049229@qq.com
用于在查询历史的时候文件显示由谁修改过。
二、基本操作:
1、创建仓库:
[yangni@yangni fistlab]$ git init
Initialized empty Git repository in /home/yangni/git/fistlab/.git/
创建成功后用命令ls -a可以查看到出现了隐藏文件.git
2、添加并提交文件到仓库:
[yangni@yangni fistlab]$ git add text.txt
[yangni@yangni fistlab]$ git commit -m "write text.txt"
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 text.txt
-m后面是注释的内容,告诉别人自己修改了什么。
3、修改文件:
对每个文件修改后用git status可以查看当前每个文件的状态。
运行git status,提示我们已经被修改过了,但是没有提交。
查看修改具体内容:
用命令git diff可以用来查看修改了什么内容。
修改以后再次添加并提交:
[yangni@yangni fistlab]$ git add text.txt
[yangni@yangni fistlab]$ git commit -m "modified the text.txt by yangni on july 6th"
[master fc82b20] modified the text.txt by yangni on july 6th
1 files changed, 1 insertions(+), 1 deletions(-) //这里提示一增一减
再一次查看status:
[yangni@yangni fistlab]$ git status
# On branch master
nothing to commit (working directory clean) //告诉我们没有需要提交的东西
查看历史修改情况(修改时间,修改人):
用git log查看历史修改情况
[yangni@yangni fistlab]$ git log
前面的字符是用16进制的数表示版本号。
这样看清来有点乱,我们用命令git log --pretty=oneline可以减少输出信息。
4、回退到之前的版本:
查看当前版本:
[yangni@yangni fistlab]$ git reset --hard HEAD
HEAD is now at 0998adb add text2 and modify text by yangni
退到上一个版本:
[yangni@yangni fistlab]$ git reset --hard HEAD^^
HEAD is now at 7c97a69 write text.txt
HEAD表示当前版本,HEAD^表示上一个版本,同理HEAD^^表示上上个版本。。。。不过这样太麻烦。所以如果要往上回退100个版本,则写成 HEAD~100
也可以通过git log查看id直接指定回到哪:(id号可只取前两位,为了避免相同,可以多取几位)
[yangni@yangni fistlab]$ git log
[yangni@yangni fistlab]$ git reset --hard id号
上面的方法有些弊端,因为git log**只能查看近几次的id**,如果关掉电脑或者要回退到很久之前的版本就无法实现了。所以下面提供更实用的方法:
Git提供了一个命令git reflog用来记录你的每一次命令
[yangni@yangni fistlab]$ git reflog
7c97a69 HEAD@{0}: HEAD^^: updating HEAD
0998adb HEAD@{1}: commit: add text2 and modify text by yangni
fc82b20 HEAD@{2}: commit: modified the text.txt by yangni on july 6th
[yangni@yangni fistlab]$ git reset --hard id号//这里id号必须写完整
注:(这里每个圈代表一个版本)
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL:
5、管理修改:
git add是把文件的某次修改放入暂存区,所以修改以后必须先add再提交才生效。
git diff HEAD -- xxx命令可以查看对于某个文件来说,工作区和版本库里面最新版本的区别:
撤销修改:
(1)只是修改,并没有添加:
所以可用git checkout -- file来恢复修改之前的模样 (–后面有个空格) ,其实是用版本库里的版本替换工作区的版本(一键还原)
[yangni@yangni fistlab]$ git checkout -- text.txt
(2)已经添加,还未提交:
用 git reset HEAD 文件名恢复到提交之前:
[yangni@yangni fistlab]$ git reset HEAD text.txt
6、删除文件:
(1)直接rm:
[yangni@yangni fistlab]$ rm text2.txt
[yangni@yangni fistlab]$ git status
git会告知你删除了哪个文件:
用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除。
**所以如果用rm误删以后,可以很快用命令git checkout -- file找回。。 但是git commit -m " "提交的时候,并不会将删除操作提交上去。
所以如果想要提交删除操作,让文件在版本中删除,必须要用-am提交
[yangni@yangni fistlab]$ git commit -am " "
(2)用git rm删除
用 git rm 来删除文件,同时还会将这个删除操作记录下来,提交以后直接可以从版本中删除。
总结一下删除的两种方法:
在被 git 管理的目录中删除文件时,可以选择如下两种方式来记录删除动作:
rm + git commit -am "abc"
git rm + git commit -m "abc"
参考博客:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
---------------------
作者:qicheng777
来源:CSDN
原文:https://blog.csdn.net/qicheng777/article/details/74724015
版权声明:本文为博主原创文章,转载请附上博文链接!
Linux下git操作(一)——git基本命令相关推荐
- linux下从git获取有权限的代码,linux下从源代码安装git
之所以有这样的需求,是因为部分预安装的git版本太低,很多功能没有并且安全性存在问题. 比如git submodule add xxx@host:yyy.git必须在父repo的root目录安装,而新 ...
- linux git源代码安装,linux下从源代码安装git
之所以有这样的需求,是因为部分预安装的git版本太低,很多功能没有并且安全性存在问题. 比如git submodule add xxx@host:yyy.git必须在父repo的root目录安装,而新 ...
- Linux下PDF操作与转换
Linux下PDF操作与转换 2013-07-02 09:44:58 分类: LINUX 如果说PDF是电子纸张,那么pdftk就是电子起钉器.打孔机.粘合剂.解密指环和 X光镜片.Pdftk是一个简 ...
- linux 查询内存和核心数,Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数...
1.查看物理CPU的个数 [root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc ...
- linux修改目录block信息,linux下文件操作inode,block的变化
在"浅谈linux性能调优之三:分区格式化之前的考虑" http://my.oschina.net/sharelinux/blog/143522 一文中我说了inode与bl ...
- mysql5.6.24安装perl,linux下perl操作MySQL数据库(需要安装DBI)
这篇文章主要为大家详细介绍了linux下perl操作MySQL数据库(需要安装DBI),具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧!DBI安装:D ...
- linux flash擦除命令,Linux下flash操作读、写、擦除步骤
描述 1. 背景介绍 在板上,ZYNQ PL部分通过EMC连接一片NOR FLASH,地址空间如下: 可以看到NOR FLASH的起始地址为0x80000000,这是物理地址,可以把数据存放在以该地址 ...
- linux拷贝文件函数,linux下文件操作的各个函数
作者:HoytEmail:hoytluo@21cn.com 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 --------- ...
- linux下python操作.doc后缀文件
linux下python操作.doc后缀文件 文章目录 linux下python操作.doc后缀文件 一.依赖 1.下载 2.解压安装 二.使用示例 一.依赖 需要安装Microsoft® Word的 ...
- linux下搭建简单的git服务器测试1
这两天沉迷PHP web服务器开发不能自拔,但是php和html.js之类的程序要写一点看一点效果,我是放到Linux云主机上测试的,所以要在xshell上写代码,很麻烦. 于是想自己在云主机上搭建一 ...
最新文章
- 30+博士、100+硕士整理的超全深度强化学习资源清单
- Android之DiskLruCache源码解析
- wex5 转换 html5,WeX5开发工具(html5 app开发框架)V3.9 开源版
- UE3客户端加入DS过程
- DWZ(JUI) 教程 跨域请求 iframeNavTab
- 2013\Province_Java_C\2.组素数
- 机器学习算法中的概率方法
- 用一个按钮做主窗口,可以吗?
- 吴恩达机器学习(六)神经网络(前向传播)
- ODBC数据源的配置方法
- AllenNLP框架学习笔记(数据篇之二)
- 5G NR 随机接入过程(2)
- 深入理解示波器探头各种作用及工作原理
- 突然有一天,我老无所依
- python替换文本
- c语言编程交互式计算器,C语言程序设计交互式函数计算器设计报告.docx
- 孕妇吃米饭好吗?盘点适合孕妇吃的美食
- DeviceIoControl接口
- 连续六个季度实现盈利改善,达达集团内外双重确定性凸显
- Netty使用篇:自定义编解码器
热门文章
- 微信小程序iOS系统上echarts不能滑动的问题
- Unity TileMap工具教程
- 计算机科学 vs 计算机技术
- Elasticsearch与最新的log4j2零日漏洞
- MSDC 4.3 接口规范(10)
- 微信JSAPI支付调不起收银台问题
- 【运维面试】面试官:你觉得网站访问慢的原因有哪些?
- mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)
- 计算机桌面下面那一栏如何调节,电脑底部的任务栏不见了,你可以尝试这样做,轻松恢复它...
- C++语法(二十)常函数、常对象