自学git心得-1
Github作为目前世界上最先进的分布式版本控制系统,是软工工作者管理工程代码的不二选择,笔者也是因时所需,自学了基本的git操作,在此回顾一下也作为分享。
推荐学习资源:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374829472990293f16b45df14f35b94b3e8a026220c5000
我们从最基本的创建本地仓库开始~
1. 创建版本库: 首先,选择一个合适的地方,创建一个空目录:
直接建或者用命令行(默认建在/ Users/ pc/ learngit 上): mkdir learngit
然后可以用命令cd learngit 查看其位置;
其次,用命令git init 把版本库变成git管理下的仓库;
2.向版本库添加文件:
先在learngit下建一个.txt
分两步: (1)git add readme.txt 把工作区的文件放到暂存区;
(2) git commit -m "wrote a readme file" 把暂存区的文件提交到仓库;
3.版本回退:
可用vi readme.txt 对文件进行修改,cat readme.txt 则可以查看内容;
修改readme.txt后可如2操作再次提交,如此重复几次;
此时可用命令git log查看修改历史,用命令git reset --hard HEAD^可回退到上一版本,或者用git reset --hard 3628164回到指定版本(数字是历史中显示的commit id);
命令git reflog则可查看所有穿梭记录;
4.工作区与暂存区
工作区 add ——> 暂存区 commit ——> 版本库(repo)
文件需要先add到暂存区才能被提交到版本库!
git status可以随时查看文件状态;
5.撤销修改
命令git checkout -- readme.txt可以把readme.txt文件在工作区的修改全部撤销,注意这里有三种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态,但现在暂存区还有我们不想要的修改,于是可以用命令git reset 把暂存
区的修改撤销掉(unstage),重新放回工作区;
另外一种是已经提交到版本库了,我们只能用版本回退来解决了;
6.删除文件:
假如我们现在要删除已经提交到版本库的readme.txt,首先在本地删除,直接送回收站或者用命令rm readme.txt即可,接着我们用两行命令把他从版本库中删除:
git rm readme.txt 和 git commit -m "remove readme.txt";
万一上述第一步我们是误删了,没关系版本库中还有,我们用命令git checkout -- readme.txt把误删的文件恢复到最新版本即可;
git的命令不算复杂总共也就20来条,初学者记不住很正常,做个笔记备用,多敲一敲自然就熟了。下一节继续学习远程库...
自学git心得-1的更多相关文章
- 自学git心得-2
趁着最近还没忙起来,抓紧更新一下学习心得. 现在的情景是,我们已经在本地创建了一个Git仓库,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备 ...
- 自学git心得-5
标签管理也是git里面比较重要的一部分内容,我们下载软件的时候经常看到诸如v2.0.v2.3.0这样的版本号,在git里也是一样,有时为了避免分支的名称五花八门而发生混淆的情况,我们常常会 给分支贴上 ...
- 自学git心得-4
本节介绍分支的一些具体应用实例. 1.Bug分支 设想我们正在分支dev上工作,突然接到一个修复bug的命令,我们需要创建分支issue-101来修复它,在此之前我们肯定需要先保存我们当前未完成的工作 ...
- 自学git心得-3
转眼到第三节了,我们进入分支管理. git领域里的分支可以理解为一个有安全保障的临时仓库,有时我们新修改了代码,突然发现有bug需要回到之前的版本,有时我们开发到一半,突然要出去一趟,如何安全保存当前 ...
- 第一次使用Git心得体会
用书本上的概念讲,Git是一个分布式的版本控制工具,每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,能够不依赖于网络和中心服务器.也就是说Git能够不需要服务器而在 ...
- git心得
使用Git得到了以下体会: github在新的目录下添加新的文件 git init //在相应的目录下添加 git add //添加目录 git commit -m "first commi ...
- git心得与总结
任何文件在Git库中都有四种状态:未跟踪状态untracked.跟踪状态tracked(未修改状态unmodified.已修改状态modified.暂存状态staged),由于文件的上述四种状态,在使 ...
- java自学入门心得体会 0.1
之前记录了java的简介和基本语法 这里记载下对象和类 不太懂的我理解java对象和类的概念很模糊,因为有了 Abstract修饰符 让对象与类更加的扑朔迷离 - - 所以,就像很开放的语言,创建对象 ...
- java自学入门心得体会 从环境配置开始
java —— 一种可以撰写跨平台应用软件的面向对象的程序设计语言. 很多教程里都要概述java语言的诞生发明.其实像图灵的”图灵机“和”图灵测试“一样,当初的java并不是这样. 是用来操控一些电冰 ...
随机推荐
- Regini命令的使用和参数讲解
Regini程序操作系统自带的,从XP开始就有,主要是用于修改注册表及注册表权限.我们就从这两方面介绍regini的用法.Regini必须要指定操作脚本,也就是,提前将你要操作的内容写在一个文本文件中 ...
- Python中的range和xrange区别
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. range示例: >>> r ...
- iview2.0 bug之+8 区的 DatePicker
请看以上细节图:工作案例小Demo 用心去做,不留遗憾!
- java多线程-ThreadLocal
大纲: 用法 源码 一.用法 ThreadLocal是一个容器,顾名思义就是把一个变量存到线程本地. class Test { public static void main(String[] arg ...
- mysql忘记root密码处理
由于测试环境root账户不经常使用,等到需要用到时,很难记起它的密码.特在此记录下忘记密码后的操作 1. 先停止mysql服务 2. 运行 mysqld -nt skip-grant-tables 不 ...
- crypto-js计算文件的sha256值
1. 要在浏览器中计算出文件的sha256或md5值,基本思路就是使用HTML5的FileReader接口把文件读取到内存(readAsArrayBuffer),然后获取文件的二进制内容,然后获取文件 ...
- Linux多个机器配置ssh免登陆
多机器ssh免密码登录的教程,网上有很多,多的数不过来,但是我的安装过程不是很顺利,因为刚开始使用的是普通的user,虽然配置了sudo权限,但是没有root权限,导致了无论如何配置都不能实现免密码登 ...
- emacs 配置 clojure
安装JDK,Version >= 6.0 java -version 2 安装EMACS,Version>=24 在脚本~/.emacs.d/init.el中增加如下内容 (require ...
- Software Architecture Pattern(Mark Richards)笔记
软件架构模式 缺少规范架构的程序通常会变得紧耦合.脆弱.难以更改,缺少清晰的发展方向和愿景.这本小书用50多页介绍了常用的5种常见架构模式,相信不管是大牛还是萌新都会有所收获,特别是对我这种偏爱系统设 ...
- WPF的RadioButton--单选框
1. 使用, 显示的内容改为Content属性 <RadioButton Content="boy"/> 2. 要使用分组,就是用 GroupName属性 <Ra ...