前言
Git只是一个分布式版本控制系统,只要满足日常使用就可以了。所以本文只讲常用指令的。
Git安装
作者就window系统为例,window平台git下载地址;
下载完之后根据提示安装就行了。安装完成后在屏幕空白处点击鼠标右键菜单栏
文章图片
Git初次运行的一些配置
在屏幕空白处右击鼠标右键在菜单栏中选择Git Bash Here点击进入命令行如图所示!
文章图片
命令行我们可以输入
git --version
查看当前git的版本号如图
文章图片
用户信息配置:
$ git config --global user.name "用户名"
$ git config --global user.email 邮箱地址
查看用户配置信息:
$ git config --list//全部配置信息
$ git config user.xxx//查看指定的配置信息
Git基本概念: 工作区:电脑中的文件目录
暂存区:一般存放在.get文件夹的index的文件
版本库:包含.git文件夹的工作区
文章图片
创建和删除仓库 在你电脑上选择一个(空)文件夹,在该文件夹下打开git Bash Here,执行
$ git init 文件夹名(可选)//如果git init 在当前文件夹为仓库,如果git init fileName就会以fileName为仓库
创建前
文章图片
创建后
文章图片
删除本地仓库:
$ find . -name ".git" | xargs rm -Rf
克隆项目:
$ git clone url(要克隆的地址)
如果克隆中遇到这种情况:
文章图片
说明是被克隆的的项目没有公钥
解决方案:获取公钥
$ ssh-keygen -t rsa -C (注册时的邮箱 )
文章图片
把获取的id_rsa.pub文件的内容粘贴到
文章图片
克隆前后:
文章图片
文章图片
提交与修复 将文件上传到暂存区
$ git add file1 file2 ...//上传一个或多个指定文件
$ git add 文件夹 //上传整个文件夹
$ git add . //上传整个文件
查看文件提交状态
$ git status -s//加-s显示简短的输出结果,不加-s显示详细的输出结果
//参数说明(A提交成功;AM:文件在添加到缓存之后又有改动 ??没有添加到暂存区的)
文章图片
比较文件不同(文件在暂存区和工作区的不同之处)
$ git diff 文件名//尚未缓存的改动和暂存区的不同
$ git diff --cached 文件名 || git diff --staged 文件名//查看暂存区和本地仓库的不同
$ git diff HEAD//查看已缓存的与未缓存的所有改动
$ git diff --stat//显示摘要而非整个 diff
文章图片
将暂存区的文件提交到本地仓库
$ git commit 文件名 -m "提交的描述"//
$ git commit 文件名 -am "提交的描述"//跳过git add缓存环节
查看commit的id
$ git reflog
文章图片
回退版本
$ git reset (commit id)//回退到指定版本=>commit id可以通过$ git reflog指令查看
$ git reset HEAD^//所有内容回头到上一个版本
$ git reset HEAD^ 文件名//指定文件回退到上一个版本
$ git reset --soft HEAD~3//回退到上上上个版本
$ git reset -hard HEAD || (commit id)//注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
$ git reset --hard origin/master(表示远程分支)//将本地的状态回退到和远程的一样(常用)
HEAD参数说明:
HEAD|| HEAD~0//表示当前版本
HEAD^ || HEAD~1//上一个版本
HEAD^^ || HEAD^2//上上一个版本
HEAD^^^ || HEAD^3//上上上一个版本
以此类推...
回退问题
文章图片
解决方法
git reset --hard
删除文件
$ git rm 文件名//从暂存区和工作区删除文件(如果删除文件夹下的文件=》文件夹名/文件名)
$ git rm -f 文件名//强行从暂存区和工作区中删除修改后的文件
$ git rm --cached 文件名//从暂存区删除文件工作区仍然保留
$ git rm -r 文件夹ming/*//递归删除删除整个目录中的所有子目录和文件
直接丢弃工作区的修改||误删版本库中还有可以恢复
$ git checkout -- 文件名
移动或重命名文件
$ git mv oldFile newFile || (文件夹)//文件重命名 ||(移动到文件夹内)
$ git mv -f oldFile newFile//强制文件重命名
远程仓库 添加远程库
$ git remote add 远程仓库名 仓库地址
查看远程库
$ git remote -v
删除远程库
$ git remote rm 远程库名
上传远程代码并合并
$ git push 远程主机名 本地分支名:远程分支名
文章图片
解决方案:本地缺少README.md
git pull --rebase 远程主机 远程分支:本地分支名//把README.md拉到本地
【手把手教你使用Git】下载远程代码并合并
$ git pull 远程主机 远程分支:本地分支名
分支管理 创建分支
$ git branch 分支名
切换分支
$ git checkout 分支名
$ git switch 分支名(更偏向此指令)
查看分支
$ git branch
创建并切换分支
$ git checkout -b 分支名
$ git switch -c 分支名
删除分支
$ git branch -d 分支名
$ git branch -D 分支名//如果要丢弃一个没有被合并过的分支,可以通过强行删除。
分支合并
$ git merge 要合并的分支
查看提交日志
$ git log //详细的日志
$ git log --oneline//列表形式显示日志
$ git log --reverse --oneline//逆向显示日志
$ git log --graph //查看历史中什么时候出现了分支、合并
$ git blame 文件名//以列表形式显示修改记录
结尾 以上就是作者在开发中常用的指令。
关于git更加全面详细的学习,请参考git官网。
推荐阅读
- git 代码提交规范
- java项目部署|Jenkins+Docker+Maven部署springboot项目
- 使用分支——处理Git merge 冲突
- git|基于IDEA的Git撤销本地修改和前进后退选择提交版本
- git|GIT----玩转Git
- 学习工具|idea把代码提交到 远程 码云 仓库
- git使用|git在项目管理中的最佳实践
- Git工作流的最佳实践总结
- transformer|Swin-Transformer代码讲解-Video Swin-Transformer