博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git的基本使用
阅读量:7217 次
发布时间:2019-06-29

本文共 4317 字,大约阅读时间需要 14 分钟。

Git的基本使用

git init

把当前目录变成Git可以管理的仓库:

$ git initInitialized empty Git repository in C:\Users\ydt\Desktop\练习\git-test\test

git status

可以查看当前状态

$ git statusOn branch masternothing to commit, working tree clean

当前工作区是干净的

假设在当前目录创建了新建文本文档.txt,git status查看状态

$ git statusOn branch masterUntracked files:  (use "git add 
..." to include in what will be committed) "\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243 (2).txt"nothing added to commit but untracked files present (use "git add" to track)

新增了文件,并且未add和commit(修改监控包括了文件内的修改,当前目录的文件增删、重命名等)

git diff

git status可以告诉我们什么文件被修改过,而如果想知道具体的修改,可以用git diff

$ git diff 新建文本文档.txtdiff --git "a/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" "b/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"index d800886..31ed750 100644--- "a/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"+++ "b/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"@@ -1 +1 @@-123\ No newline at end of file+1231231\ No newline at end of file

git add

将文件添加进仓库暂存区

$ git add .        添加所有的文件、文件夹$ git add 
添加指定名称的文件,<>内部写文件全称
$ git add 新建文本文档.txt

没有任何显示,说明添加成功

git status查看状态

$ git statusOn branch masterNo commits yetChanges to be committed:  (use "git rm --cached 
..." to unstage) new file: "\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"

新建文本文档.txt已经在暂存区。

git commit

将暂存区的修改全部提交到分支,-m为提交的说明信息

$ git commit -m"第一次提交"[master (root-commit) ad7f5fe] 第一次提交 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"

提交成功

git status再次查看状态

$ git statusOn branch masternothing to commit, working tree clean

工作区是干净的

版本库&工作区&暂存区

image

工作区:就是在电脑里能看到的目录

暂存区:用git add把文件添加进去,还未进行commit的区域,就是暂存区;

版本库: 工作区有一个隐藏目录.git,就是Git的版本库。

git log

显示从最近到最远的提交日志

$ git logcommit 64fcede692e5db64cbee83d1965a2c15ddaa24e3 (HEAD -> master)Author: ydt <468602953@qq.com>Date:   Fri Aug 17 14:24:30 2018 +0800    xxxcommit ad7f5fe1afbb208e8596b925c4a6198cbe72c5b0Author: ydt <468602953@qq.com>Date:   Fri Aug 17 14:15:57 2018 +0800    第一次提交

可以加上--pretty-oneline,输出简略信息

$ git log --pretty=oneline64fcede692e5db64cbee83d1965a2c15ddaa24e3 (HEAD -> master) xxxad7f5fe1afbb208e8596b925c4a6198cbe72c5b0 第一次提交

上面的HEAD表示当前版本。那么HEAD^就是上一个版本,那么HEAD^^就是上上个版本,如果版本数较多,可以用HEAD~100,表示上100个版本。

git reset

回退到指定版本

$ git reset --hard HEAD^HEAD is now at ad7f5fe 第一次提交

查看提交记录

$ git logcommit ad7f5fe1afbb208e8596b925c4a6198cbe72c5b0 (HEAD -> master)Author: ydt <468602953@qq.com>Date:   Fri Aug 17 14:15:57 2018 +0800    第一次提交

成功回退到上个版本

回退后可以发现,之前的版本已经不存在,如果窗口没有关闭,可以向上查找之前的log信息,找到之前版本的版本号(取前几位就行)

$ git reset --hard 64fcHEAD is now at 64fcede xxx

可以看到,成功回到最新的提交 xxx。

git reflog

用来记录你的每一次命令

假如窗口关闭,找不到新版本的commit id,就可以用git reflog来查找

$ git reflogad7f5fe (HEAD -> master) HEAD@{0}: reset: moving to HEAD^64fcede HEAD@{1}: reset: moving to 64fcad7f5fe (HEAD -> master) HEAD@{2}: reset: moving to HEAD^64fcede HEAD@{3}: commit: xxxad7f5fe (HEAD -> master) HEAD@{4}: commit (initial): 第一次提交

同样,顺利的找到了最新版本 xxx

git checkout -- file

丢弃工作区的修改

这里有两种情况

  • 一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

  • 一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

git reset HEAD

可以把暂存区的修改撤销掉,重新放回工作区。

这里我们将txt随便做点修改,然后add进暂存区,查看状态:

$ git statusOn branch masterChanges to be committed:  (use "git reset HEAD 
..." to unstage) modified: "\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"

接下来执行撤销:

$ git reset HEAD 新建文本文档.txtUnstaged changes after reset:M       新建文本文档.txt

查看状态:

$ git statusOn branch masterChanges not staged for commit:  (use "git add 
..." to update what will be committed) (use "git checkout --
..." to discard changes in working directory) modified: "\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"no changes added to commit (use "git add" and/or "git commit -a")

可以看到,现在暂存区是干净的,工作区有修改

根据需要,还可以进一步删除工作区的修改:

$ git checkout -- 新建文本文档.txt

至于撤销commit,就该用到版本回退 git reset --hard了。

转载于:https://www.cnblogs.com/y-dt/p/9748507.html

你可能感兴趣的文章
在python中调用js或者nodejs
查看>>
【年终总结】2年计划还是要有的,万一实现了呢?(转自叶小钗)
查看>>
数字图像处理学习笔记(1.1)---位图的读写、几何变换、傅里叶变换、直方图均衡...
查看>>
javascript数组顺序-----1冒泡的另一种比较好理解的写法
查看>>
数据结构-栈的实现之行编译器核心实现
查看>>
C++ Project 积累(2)
查看>>
(1)用VisualSvn Server,Tortoise Svn,AnkhSvn搭建Svn版本控制
查看>>
Mysql索引
查看>>
格式化输出
查看>>
hdu 3804 Query on a tree (树链剖分+线段树)
查看>>
定位、指南针、地理编码
查看>>
Kafka 简介
查看>>
MySQL 用户连接与用户线程
查看>>
RabbitMq、ActiveMq、Kafka和Redis做Mq对比
查看>>
C# 图片处理(压缩、剪裁,转换,优化)
查看>>
Linux bridge-utils tunctl 使用
查看>>
Leetcode Pascal&#39;s Triangle II
查看>>
运行shell脚本报错 &#39;\357\273\277&#39;: command not found 解决的方法
查看>>
android studio 0.8.1使用和遇到问题解决
查看>>
云服务器ECS选购集锦之六区域选择帮助
查看>>