美文网首页
git-时光机1

git-时光机1

作者: 脏脏包盛 | 来源:发表于2018-09-06 14:21 被阅读0次

git status 查看工作区状态
git diff 工作区与版本库的区别
git add file1 file2 添加到版本库中 可以添加多个文件
git commit -m file 提交
git log 查询修改日志
git log --pretty=oneline --abbrev-commit 简成一行查询日志
git reflog 查询commit id
git reset --hard HEAD or commit id 回退版本,--hard无空格

修改文件

修改readme文件、

Git is a distributed version control system.
Git is free software.

现在,运行git status命令看看结果:

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

it status命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,readme.txt被修改过了,但还没有准备提交的修改。

虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:

$ git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.

git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个distributed单词。

知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add:

$ git add readme.txt

同样没有任何输出。在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   readme.txt

git status告诉我们,将git要被提交的修改包括readme.txt,下一步,就可以放心地提交了:

$ git commit -m "add distributed"
[master e475afc] add distributed
 1 file changed, 1 insertion(+), 1 deletion(-)

提交后,我们再用git status命令看看仓库的当前状态:

$ git status
On branch master
nothing to commit, working tree clean

版本回退

现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下:

Git is a distributed version control system.
Git is free software distributed under the GPL.
$ git add readme.txt
$ git commit -m "append GPL"
[master 1094adb] append GPL
 1 file changed, 1 insertion(+), 1 deletion(-)
git log

版本回退使用git reset HEAD表示当前版本,HDAD表示上个版本,HEAD^表示上上个版本

git reset --hard HEAD^
git reset --hard HEAD^^

如果再想回到之前最新的版本,使用指定的commit id 来回去

git reset --hard id

查询commit id 使用 git reflog查询

git reflog

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL:

image.png

改为指向add distributed:


image.png

相关文章

  • git-时光机1

    git status 查看工作区状态git diff 工作区与版本库的区别git add file1 file2...

  • git-时光机2

    git checkout -- file 在工作区的修改全部撤销git reset HEAD 可以把...

  • 2019-03-07

    Git-分布式版本控制系统 1.安装 2.创建仓库 3.添加文件 4.时光机 5.远程 github-flow L...

  • 时光机1

    "年轻时 你做了一个决定 要把自己的生命献给爱情 后来,你没死 年轻替你抵了命 ――音乐热评 刚在简书里看到这段话...

  • 时光机1

  • 在eclipse中使用git

    1. 配置git windows->preferences->team->git->congfiguration ...

  • Git常用指令大全

    1 获取帮助 git help git --helpman git- 例如,...

  • Android Studio git使用小结

    步骤小结: VCS->Import into vc->Create git->变红 项目右击->git->add-...

  • 【青春】时光机(1)

    这天,下着大雪,没什么风。雪花在半空中缓慢飘落,数量之多,让人觉得喘不过气,一如三十年前的这天。 刚满三十...

  • git-分支1

    git branch 查看分支git branch dev 创建名字为dev的分支git checkout dev...

网友评论

      本文标题:git-时光机1

      本文链接:https://www.haomeiwen.com/subject/zbetgftx.html