Git学习02----廖雪峰课程

Git学习笔记—时光穿梭机

修改文件
  1. git status命令可以让我们时刻掌握仓库当前的状态。
  2. 如果git status告诉你有文件被修改过,用git diff filename 可以查看修改内容。
  3. 提交修改和提交新文件是一样的两步。
    git add readme.txt
    git commit -m " "
版本回退

$ cat readme.txt: 查看文件中的内容。

  1. 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。加上–pretty=oneline参数,可以看到一大串类似1094adb…的是commit id(版本号)。
$ git log --pretty=oneline
24d23b010bf985cdb6ffe24a41d57edc815a5ad7 (HEAD -> master) append GPL
45510f81bdab40eb4d329efdfd25e50e6dbcc96c add distributed
55868e82176f025d1a15832ebf054381737f6415 wrote a readmefile
  1. HEAD指向的版本就是当前版本,使用命令git reset --hard HEAD^ 可以回退到上一个版本。Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。可以回到任意一个版本。
  2. 要重返未来,用git reflog查看命令历史,查看commit_id,以便确定要回到未来的哪个版本.
工作区和暂存区
工作区

就是你在电脑里能看到的目录,比如learngit文件夹就是一个工作区

版本库 暂存区
  1. 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
  2. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。


3. 前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

管理修改
  1. Git是如何跟踪修改的:每次修改,如果不用git add到暂存区,那就不会加入到commit中。
  2. 所以,那怎么提交第二次修改呢?
    第一次修改 -> git add -> 第二次修改 -> git add -> git commit(一起提交)
  3. git diff HEAD - - readme.txt命令可以查看工作区和版本库里面最新版本的区别:
$ git diff HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index db28b2c..9a8b341 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,4 +1,4 @@
 Git is a distributed version control system.
 Git is free software distributed under the GPL.
 Git has a mutable index called stage.
-Git tracks changes.
\ No newline at end of file
+Git tracks changes of files.
\ No newline at end of file
撤销修改
  1. 当修改了工作区某个文件的内容,想丢弃工作区的修改时,用命令git checkout - -filename。

  2. 当不但修改了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD filename,就回到了1(添加到暂存区之前的工作区),第二步按场景1操作。
    git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

  3. 已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除文件

rm test.txt: 删除工作区中的文件(手动删除也一样),这样工作区和版本库中就不一样了。

  1. 从版本库中删除该文件:
    git rm test.txt
    git commit -m "remove test.txt"
  2. 将工作区中误删的文件恢复:
    git checkout – test.txt(撤销修改)

注意:git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值