• Git使用教程


    Git使用教程

    更好的阅读体验

    从大一就开始用git了,但是一直以来都是想到哪用到哪,时间一长一些命令就容易忘,这次就系统地记录一下git命名,也方便后续查询

    在这里推荐一个可视化学习Git的网站

    Git学习

    Git基本概念

    image-20221124182414047.png

    git工作区

    工作区就是当前git的仓库的目录,工作区独立于各个分支

    git版本库

    git将所有版本通过一棵有向树的形式存储,存放所有已经提交到本地仓库的代码版本

    git暂存区

    git暂存区是工作区和版本库之间的缓冲区,工作区在向版本库更新时不会直接放入,而是先放入暂存区,最后将暂存区中的内容放入版本库。注意到暂存区是git的一个公共区域,无论当前所处的分支在何处,暂存区都是一样的

    HEAD节点

    当前版本所在的节点,每次创建时向head后加入节点并将内容放入其中

    Git文件状态

    首先对于任何一个文件,在Git内都只有四种状态

    • 未跟踪 (untracked)

    表示没有跟踪 (add) 某个文件的变化,使用 git add 即可跟踪文件

    • 未修改 (unmodified)

    表示某文件在跟踪后一直没有改动过或者改动已经被提交

    • 已修改(modified)

    表示修改了某个文件- 但还没有加入 (add) 到暂存区中

    • 已暂存 (staged)

    表示把已修改的文件放在下次提交 (commit) 时要保存的清单中

    image.png

    Git常用命令

    git config设置

    用于设置git全局信息

    git config --global user.name xxx
    
    • 1

    设置全局用户名,信息记录在~/.gitconfig文件中

    git config --global user.email xxx@xxx.com
    
    • 1

    设置全局邮箱地址,信息记录在~/.gitconfig文件中

    git init 配置仓库

    git init
    
    • 1

    将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中

    git add 将文件存入暂存区

    git add XX
    
    • 1

    将XX文件添加到暂存区

    git add .
    
    • 1

    将所有已修改状态文件加入暂存区

    git commit 将暂存区内容提交到分支

    git commit -m "给自己看的备注信息"
    
    • 1

    commit后暂存区清空

    git status 查看当前仓库状态

    git status
    
    • 1

    用于查看当前仓库跟对应HEAD版本是否存在改动

    git diff 查看文件相对于暂存区的改动

    git diff
    
    • 1

    当工作区有改动,暂存区为空,diff的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,暂存区不为空,diff对比的是“工作区与暂存区的共同文件”

    git rm --cached xx 删除仓库git文件索引

    git rm --cached XX
    
    • 1

    删除索引后,文件不再受git管理

    未跟踪状态

    git rm xx 同时从工作区和索引删除文件

    git rm xx
    
    • 1

    git restore 撤销工作区更改不改变暂存区内容

    git restore xx
    
    • 1

    该命令将已修改文件变为未修改文件(包括删除),若暂存区有已修改文件,则恢复至暂存区文件,否则为原始版本

    git restore --stage 撤出暂存区内容

    git restore --stage xx
    
    • 1

    将暂存区的文件从暂存区撤出,但不会更改文件的内容

    将文件从已暂存恢复到已修改

    git log 查看分支

    git log
    
    • 1

    查看当前分支的所有版本

    从空走到当前节点的路径

    git reset --hard 回滚版本

    git reset --hard HEAD^ 或 git reset --hard HEAD~
    
    • 1

    将代码库回滚到上一个版本

    git reset --hard HEAD^^
    
    • 1

    往上回滚两次,以此类推

    git reset --hard HEAD~100
    
    • 1

    往上回滚100个版本

    git reset --hard 版本号
    
    • 1

    git reflog 查看HEAD指针移动历史

    git reflog
    
    • 1

    查看HEAD指针的移动历史(包括被回滚的版本)

    git checkout

    git checkout
    
    • 1

    功能同git restore一致

    git remote add origin git@xxx: 关联本地仓库

    git clone git@github.com:xxx/XXX.git
    
    • 1

    建立本地仓库与云端仓库的映射

    git clone 下载远程仓库

    git clone git@github.com:xxx/XXX.git
    
    • 1

    将文件下载到本地

    git branch 查看所有分支和当前分支

    git branch
    
    • 1

    git checkout -b 创建并切换分支

    git checkout -b branch_name
    
    • 1

    当前的分支内容与上一个节点内容一致

    git checkout 切换到某个分支

    git checkout branch_name
    
    • 1

    git merge 合并分支

    git merge branch_name
    
    • 1

    将分支branch_name合并到当前分支上(本质上是修改引用)

    git branch -d 删除分支

    git branch -d branch_name
    
    • 1

    git branch 创建新分支

    git branch branch_name
    
    • 1

    git push 推送分支

    首次推送时要先建立本地仓库与远程仓库主分支的映射关系

    git push -u origin master
    
    • 1

    其中origin表示服务器端,即远程端,master表示主分支名

    git push
    
    • 1

    根据当前分支推送到远程对应的分支

    git push --set-upstream 设置远程分支映射

    git push --set-upstream origin brabch_name
    
    • 1

    –set-upstream设置远程服务器端的分支仓库与本地分支仓库的映射

    git push -d 删除远程仓库分支

    git push -d origin branch_name
    
    • 1

    删除远程仓库的branch_name分支

    git pull 拉取分支并合并

    git pull
    
    • 1

    将远程仓库的当前分支和本地仓库的当前分支合并

    也可使用

    git pull origin branch_name
    
    • 1

    表示将远程仓库的branch_name分支与当前分支合并

    git checkout -t origin 拉取远程分支到本地

    git checkout -t origin/branch_name
    
    • 1

    将远程的branch_name 分支拉取到本地

    git stash

    git stash 是git中的一个栈空间,可以存放工作区和暂存区尚未提交的修改,常用保存部分可能有参考价值但又需要重写的代码

    git stash
    
    • 1

    将工作区和暂存区中尚未提交的修改存入栈中

    git stash apply

    git stash apply
    
    • 1

    将栈顶存储的修改恢复到当前分支,但不删除栈顶元素

    git stash drop

    git stash drop
    
    • 1

    删除栈顶存储的修改

    git stash pop

    git stash pop
    
    • 1

    将栈顶存储的修改恢复到当前分支,同时删除栈顶元素

    git stash list

    git stash list
    
    • 1

    查看栈中所有元素

  • 相关阅读:
    程序题:从对象中排除指定的属性并返回新对象
    快速幂、矩阵快速幂
    利用在线培训系统提升员工技能,助力企业发展
    Robot Framework移动端自动化测试----环境安装
    ABP中关于Swagger的一些配置
    通过docker快速部署RabbitMq
    SpringBoot-数据库操作
    CRUD搬砖两三年了,怎么阅读Spring源码?
    unity生成模型预览图并导出图片
    前端vite打包工具
  • 原文地址:https://blog.csdn.net/Karthus77/article/details/128048588