git 笔记

作者: 不ji的石头 | 来源:发表于2021-11-28 17:27 被阅读0次
    • 最小配置:设置user.name and user.email

    git config < --global > user.name 'your_name'

    --global //对当前用户所有的仓库都有效

    --local //只对某一个仓库有效

    --system //对系统所有的登录用户有效,基本不用

    git config --list --< --global >//查看global的配置,local,sytem同理

    创建一个git仓库

    两个场景

    • 已经有了项目代码了

      cd 项目所在文件夹

      git init

    • 新建项目直接用git管理

      cd 项目所在文件夹

      git init your_project 会在当前路径创建和项目名称相同的文件夹

      cd your_project

    git工作区和暂存区

    git status //查看文件状态(是否修改,add或者commit)

    git add < dirName... > <fileName...>//可以同时添加多个文件或文件夹

    git add将文件加入了暂存区

    git add -u //可以将git已经跟踪了的文件(就是已经add过了的)一起add

    git commit -m 'commit 原因'

    文件重命名

    • 一般方法:

    mv oldfFileName newName//这将使oldFileName删除再新建一个newName文件,文件内容不变

    git add newName

    git rm oldFileName

    • 简单方法:

    git mv oldname newname

    git commit -m '原因'

    • git log 使用

    git log //查看log 有commit id,Author(作者),email,Date和提交注释信息。

    -n3//查看最近3个

    --oneline//简洁显示

    --all //查看所有分支

    --graph //图行化查看分支哪里来的

    --不加参数就支持看当前分支的log

    git reset 版本回退和前进

    git reset --hard 版本id //回退到指定版本,可以找回永久删除的文件

    git reset --hard HEAD^^//一个^后退一个版本

    git reset --hard HEAD~n//n为几就是后退几个

    --soft id//仅仅修改本地库的HEAD指针

    --mixed id//修改本地库和暂存区的HEAD指针

    --hard id //本地库 暂存区 工作区(写代码)HEAD指针都改变

    • git diff

    git diff filename//将工作区文件和本地区的文件比较

    git diff id filename //将某个版本的本地文件和当前工作区文件对比

    • git分支

    git branch -v//查看分支

    git branch 分支名//创建分支

    git checkout 分支名称//切换分支

    git merge B分支名称//合并分支,注意要先到A分支然后把B分支合并到A

    • 分支冲突:

    就是两个分支修改了同一个地方,git不知道要采用谁的修改。

    • 解决:

    首先把文件里面的特殊符号删除,保存退出;再git add filename;最后git commit -m'原因' 即可

    • commit tree blob区别

    一个commit对应一个tree,一个tree下面有许多blob(指某一个具体文件),在git里面两个一模一样的文件对应同一个blob,这样就能减少空间的浪费。

    git cat-file -t id//看类型,例如commit,tree,blob

    git cat-file -p id//看内容

    • git&&github

    git remote add 别名 GitHub地址//相当于起别名

    git remote -v//查看别名对应的地址

    git push 别名 分支//推送文件到GitHub仓库

    git clone 地址//把远程库clone到本地,而且也把本地库的别名和初始化也完成了。

    git pull 远程库别名 远程库分支//拉取远程库的指定分支

    pull = fetch + merge

    git fetch 别名 分支

    git merge 别名/分支

    以上两个操作相当于一个git pull

    相关文章

      网友评论

        本文标题:git 笔记

        本文链接:https://www.haomeiwen.com/subject/ihxmzltx.html