Git+Github学习笔记(2)

154 阅读4分钟

继续学习git的其他基本命令

还会对回退版本相关命令进行补充(。・∀・)ノ゙

1.回退版本

有时候我们会误操作,需要将文件恢复到之前的版本, 可以使用以下命令:

  • git reset --soft HEAD^:回退到上一个版本, 但是不删除工作区改动代码
  • git reset --mixed HEAD^:回退到上一个版本, 并将暂存区的改动代码回退到工作区
  • git reset --hard HEAD^:回退到上一个版本, 并删除工作区改动代码

    HEAD^表示上一个版本, HEAD^^表示上上个版本, 以此类推 也可以直接使用版本ID来回退 解释:

  • --soft:不删除工作区改动代码,回退到上一个版本后, 可以继续修改代码,所有的改动代码都会保留,且不会改变暂存区的文件状态
  • --mixed:将暂存区的改动代码回退到工作区,所有改动的文件状态都会变成'U',需要重新添加到暂存区(使用git add)
  • --hard:删除工作区改动代码,完全回退到上一个版本(慎用!!)

2.查看差异

使用以下命令可以查看文件的差异:

  • git diff:显示工作区中已修改但尚未添加到暂存区的文件的差异
  • git diff --cached:查看暂存区与上一个版本的差异
  • git diff HEAD:查看工作区与当前最新提交版本的差异

完全可以使用git diff <版本ID>查看指定版本与上一个版本的差异
也可以使用git diff <版本ID> <版本ID>查看两个版本之间的差异
还有很多其他的参数, 可以使用git diff --help查看
以及,在命令行中会用不同的颜色来表示不同的差异(自己试试看:))

3.撤销修改

当发现做出了没有必要的修改后,使用以下命令可以撤销修改:

  • git checkout -- <版本ID>:撤销指定文件的工作区改动,将文件恢复到暂存区或最新提交版本的状态
  • 这个命令很不谨慎,确保自己确实需要撤销修改,否则可能会丢失未提交的修改

4.删除文件

当我们不再需要某个文件,使用以下命令可以进行删除:

  • git rm <文件名>:删除文件, 并将删除操作提交到仓库
  • git rm --cached <文件名>:将文件从暂存区移除,但不会删除工作区中的文件
  • git rm -r*:删除文件夹, 并将删除操作提交到仓库

5.gitignore文件

gitignore文件是一个特殊的文件, 用于指定需要忽略的文件或文件夹, 如果文件或文件夹在gitignore文件中指定, 则不会git管理变化状态

什么文件需要忽略?

  • 编译生成的中间文件
  • 日志文件、配置文件、临时文件
  • 数据库文件
  • 第三方库文件
  • 敏感信息文件
  • ……

如何忽略文件?

  • 在项目根目录下新建一个.gitignore文件
  • .gitignore文件中添加需要忽略的文件或文件夹的名称
  • 注意:
    • .gitignore文件中的注释使用#
    • .gitignore文件中的通配符使用*
    • .gitignore文件中的文件夹使用/
    • .gitignore文件中的文件使用文件名
    • .gitignore文件中的文件夹使用文件夹名/

总结

以上就是Git的部分基本使用方法, 希望对你有所帮助(哦哦其实是写给自己当备忘录的), 有任何问题欢迎随时指正!

(。・∀・)ノ゙还会接着写同步到Github上的操作,以及分支的使用方法 好懒的我(。・∀・)ノ゙ 时刻记住git追踪的是文件的变化,不是文件本身

懒人直接检索

git reset --soft HEAD^     # 回退到上一个版本,保留工作区和暂存区内容
git reset --mixed HEAD^    # 回退到上一个版本,并将暂存区改动回退到工作区
git reset --hard HEAD^     # 回退到上一个版本,并删除工作区改动代码
git diff --cached          # 查看暂存区与最新提交版本的差异
git diff HEAD              # 查看工作区与当前最新提交版本的差异
git checkout -- <文件名>   # 撤销指定文件的工作区改动
git rm <文件名>            # 删除文件,并提交删除操作到仓库
git rm --cached <文件名>   # 将文件从暂存区移除,但保留在工作区
git rm -r <文件夹名>       # 删除文件夹,并提交删除操作到仓库

补充一个学习网站

learngitbranching.js.org/?locale=zh_…
里面的小动画和跟写真的很有用!!