git操作备忘录 gitblit 备份
bigegpt 2024-10-29 13:01 10 浏览
工作用到了git,把用到的一些基本命令总结如下。
Git终端的配置,生成公钥文件
1. ssh-keygen -t rsa -C (这里是你的邮箱地址) # 之后一路回车即可;
2. 执行完后,在指定路径生成公钥文件;
linux路径:~/.ssh
windows路径:c盘>用户>自己的用户名>.ssh
3. 将公钥id_rsa.pub文本内容拷贝到远端ssh keys中。
配置user.name以及user.email
git 使用你的用户名将提交与身份相关联。 git config 命令可用来更改你的 git 配置,包括你的用户名。
git config --global user.name <name> # 配置用户名
git config --global user.email <email> # 配置邮箱
git config --list # 列出Git可以在该处找到的所有的设置
基本的commit流程
cd ${PROJECT_ROOT}
git add <file>/git add .
git status
git commit -m "<comments>"
git push origin master/git push origin HEAD:remote_branch
git修改上次提交
修改后执行git add .;
然后git commit --amend,把文件和上次提交合并(--amend 可以保持change_Id和上次一样,
如果被删掉的话,这条命令会生成新的chang_id,此时如果想合并到上次的修改中,
必须复制上次的Change_Id作为本次的Change_id);
最后git push origin HEAD:refs/for/master
git本地只有在add+commit之后才能出现master分支;
git本地master分支与远程master分支关联
当在本地新建一个已经存在代码的本地仓库时,想将这个仓库与远端的仓库关联,即
----- git branch --set-upstream-to=origin/master master
Branch 'master' set up to track remote branch 'master' from 'origin'.
----- git push origin master 报错
To github.com:SHANExiang/blog.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:xxx.git'
----- git pull
fatal: refusing to merge unrelated historie
----- git pull --allow-unrelated-histories
Merge made by the 'recursive' strategy.
README.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 README.md
可以发现将两者合并起来了;
----- git push origin master
git撤销文件修改
- 本地修改但未add/commit
git checkout . # 撤销对所有已修改但未提交的文件的修改,但不包括新增的文件
git checkout [filename] # 撤销对指定文件的修改,[filename]为文件名
- 已 add/commit 但未push
git revert commitID # 其实,git revert可以用来撤销任意一次的修改,不一定要是最近一次
或git reset --hard commitID/git reset --hard HEAD^
# HEAD表示当前版本,几个^表示倒数第几个版本,倒数第100个版本可以用HEAD~100);
# 参数--hard:强制将暂存区和工作区都同步到指定的版本
git reset和git revert的区别是:reset是用来回滚的,将HEAD的指针指向了想要回滚的版本,作为最新的版本,而后面的版本也都没有了;而revert只是用来撤销某一次更改,对之后的更改并没有影响,然后再用git push -f提交到远程仓库。
- 已push
- 首先查询这个文件的log
- 其次查找到这个文件的上次commit id xxx,并对其进行reset操作
- 再撤销对此文件的修改
- 最后amend一下,再push上去
$ git log <fileName>
$ git reset <commit-id> <fileName>
$ git checkout <fileName>
$ git commit --amend
$ git push origin <remoteBranch>
分支操作
git branch # 查看当前分支
git branch 分支名 # 创建分支
git checkout -b dev # 创建分支dev,并切换到它上面(也就是将head指向当前分支)
git checkout 分支名 # 切换分支
git merge 分支名 # 合并某分支到当前分支
git branch -d 分支名 # 删除分支
git branch -m mt-test2 # 重命名本地分支
工作现场保存git stash
git stash # 暂时保存工作现场
git stash pop # 回到工作现场
git stash drop # 命令用于删除隐藏的项目。默认情况下,它将删除最后添加的存储项,如果提供
参数的话,它还可以删除特定项。
下面举个例子。
如果要从隐藏项目列表中删除特定的存储项目,可以使用以下命令:
git stash list:它将显示隐藏项目列表,如:
stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051
Revert “added file_size” stash@{2}: WIP on master: 21d80a5 added number to log
如果要删除名为 stash@{0} 的项目,请使用命令 git stash drop stash@{0}。
git 标签操作
# 首先切换到需要打标签的分支上,然后使用git tag v1.0就可以在当前commit打上v1.0的标签
git tag v1.0 commitID 对特定commit打标签
# 打标签时加上message:git tag -a <tagname> -m "message"
git tag # 查看所有标签
git show [tagname] # 查看标签详细信息
git push origin <tagname> # 可以推送一个本地标签到远程仓库
git push origin --tags # 可以推送全部未推送过的本地标签
git tag -d <tagname> # 可以删除一个本地标签
git push origin :refs/tags/<tagname> # 可以删除一个远程标签(先从本地删除)
git添加github远程仓库
git remote add -m master origin git@github.com:xxx.git
git pull
1、将远程指定分支拉取到本地指定分支;
git pull origin <远程分支名>:<本地分支名>
2、将远程指定分支 拉取到 本地当前分支上;
git pull origin <远程分支名>
3、将与本地当前分支同名的远程分支拉取到本地当前分支上(需先关联远程分支)。
git pull
查看操作记录
git reflog
git log <file> # 查看文件提交记录
文件对比
1、对比工作区和某个版本中文件的不同;
git diff HEAD -- file # +表示工作区中的内容,-表示版本中的内容;
2、对比两个版本间文件的不同
git diff HEAD HEAD^ -- file # +表示HEAD版本文件内容,-表示HEAD^版本文件的内容
相关推荐
- 悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)
-
新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...
- 高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源
-
凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...
- 微服务架构实战:商家管理后台与sso设计,SSO客户端设计
-
SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...
- 还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑
-
在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...
- Seata源码—6.Seata AT模式的数据源代理二
-
大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...
- 30分钟了解K8S(30分钟了解微积分)
-
微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...
- SpringBoot条件化配置(@Conditional)全面解析与实战指南
-
一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...
- 一招解决所有依赖冲突(克服依赖)
-
背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...
- 你读过Mybatis的源码?说说它用到了几种设计模式
-
学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...
- golang对接阿里云私有Bucket上传图片、授权访问图片
-
1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...
- spring中的资源的加载(spring加载原理)
-
最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...
- Android资源使用(android资源文件)
-
Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...
- 如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)
-
深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...
- @Autowired与@Resource原理知识点详解
-
springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...
- java的redis连接工具篇(java redis client)
-
在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)