Git常识命令

Posted lixiulin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git常识命令相关的知识,希望对你有一定的参考价值。

Git可以界面化操作也可以命令行操作

工作流

  • ① 工作区:不仅包含你实际更改的文件还应当包括当前修改但未add存入暂存区的文件变化信息
  • ② 暂存区:临时存储文件的变化信息,记录file文件上的修改信息(细化时间节点)
  • ③ 历史区:记录了各个版本,可查看代码更新,也可回滚到其他版本

三个区域的提交过程:
工作区->暂存区(临时储存)->历史区(生成版本),如需要回滚(直接从历史区把需要的版本覆盖工作区)
注意:有重大改变的版本或是在一次修改工作整体完成之后才使用commit。而在这之间需要保存的修改,一般都是存放在暂存区。

技术分享图片

工作流命令

  • 初始化git(不能嵌套使用git)

    git init

    以某个文件夹作为git管理的目录,初始化后会产生一个.git文件夹(勿删)

  • 添加暂存区

    git add . 或者 -A 或者 文件名
  • 添加到历史区

    git commit -m"initial"

    -m参数必须添加(第一次提交叫根提交)
    注意:空文件夹默认不会提交,默认添加.gitignore文件(.idea和.DS_Store和node_modules)

  • 添加暂存区添加历史区

    git commit -a -m ‘info‘

    此命令只能针对提交过的文件使用

  • 查看提交进程信息

    git status

    如果是红色:未添加到暂存区
    如果是绿色:添加到暂存区
    如果是没有:添加到历史区

  • 查看提交记录

    git log
  • 比较区的不同

    git diff    //不加参数即默认比较工作区与暂存区
    git diff --cached   //比较暂存区与最新本地版本库(本地库中最近一次commit的内容)
    git diff HEAD   //比较工作区与最新本地版本库(如HEAD指向的是分支,那HEAD还可以换成主干)
    git diff --cached 版本号   //比较暂存区与指定指定版本的差异
    git diff 版本号   //比较工作区与指定版本的差异
    git diff 版本号1 版本号2   //比较两个版本号之间的差异
  • 工作区的修改撤销

    git checkout 文件名

    工作区的修改撤销到最近一次git add 或 git commit时的内容
    注意:如果文件名是.就是把暂存区全部覆盖工作区

  • 暂存区的修改撤销

    git reset HEAD 文件名

    清空add命令向暂存区提交的关于文件的修改
    注意:此命令仅改变暂存区,并不改变工作区

  • 历史区版本号

    git reflog //所有的历史区版本号
  • 回滚历史区

    git reset --hard 版本号

分支命令

  • 查看分支

    git branch
  • 创建分支

    git branch 分支名 
  • 切换分支

    git checkout 分支名

    注意:分支上添加文件需要提交后才能归这个分支所有,否则你改的只是工作区内容,而且不提交是无法切换支线的

  • 创建并切换分支

    git checkout -b 分支名
  • 合并分支

    git merge 分支名

    默认会将分支上所有提交的内容全部合并(分支提交了两次版本,会把分支的两个版本都合并到主支),也可以选择git cherry-pick 版本号来合并某一个历史

合并之后,就是master和dev共有的,合并文件改变,master和dev都改变

合并完成后,一般把dev这个分支删除

问题: 同行修改合并时会冲突,需手动更改后,再提交历史区(不同行不冲突,需注意顺序)

避免:

  1. 首先要建立分支,分支修改,提交到历史区
  2. 然后在回到主支上,修改主支,提交到历史区
  3. 最后再合并主支和分支
  • 删除分支

    git branch -D 分支名

    不能在当前分支上,并且字母D尽量大写

仓库命令

  • 链接远程仓库

    git remote add 别名 自己远程仓库链接 
  • 查看/删除/更新远程仓库链接

    git remote -v   //查看
    git remote rm 别名   //删除
    git remote update 新别名   //更新
  • 克隆到本地

    git clone 远程地址 文件夹名

    这里文件夹名就是设置拉取到本地时候文件夹名

  • 拉取最新代码

    git pull origin master

    如果git pull -u origin master 第一次这么写,后面只需要git pull即可

  • 推送到远程仓库

    git push origin master 
    git push origin master --force   //强制推送本地的代码

    线上和线下的修改可能冲突,可以强制以本地为准推送
    推送之前可能需要拉取远程的内容,合并后再次推送,如产生冲突,需解决冲突。

  • 执行命令导出

    history >1.txt   //1.txt里面就是执行过的命令

LINUS命令

  • PWD打印当前目录

    print working directory
  • 删除文件夹

    rm -rf .git
    rm -rf .    //删除整个文件,不要用
  • 创建目录

    mkdir 目录名
  • 改变目录

    cd 目录位置
  • 显示清单

    ls
  • 创建文件

    touch 文件
  • 编辑文件

    vi 文件名
    i   //插入模式(编辑)
    esc+:wq   //保存并退出
    q!   //强制退出
  • 查看文件内容

    cat 文件名

    扩展:q用于命令行过小或是结束时

实际工作

  • 将仓库中的代码pull下来
  • 创建分支git branch dev(自己的分支名称)
  • 切换分支git checkout dev
  • 修改代码后git add . git commit -m‘‘注释‘ git push origin dev(自己的分支名称,在githup上生成自己的子分支)
  • 切换到主分支 git checkout master
  • 主分支上拉代码 git pull origin master
  • 合并分支 git merge dev git add . git commit -m ‘注释‘ git push origin master
  • 下次再改代码的时候切换到自己的分支上进行修改








以上是关于Git常识命令的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

入门学习Linux&&Git命令大集合

入门学习Linux&&Git命令大集合

入门学习Linux&&Git命令大集合

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段