git 学习使用总结一(本地操作)
首先安装 Git,Git 官网 会推荐适合自己系统的安装包,网速慢的同学可以去百度网盘下载 Git-2.21.0-64-bit Windows 版本 提取码:tz9d。
通过几天的学习,熟悉了 git 的一些常用命令,要用熟练和操作更复杂的功能还必须继续学习。不过 git 作为工具,它是用来提高我们的工作效率的工具,系统的学习之后可以暂且放放,等到以后实际项目中用到了不会的东西再来问专家或通过搜索引擎查询解决办法。
这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分。
我使用的是 windows 系统,所以使用 Git Bash 输入命令。首先,全部命令,再实例结合命令:
一、命令:
1. 显示当前的目录,pwd (Print Working Directory)
$ pwd
2. 进入指定目录,cd (Change Directory)
$ cd
3. 返回到上一级目录
$ cd ..
4. 配置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
5. 创建空目录,mkdir
$ mkdir
6. 初始化该目录
$ git init
7. 把文件添加到仓库
$ git add <filename>
一次添加多个文件(添加新文件和编辑过的文件不包括删除的文件)
$ git add .
8. 把文件提交到仓库
$ git commit -m "added one line"
9. 查看状态
$ git status
10. 查看修改内容
$ git diff
如果想要查看两次提交的差异(具体修改了哪些文件):
$ git diff bash1 bash2 --stat
如果想要查看两次提交的差异中,修改的文件中具体修改了哪些内容的话:
把 --stat 换成具体的文件就行了。
$ git diff bash1 bash2 <filename>
这两个命令非常有用,有这样一些场景:
一、如果你改了很多文件,同时 commit 提交了,但是没有网络无法 push 到远程。或许你需要同事帮忙,他们帮你更改这些文件然后 push 到远程。你没有网络不可能直接把文件发给他们,所以就需要知道具体更改了哪些文件,然后知道改动的文件改了哪些内容。让他们添加上,然后commit和push,你自己撤销你所做的更改。
二、如果有两个很相似的系统,需要移植你所做的更改,但是你不可能直接复制替换源文件,因为这样也会引起冲突或者覆盖掉原本不同的地方。这个时候就需要知道更改了哪些内容,然后每一个文件移植过去。
11. 显示提交历史
$ git log
用一行显示提交历史
$ git log --pretty=oneline
12. 版本回退(回退到上一版本)
$ git reset --hard HEAD^
回退到指定版本
$ git reset --hard <commit id>
13. 查看更改历史(包括添加、提交、删除、撤销...)
$ git reflog
14. 查看文件内容
$ cat <filename>
15. 撤销修改(未添加到暂存区)
$ git checkout -- <filename>
16. 撤销修改(已添加到暂存区)
$ git reset HEAD <filename>
$ git checkout -- <filename>
17. 撤销修改(已提交到版本库)
$ git reset --hard HEAD^
$ git reset HEAD <filename>
$ git checkout -- <filename>
18. 删除文件(删除工作区的文件)
$ rm test.txt
彻底删除文件,同时删除版本库里的文件
$ rm <filename>
$ git rm <filename>
$ git commit -m "deleted a file"
二、实例结合命令
1. 显示当前的目录,pwd (Print Working Directory)
$ pwd
当前目录是 /c/User/Administrator,也就是说,我的 Git Bash 应用安装在这个目录下?
2. 进入指定目录,cd (Change Directory)
$ cd
这个 bootstrap 是我从 https://github.com/twbs/bootstrap (bootstrap 在 github 上的主页) "Fork" 到自己的账号下后克隆到本地的。我选择的是 “v4-dev” 这个分支,所以后面会有 /bootstrap (v4-dev) 这样的字符出现。
3. 返回到上一级目录
$ cd ..
输入 "cd .." 然后回车,当前目录从 "/c/Users/Administrator/bootstrap/dist" 变成了 "/c/Users/Administrator/bootstrap"。"cd" 与 ".." 之间有一个空格。
4. 配置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
配置的目的,表示我的这台电脑使用的是 "xinjie-just" 这个账号。
5. 创建空目录,mkdir
$ mkdir
执行该命令后,在我的根目录下就新增了一个文件夹 running:
6. 初始化该目录,将该目录变成 git 可以管理的仓库:
$ cd running
$ git init
Initialized empty Git repository in C:/Users/Administrator/running/.git/
首先进入该仓库,然后将其初始化,init(initialization)。
7. 把文件添加到仓库
$ git add <filename>
我在本地添加了一个新文件 readme.txt,然后添加了一段话。
$ git add .
一次添加多个文件(添加新文件和编辑过的文件不包括删除的文件) :
8. 把文件提交到仓库
$ git commit -m "added one line"
"-m" 后面的 "added one line" 为注释,解释这次提交的意图,可任意填写容易理解的话。
添加文件到Git仓库,分两步:
第一步,使用命令 git add <filename>
,注意,可反复多次使用,添加多个文件;
第二步,使用命令 git commit
,完成。
9. 查看状态
$ git status
结果告诉我们,在 master 分支上,没有东西需要提交,工作目录是干净的。
10. 查看修改内容
$ git diff
在上次我提交文件后,在最后添加了空行和一段话。diff 是 difference(改变) 的缩写。
11. 显示提交历史
$ git log
$ git log --pretty=oneline
使用 git log 可显示更改历史,包括了版本号、作者、日期、提交注释。使用 git log --pretty=oneline 会用一行显示一条历史记录,看起来更清晰明了。
12. 版本回退
$ git reset --hard HEAD^
HEAD 表示当前版本号,HEAD^ 表示上一个版本号,HEAD^^表示上两个版本号,与 HEAD~2 意思相同。
这里回到上一版本。
回退到指定版本,还有更快捷的方法。
$ git reset --hard <commit id>
这里使用版本号回到上一版本。
13. 查看文件内容
$ cat <filename>
如上(12点) cat readme.txt 查看文件内容。
14. 查看更改历史
$ git reflog
查看更改历史,不仅仅是提交历史。包括了添加版本、版本回退、撤销修改等等。
15. 撤销修改(未添加到暂存区)
$ git checkout -- <filename>
我在 readme.txt 中添加了一行,然后使用 cat readme.txt 显示其内容,随后使用 git checkout -- readme.txt 将其撤销,再使用 cat readme.txt 显示内容。
使用这种命令有一个前提,是还没有使用 git add 将文件添加到暂存区。
16. 撤销修改(已添加到暂存区)
$ git reset HEAD <filename>
我在 readme.txt 文件中添加了配速这一行。然后验证 git reset HEAD readme.txt 这个命令:
1. 使用 git add readme.txt 命令将文件提交到暂存区;
2. 使用 git reset HEAD readme.txt 命令撤销暂存区里的新内容;
3. 使用 git checkout -- readme.txt 命令将工作区里的内容和暂存区里的内容保持一致(即撤销工作区最近的一次修改)。
17. 撤销修改(已经提交到仓库)
如果已经将修改提交到仓库了,而要撤销这次修改,需要分三步完成:
第一步:返回到上一版本库,使用命令 git reset --hard HEAD^ ;
第二步:撤销暂存区里的修改,使用命令 git reset HEAD readme.txt ;
第三步:撤销工作区里的修改,使用命令 git checkout -- readme.txt 。
$ git add readme.txt $ git commit -m "added Foot Strike"
[master a7ab6d5] added Foot Strike
file changed, insertions(+), deletion(-) $ git status
On branch master
nothing to commit, working directory clean $ git reset --hard HEAD^
HEAD is now at 9110ce6 added Warm Up $ git reset HEAD readme.txt $ git checkout -- readme.txt $ git status
On branch master
nothing to commit, working directory clean
18. 删除文件,rm (remove)
rm 准确一点儿的理解是移除,暂时看不见了,实际上还存在。可以选择直接在文件管理器中将其删除,但是那样的删除是将文件放到了回收站,等待你下一步操作(还原或彻底删除)。但是这里选择用 git 命令删除。
$ git rm test.txt
新建了一个用来操作 git 删除命令的测试文件 test.txt 。然后使用 git rm test.txt 将其删除。
从上图中可以看出,我主要操作了四步:
第一步:根据 git status 提示,我有一个文件需要添加进暂存区,于是我添加然后提交到了版本库里;
第二步:使用 rm test.txt 删除了工作区里的 test.txt 文件;
第三步:根据 git status 提示,我进行了一项删除操作 "deleted: test.txt",需要进一步选择操作命令,使用 git add/rm test.txt 命令去更新将要被提交的操作,或者使用 git checkout -- test.txt 去忽略工作区里的改变(第二步中的删除)。于是我选择了 git rm test.txt 彻底删除了工作区的 test.txt 文件(就好像在文件管理器里删除文件后,需要去回收站里彻底删除或还原文件一样,只是用 git 命令删除的文件放在了 git 仓库为我们准备的一个回收站里,我们看不见)。
第四步:使用 git commit -m "deleted test.txt" 将删除操作提交到仓库。
扩展:
有一种情况是删错了。所以需要恢复,或者说撤销删除。
我在 test.txt 文件同一路径下新建了 test-rm-checkout.txt 文件,用来测试撤销删除操作。
从上图中可以看出,在使用 rm test-rm-checkout.txt 命令删除文件后,我试图使用 cat test-rm-checkout.txt 命令进入被删除的文件看内容,被提示"没有这样的文件"。当我使用 git checkout -- test-rm-checkout.txt 撤销删除后,再次使用 cat test-rm-checkout.txt 命令进入被删除的文件看内容时,可以查看了,证明文件又回来了(只是里面没有内容,显示为空白而已)。
git 学习使用总结一(本地操作)的更多相关文章
- Git 学习(三)本地仓库操作——git add & commit
Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...
- Git学习-安装与创建本地仓库
前言 以前公司进行项目的版本管理都是用svn,最近公司推荐用git,把svn给关闭了.没办法,拿来主义.网上一番猛操作,勉强也能用了,给自己做个笔记. git安装 因为我用的是windos系统,在Wi ...
- git学习记录1(本地库管理)
学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...
- Git学习(1)-本地版本库的创建
我用的是Git-2.14.3-64-bit版本,在windows64位上运行的,把软件分享下链接:http://pan.baidu.com/s/1jIoZ7Xc 密码:13q2. 安装及配置自行百度, ...
- Git 学习(四)操作修改和版本穿梭
Git 学习(四)操作修改和版本穿梭 之前的章节,已介绍了本地Git库创建.暂存区增.删.改,以及提交版本库:可回顾下命令操作: git add 和 git commit. 光有之前章节的操作,Git ...
- Git学习笔记---协作的一般流程
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...
- Git学习(一)——熟悉git操作流程
本篇笔记前面都是仔细介绍使用方法,如果想跳过这些直接熟悉怎么使用,跳到最后一个知识点完整流程介绍. git 了解:特点.优点 1.git用户版和服务版整合在一起,任何机器上都安装了两个版本 2.git ...
- Git本地操作2
code[class*="language-"], pre[class*="language-"] { color: rgba(51, 51, 51, 1); ...
- git 学习使用总结二(远程仓库操作)
这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分. 我使用的是 windows 系统,所以使用 Git Bash ...
随机推荐
- browser.html – HTML 实现 Firefox UI
browser.html 是一个实验性的项目,用于证明一个概念:使用 HTML 重新实现 Firefox UI ,并作为一个应用程序.它是基于浏览器的 API ,并以浏览器的方式和系统的应用工作.即使 ...
- CSS3颜色特征温故
网页是色彩的表现原理:显示器是由一个个像素构成,利用电子束来表现色彩.像素把光的三原色:红色(R).绿色(G).蓝色(B)组合成的色彩按照科学原理表现出来.一个像素包含8位元色彩的信息量,又从0 ~ ...
- FlippingBook使用教程
FlippingBook是一款收费的图书翻页效果的flash播放器.在线预览地址:FlippingBook,破解版下载地址 备用下载地址 预览效果: 它的文件结构如下: 其中:css文件夹是一个简单的 ...
- atitit.userService 用户系统设计 v4 q316 .doc
atitit.userService 用户系统设计 v4 q316 .doc 1. 新特性1 2. Admin login1 3. 用户注册登录2 3.1. <!-- 会员注册使用 --> ...
- Gradle用户指南(中文版)
http://rinvay.github.io/android/2015/03/26/Gradle-Plugin-User-Guide(Translation)/
- UINavigationController和UIScrollView一起使用时导致UIScrollView位置偏移
iOS7之后,当UIViewController成为UINavigationController的控制视图,UIViewController的控制视图上的第一个子视图是UIScrollView,UIS ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- android加固系列—6.仿爱加密等第三方加固平台之动态加载dex防止apk被反编译
[版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5402599.html ] 此方案的目的是隐藏源码防止直接性的反编译查看源码,原理是加密编译好的 ...
- 浅谈GridLayout(网格布局)
Android 4.0 布局-->GridLayout 网格布局 以行列单元格的形式展示内部控件排列,可以实现类似计算机键盘效果 ,也可以实现可自动变行的标签群效果 使用GridLayout , ...
- 【代码笔记】iOS-离线地图
一,效果图. 二,工程图. 三,代码. ViewController.h #import <UIKit/UIKit.h> #import <CoreLocation/CoreLoca ...