git command

git diff HEAD

git status

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

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

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

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

Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:

git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file。

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:


好了,现在我们启动时光穿梭机,准备把readme.txt回退到上一个版本,也就是“add distributed”的那个版本,怎么做呢?

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

现在,我们要把当前版本“append GPL”回退到上一个版本“add distributed”,就可以使用git reset命令:

$ git reset--hard HEAD^

用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别

Git提供了一个命令git reflog用来记录你的每一次命令


命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

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

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


命令git rm删掉,并且git commit

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$git checkout -- test.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

git  add .

git commit -m "change log"

git push -u origin master


$git branch dev

$git checkout dev

$git branch

$git checkout master

$git merge dev

$git branch -d dev

git log --graph --pretty=oneline --abbrev-commit


Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash list

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了

推荐阅读更多精彩内容

  • 一、Git工作流程 以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词。 Workspac...
    LeiLv阅读 6,142评论 2 39
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 6,086评论 2 46
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 8,547评论 9 158
  • 好久之前在网上看过一个网络节目--【酷爱英语】,当时只觉得这个外国人的中文说的好溜,短视频里讲的内容也是社会热点加...
    戴蒙德阅读 548评论 26 25
  • 固执己见的探讨 2017-04-03 Sherry* Swill灵魂之声 眼看又将公众号搁置了许久,那是一段相当长...
    为歌阅读 43评论 0 0