Git 操作指南

420 阅读5分钟

一、下载安装git

自行百度下载安装!!!

二、初次使用配置

在git cmd中依次输入如下命令:

git config --glabal user.name "你的用户名(不要中文)"

git config --glabal user.email "你的邮箱"

三、简单命令

(一)两步将工作目录里的文件放到Git仓库

  1. git add 文件名
  2. git commit -m "你对这次提交的备注,方便查看"

(二)查看git里的文件状态

`git status`

(三)查看提交日志

` git log`:基本形式

git log --oneline:把每一个提交压缩到了一行中。它默认只显示提交ID和提交信息的第一行

git log --decorate:很多时候,知道每个提交关联的分支或者标签很有用。--decorate标记让git log显示指向这个提交的所有引用(比如说分支、标签等)。

git log --graph:绘制一个ASCII图像来展示提交历史的分支结构。它经常和--oneline和--decorate两个选项一起使用,这样会更容易查看哪个提交属于哪个

git reflog :查看所有历史提交

(四)reset和checkout

注意:这个命令没那么简单!仔细品味

1)reset

三种操作:(ps:下面操作中HEAD后面的波浪线表示该仓库的上一个版本(这里的版本也称作快照),两个波浪线表示现在HEAD指向的版本的前两个版本,如果是前n个版本可以写作HEAD~n)

  • git reset --soft HEAD~

    • 执行该操作后: - 移动HEAD的指向,将其指向上一个版本
  • git reset --mixed HEAD~

    • 执行该操作后:
      • 移动HEAD的指向,将其指向上一个快照
      • 将HEAD移动后指向的版本内容回滚到暂存区域
  • git reset --hard HEAD~

    注意危险:该操作会将项目目录区域下的文件覆盖掉,本地的文件可能丢失,谨慎操作!

    • 执行该操作后:
      • 移动HEAD的指向,将其指向前一个版本快照
      • 将HEAD移动后指向的版本快照回滚到暂存区域
      • 将暂存区域的文件回滚到项目目录区域(万分注意:这里这步是会覆盖项目文件的

2)checkout

  • 将版本快照滚到工作目录和暂存区域里去

    git checkout 版本号

  • 将暂存区域里的东西回滚到工作目录里来

    git checkout

    单个文件:git checkout 文件名

总结:

  1. --soft--mixed--hard分别回滚一级二级三级,程度递增,特别hard会回滚到项目目录覆盖到本地,需要注意
  2. 默认是--mixed
  3. reset还可以回滚到特定的版本快照,只需要快照的id即可,即版本的hash值,hash值可以用git log查看git reset 版本id,例如:git reset bc57ccd(不用全部,前几位能够定位即可)
  4. reset还可以回滚单个文件,git reset 版本快照 文件名或者路径,例如:git reset bc57ccd HEADME.md
  5. reset还可以往前滚,如果你往后滚了,HEAD指针指向了旧的版本快照,那么你只要找到你要回滚的之前的新提交的版本快照id就可以,而查看快照id可以用git reflog查看。

(五)对比文件

(1)比较暂存区域与工作目录

git diff

对比文件较多时,可以操作移动,简单操作如下:

  • 按键盘上的 j表示向下移动一行
  • k 向上移动一行
  • f 向下翻一页
  • b 向上翻一页
  • d 向下移动半页
  • u 向上移动半页
  • g 跳转到第一行
  • G 跳转到最后一行
  • 行数 g 例如3 g 跳到第三行
  • /搜索词 从上往下搜索该词语
  • ?搜索词 从下往上搜索该词语
  • h帮助窗口

(2)比较仓库里的两个版本

git diff 版本号1 版本号2

(3)比较当前工作目录和仓库里的版本快照

git diff 版本号

另外:当前工作目录和最新的仓库版本,即HEAD所指的版本比较

git diff HEAD

(4)比较暂存区域与仓库

1.仓库最新的版本快照与暂存区文件比较

git diff --cached

2.指定仓库的一个版本快照与暂存区文件比较

git diff --cached 版本号

(六)修改

(1)修改提交说明

如果你想改变之前的提交说明,那么就

git commit --amend

或者直接

git commit --amend -m "你改变后的提交说明"

(2)删除文件

  • git rm 文件名:删除暂存区与工作目录里的该文件,仓库里的不会删除,如果想删除仓库里的请回滚

  • git rm -f 文件名:如果暂存区与工作目录里的文件出现同名不同内容的情况,用上面那种就会提示你有情况了,你可以用该命令强制一起删除

  • git rm --cached 文件名:只删除暂存区的文件而不删除工作目录下的文件

(3)文件重命名

git mv 原文件名 新文件名

四、分支

关于什么是git分支,他有什么优点,为什么要创建分支,自行百度

(一)创建分支

git branch 分支名称

(二)切换分支

把HEAD指向的分支切换到你需要的分支上来

git checkout 分支名

【偷懒】创建新分支并且切换到新分支里去,连续做两步

git checkout -b 分支名

(三)合并分支

把别处的分支合并到你现在HEAD所指向的分支上来

git merge 分支名

(四)删除分支

git branch -d 分支名

或者写两个小横线的全名

git branch --delete 分支名

(五)匿名分支

git checkout HEAD~

HEAD处于游离状态,你可以对这个创建的匿名分支作实验性操作,当HEAD回到正常分支时匿名分支会销毁