git总结

229 阅读4分钟

常用命令

本地提交

    git push -u origin master
        // push 推送
        // -u 关联,加上以后,后续提交时可以直接使用git push
        // origin 远端仓库的别名
        // master 本地

    git push origin --all: 推送本地仓库的全部分支到远程仓库

本地克隆并拉取仓库

    git clone https://github.com/zard999/note.git: 拉取仓库
    git pull: 拉取更新本地仓库

提交操作

  • git status: 查看状态

    1. 红色代表工作区和暂存区不一致
    2. 绿色代表暂存区和仓库区的当前版本不一致
    3. Untracked files: 未跟踪的文件(新增的文件)
    4. modidied: 修改了某些文件
    5. deleted: 删除了某些文件
  • git add -A(git add . 或者git add *): 提交某个文件或者全部文件到暂存区

  • git commit -m '注释': 提交修改并注释

  • git commit -am: 自动把所有已经跟踪过的文件暂存起来一并提交,跳过 git add

撤销操作

  • git restore.(或者git restore): 撤销工作区的改动到上一次提交
  • git restore --staged .: 撤销提交到暂存区(如果是工作区新增文件的撤销,直接删除就可以)

删除操作

  • git rm fileName: 删除暂存区和工作区的某个文件(然后直接 commit 提交,仓库区的最新版本就没有这个文件了)
  • git rm --cached fileName: 删除暂存区的文件,此时工作区和暂存区,仓库区和暂存区都不一致
  • git rm fileName -f: 强制删除文件(当工作区和暂存区或仓库不一致的时候,强制删除)

重命名和移动操作

  • git mv 01.js 02.js: 重命名 01.js 为 02.js
  • git mv 01.js js/: 移动 01.js 文件位置到 js 文件夹中
  • git mv 01.js js/02.js: 移动 01.js 文件到 js 文件夹中,并重命名为 02.js

对比差异

  • git diff: 查看工作区与暂存区的差异(不显示删除或新增文件)显示做了哪些修改
// 解读结果
Windows% git diff
    // 进行比较的是,index.html(即变动前)index.html(即变动后)
    diff --git a/index.html b/index.html
    // 表示两个版本的git哈希值
    index 16158b4..61045cd 100644
    // "---"表示变动前的版本
    --- a/index.html
    // "+++"表示变动后的版本
    +++ b/index.html
    // 代表的意思是源文件的1-2行与目标文件的1-5行有差异 下面才是具体的差异信息
    @@ -1,2 +1,5 @@
    // -红色部分表示减少的部分,+绿色部分表示增加的部分
    index.html
    -no 1
    +
    +
    +
    +再次修改
    // \ No newline at end of file 最后一行没有换行
    \ No newline at end of file
  • git diff --cached: 查看暂存区与仓库的差异
  • git diff a b: 比较两个版本之间的差异

历史版本及回滚

查看历史版本

  • git log: 查看所有的提交,用下方向键控制向下查看,按 q 退出
  • git log --oneline: 查看所有提交的简略信息
  • git log p: 查看所有提交及每次的差异

回滚

  • git reset --hard hash: 仓库回退到某个版本,重置工作区和暂存区
  • git reset --mixed hash: 仓库回退到某个版本,重置暂存区
  • git reset --soft hash: 仓库回退到某个版本
  • git reflog: 查看所有的日志操作(包括 commit 和 reset 的操作)

配置忽略文件

  • 只有本地有当前文件:
    1. 直接创建一个.gitignore文件,里边书写忽略的文件名或文件夹即可
  • 已经被仓库管理的文件想要忽略
    1. 首先让仓库和暂存区不在管理这个文件
    2. git rm --cached fileName: 把暂存区的这个文件删除,在 commit 提交到仓库,此时当前文件在工作区就是一个新增文件了,然后再去.gitignore 中配置忽略即可

分支操作

  • git branch: 查看所有分支
  • git branch name: 创建一个分支
  • git checkout name: 提交当前分之后,再切换分支
  • git checkout -b name: 创建并切换分支
  • git merge name: 合并某个分支
  • git branch -d name: 删除某个分支

本地配置远程仓库提交地址

    git remote add origin https://github.come/zard999/note.git
        // 远端仓库管理 添加一个远程仓库的url别名
        // add 添加
        // origin 远端仓库的别名(git remote -v 可以查看仓库的所有别名)
        // https://github.com/zard999/note.git 仓库地址
        // git remote 可以添加删除重命名等操作(使用git remote -h查看)