首页 > 其他分享 >#yyds干货盘点#工作中常用的git命令

#yyds干货盘点#工作中常用的git命令

时间:2023-03-19 19:00:48浏览次数:48  
标签:yyds HEAD git -- 干货 master 提交 分支

Git配置


了解版本控制

什么是版本控制?我真的需要吗?版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

什么是分布式版本控制系统分布式版本控制系统( Distributed Version Control System,简称 DVCS )。

在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜
像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份


Git常用命令

git-系统配置
git config -l
git-global配置
git config --global --list
# 可以设全局公用识别的 邮箱和用户名
git config --global user.name 'xxxxxx'
git config --global user.email '[email protected]'
项目单独git配置
# 查看
git config --list
# 为项目设置单独的user.name和user.email
git config user.name 'xxxxxx'
git config user.email '[email protected]'

Git初始化

本地初始化
git init
远程拉取
git clone 远程仓库地址

本地仓库与远程仓库的关联

# 本地-建立关联-远程
git remote add origin 远程仓库地址
# 本地-取消关联-远程
git remote rm origin

Git保存和提交

查看状态
git status
查看所有文件修改详情
git diff HEAD
查看指定文件的修改详情
git diff HEAD ./README.md
添加保存

".": 所有修改文件

git add .

git add ./home.vue
添加保存说明(提交到本地仓库)
git commit -m '对这次保存添加说明描述'
拉取代码

多人协作开发的时候,提交之前先拉取下代码,解决可能未来的冲突

git pull origin 分支名
提交代码
git push origin 分支名

Git提交日志

查看提交记录

查看曾经的提交记录
可以显示所有提交过的版本信息,不包括已经被删除的 commit 记录和 reset 的操作

git log --pretty=oneline
控制显示条数
git log -30 --pretty=oneline
图形化展示查看当前分支的版本演变信息
git log --graph
按作者名字查看提交记录
git log --author="John"
搜索提交历史,根据关键词
git log -S 关键词
按日期
git log --after="2023-2-1"
搜索过滤合并提交
git log --no-merges
or
git log --merges
按提交信息

比如说,你的团队规范要求在提交信息中包括相关的issue编号,你可以用下面这个命令来显示这个 issue 相关的所有提交

git log --grep="JRA-224:"
查看当前 版本标志位

git reflog是Git操作的一道安全保障,它能够记录几乎所有本地仓库的改变,包括所有分支的commit提交,以及已经被删除的commit

git reflog

Git回退到某个版本


回退到上一个版本
git reset --hard HEAD^ # 回退上一个版本
git reset --hard HEAD~3 # 回退上上上一个版本
git reset --hard bae128 # 回退到某个版本回退点之前的所有信息。

HEAD 说明:

  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本
  • 以此类推...

可以使用 ~数字表示

  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD^2 上上一个版本
  • HEAD^3 上上上一个版本
  • 以此类推...

Git分支指令

查看素有分支
git branch -a
切换分支
git checkout 分支名
创建本地分支
git branch 新分支名
# 创建并切换到新分支
git checkout -b 新分支名
根据指定版本号创建分支
git checkout -b 分支名 提交ID
推送本地分支到远程仓库
git push origin 新分支名
删除本地某个分支

这是一个“安全”操作,因为 Git 会阻止我们删除具有未合并更改的分支

git branch -d 分支名
强制删除本地某个分支

即使它有未合并的更改。如果想永久丢弃与特定开发线相关的所有提交,则可以使用此命令

git branch -D 分支名
删除远程仓库的某个分支
git push origin --delelte 分支名
显示所有远程仓库

查看仓库源名称

git remote -v
更新远程分支列表
git remote update origin(仓库源名称) --prune
推送所有分支到远程仓库
git push origin(仓库源名称) --all
强行推送当前分支到远程仓库,即使有冲突
git push origin(仓库源名称) --force

Git合并分支

想将develop分支合并到master分支

git checkout master # 首先切换到master分支上
git pull origin master # 如果是多人开发的话 需要把远程master上的代码pull下来
git merge --no-ff develop # 然后我们把develop分支的代码合并到master上

关于 git merge develop 和 git merge --no-ff develop 的区别

git merge develop

==== > 结果就会变成

A---B---C develop
/ master
D---E---F

执行此句话后,因为 develop 就在 master 的下游,所以直接移动了 master 的指针,master 和 develop 都指向了 C

而如果执行了 git merge --no-ff feature 的话,是下面的结果:

git merge --no-ff develop

==== > 结果就会变成

A---B---C develop
/ \
D---E---F-----------G master

由于 --no-ff 禁止了快进,所以会生成一个新的提交,master 指向 G。

从合并后的代码来看,结果其实是一样的,区别就在于 --no-ff 会让 Git 生成一个新的提交对象, 通常我们把 master 作为主分支,上面存放的都是比较稳定的代码,而 feature

是用来开发特性的,上面会存在许多零碎的提交,快进式合并会把 feature 的提交历史混入到 master 中,搅乱 master 的提交历史。

标签:yyds,HEAD,git,--,干货,master,提交,分支
From: https://blog.51cto.com/u_11365839/6131318

相关文章

  • Vue 搜索案例:gitHub 用户搜索案例
    一:界面示例效果......
  • Git学习
    1.Git工作流程图  命令如下:1.clone(克隆):从远程仓库中克隆代码到本地仓库;2.checkout(检出):从本地仓库中检出一个仓库分支然后进行修订;3.add(添加):在提交前先将代码......
  • Go 每日一库 GitHub:https://github.com/darjun/go-daily-lib
    简介今天我们介绍一个合并结构体字段的库mergo。mergo可以在相同的结构体或map之间赋值,可以将结构体的字段赋值到map中,可以将map的值赋值给结构体的字段。感谢@thinkgos推......
  • Git 分支策略 怎么做最好?
    Git分支策略的最佳实践可以因组织、项目、团队等各种因素而异。以下是一些通用的最佳实践,可以帮助你设计和管理你的Git分支策略:1、主分支主分支应该是你的代码库中最稳定和......
  • 如何使用特定的SSH Key提交GIT
    问题提出最近在自己的MAC上面提交Github代码的时候发现居然失败了:$gitpushoriginmasterPermissiondenied(publickey).fatal:Couldnotreadfromremoterepo......
  • Git常用命令总结
    1简介Git是一个开源的分布式版本控制系统,最初由LinusTorvalds为管理Linux内核而开发的开源软件,目前已应用在windows等操作系统上。SVN也是一种版本控制系统,但......
  • #yyds干货盘点#JSON Web Tokens 是如何工作的
    在用户权限校验的过程中,一个用户如果使用授权信息成功登录后,一个JSONWebToken将会返回给用户端。因为返回的令牌包含有授权信息,应用程序应小心保存这些授权信息,以避免不......
  • #yyds干货盘点#JSON Web Tokens 是如何工作的
    在用户权限校验的过程中,一个用户如果使用授权信息成功登录后,一个JSONWebToken将会返回给用户端。因为返回的令牌包含有授权信息,应用程序应小心保存这些授权信息,以避免不......
  • #yyds干货盘点#对于babel的一些理解
    Babel是一个JavaScript编译器Babel是一个工具链,主要用于将采用ECMAScript2015+语法编写的代码转换为向后兼容的JavaScript语法,以便能够运行在当前和旧版本的浏览器......
  • 使用Git LFS上传大文件步骤
     1.首先我们要先下载gitlfs。链接地址2.我们需要安装gitlfs,但是必须安装到git/bin下面。就是你安装git的时候,那个路径。可以看我的git安装路径:3.我们可以使用以下步......