git 的基本使用

  • 学习系列,git基本命令记录,开始之前,看下git的工作原理图:
  • 基础命令
    git init  # 创建本地仓库
    git status #查看信息
    git add 文件名(*)  #将代码提交至暂存区
    git commit -m '备注信息' #将代码提交到本地仓库
    git diff 文件名 #对比文件信息
    git log (--pretty=oneline) #查看git日志
    git log --graph --pretty=oneline --abbrev-commit #查看详细日志

    git reset --hard HEAD^ #回退到上一个版本
    git reflog #查看版本号
    git reset --hard 版本号 #回退到指定版本号

    git checkout -- 文件名 #将文件在工作区所做的操作撤销
    git rm 文件名 #将文件删除 相当于git add -A 把所有发送变化的文件提交到暂存区;git commit两步操作
    rm -rf 文件名 #强制删除(手工删除) 撤销直接使用git checkout -- 文件名
    git mv 旧文件名  新文件名  linux/mac 使用git mv  win使用git ren

    git commit --amend -m "增加信息"    # 修改最后一次提交内容
    git branch #查看当前分支情况
    git branch 分支名 #新建一个分支
    git checkout 分支名 #切换到指定分支操作 (指针切换)
    git checkout -b 新增分支名  # 新增分支并切换到新分支上
    git merge 分支名 #将分支内容合并到主分支
    git branch -d 分支名 #删除指定分支

    git tag  # 查看标签
    git tag v1.2  #设置标签
    git show   #  显示标签。
    git tag -a 标签名 -m “标签注释信息”  # 添加标签并带有注释信息
    git tag -a 标签名 -m “标签注释信息”  版本号  # 添加
    git cheakout 标签名 :切换到指定标签,此时不位于任何分支,处于游离状态,可以考虑在此标签创建一个分支,脱离游离状态可以checkout 分支名即可
    git tag -d #删除标签名
    git clean -n #查看没有被跟踪文件
    git clean -f #删除没有被跟踪的文件

    git remote add origin https://github.com/demo.git  # 添加远程仓库,名称为origin(默认)
    git push -u origin master  # 把master分支推送到origin仓库(原仓库)
    git clone 远程仓库git地址 # 克隆远程仓库到本地
    fork /拷贝对方的仓库到自己仓库,修改/增加完成后提交到自己的仓库,推送给对方的仓库使用pull request 进行推送,对方同一后可合并到对方仓库


  • 恢复删除在暂存区的文件
    1.git reset HEAD 文件名 #恢复暂存区
    2.git checkout -- 文件名 #恢复工作区
    3.git rm -r --cached 文件名  删除新增到暂存区的文件,再手工删除文件rm -rf +文件名

  • 当主分支与其他分支更新冲突时
    可以手动解决 将不需要的部分删除或者全部保留,解决后 执行 git add 再执行 git commit -m ""
    解决删除分支后还存在历史信息 git merge --no-ff -m '注释' 分支名

  • 多人协作产生冲突
    方式一:
    1、使用gitpull命令把最新的提交拉取下来
    2、如果拉取失败一般原因是没有指定本地子分支与远程origin/子分支的链接:可使用该命令gitbranch--set-upstream-to=origin/远程子分支本地子分支
    3、此时pull虽然成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样
    4、解决完成之后,使用git push提交
    方式二:
    使用命令gitpush-f 强制提交,该方式会导致远程仓库之前的修改被覆盖,同时提交日志也会被覆盖。

  • 常用的操作
    git blame filename #查看谁更改了file中的内容、修改时间
    设定git不跟踪文件:在工作目前创建一个名为.gitignore的文件,用于过滤数据,便于非需要管理的文件进行过滤,文件内容如下:
    /new/ #过滤整个文件夹
    *.txt #过滤所有.zip文件
    /new/test.c #过滤某个具体文件
    .DS_Store #Mac用来存储文件夹信息的文件
    npm-debug.log * #npm报错信息文件
    git clean:从工作目录中删除没有被git跟踪过的文件,它包含如下参数:
    -n提示哪些文件会被删除
    -f删除当前目录下所有没有跟踪过的文件.它不会删除
    .gitignore文件里面指定的文件夹和文件
    -f删除指定目录下所有没有跟踪过的文件
    -df删除当前目录下所有没有跟踪过的文件和文件夹
    -xf删除当前目录下所有没有跟踪过的文件,包含.gitignore文件中设置的文件

posted @ 2023-04-20 17:47  jasonchenYT  阅读(13)  评论(0编辑  收藏  举报