![](https://img-blog.csdnimg.cn/20200321193923895.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
玩转Git系列
该专栏围绕博主紧密结合实际项目实践,涉及复杂的Git操作场景:如何还原版本、如何挑拣分支、如何还原现场、如何过滤查询提交记录及如何将已删除的分支代码恢复回来等;如果想要玩转git,欢迎订阅我的专栏,希望对您有所帮助!
老张家的独苗
微信搜索「老张家的独苗」,回复关键字「资料」获取海量学习资源。我是张星,CSDN博客专家,CSDN内容合伙人,"老张家的独苗"公号作者,GitChat付费专栏作者,拥有5+年的技术TL的项目管理经验,1000+面试经验。
展开
-
葵花宝典之Git All-in
文章目录前言Git 分区Git 流程规范分支的创建项目的分支规范开发中需要注意的点Git 的棘手场景分析拉取最新主干代码,进行功能迭代或 bug 修复如何重命名远程分支功能开发一半,临时修复线上紧急 bug如何挑拣别人的 commit如何回退版本如何撤销某一个 commit如何合并分支前言Git 是一款优秀的分布式版本控制工具,对于大型项目的多人开发场景,Git 能够基于粗粒度功能 branch 或更细力度的 commitId 来进行版本控制。总而言之,学好 Git,老板再也不用担心代码被覆盖呢!给我一原创 2020-10-11 20:09:50 · 935 阅读 · 0 评论 -
git【--ours】及【--theirs】优雅的解决冲突
场景分析在很多时候,我们在merge或者cherry-pick的时候,发生了冲突;然而对于某个冲突文件,我们需要全盘接收本地的代码或者全盘接收合并分支的代码;这个时候,如果我们在冲突文件一个个解决冲突的话,无疑是最笨的方法;如果不解决冲突的话,又不能对该冲突文件进行任何其他的操作,例如checkout或者stash;此时,–ours和–theirs就充分体现其价值呢。命令讲解保留本地代码git checkout --ours fileName保留合并分支代码git checkout原创 2022-01-07 14:43:43 · 2105 阅读 · 1 评论 -
Git标准的提交规范
说说为什么要commit message? 这个很重要,对于后期的代码review有着重要的凭证;所以commit message写得好,是一种十分赏心悦目的代码走读体验。编写规则 type: desc 或 [type]:descfeat - 新功能 featurefix - 修复 bugdocs - 文档注释style - 代码格式(不影响代码运行的变动)refactor - 重构、优化(既不增加新功能,也不是修复bug)perf - 性能优化test - 增加测试chore .转载 2021-04-28 16:16:11 · 1181 阅读 · 0 评论 -
【git reflog】程序员的后悔药
目录前言git reflog 使用场景git log与git reflog的区别如何在git中卖后悔药前言世人皆说,这个世界上是没有后悔药可吃的!所以在做某件事之前,需要考虑到事情的后果!但是今天笔者想说的是,在git维护的代码版本的世界里,后悔药常有,卖后悔药的人却不常有!今天笔者就分享下如何做一个卖后悔药的人。git reflog 使用场景很多时候,我们需要回退代码版本,但是可能在操作的过程中,我们误回退了些许,或者删除了些许,那么如何还原之前回退的或删除的commitId呢?这个时候gi原创 2020-11-18 16:35:46 · 1395 阅读 · 0 评论 -
git commit --amend如何合并多个commitId
前言很多时候,由于自己的疏忽,把该提交的文件没有提交上去,但是考虑到后期代码的code review,最好是一个功能对应一个commitId,这是最理想的状态。那么问题来了?如何合并多个commitId呢?如何合并多个commitId当然笔者在之前的Git专栏文章里面已经介绍了相关的方法,相信看了笔者的Git专栏后,就很容易知道其中的两种方案;第一种:git reset;第二种:git rebase;今天笔者再介绍另一种方案:git commit --amend。首先对于某个功能来个不完整的原创 2020-11-13 22:55:38 · 1610 阅读 · 0 评论 -
idea中如何运用码云托管项目
1.场景还原 杭州站源创会愈走愈远,他的举办貌似成功的将码云吸入广大程序猿的眼球;由于笔者公司项目早期就在用码云托管,稍有些经验,在此讲解一下在idea中如何运用码云来托管项目。2.准备步骤①首先下载git,百度git,下载并安装;②在idea中配置git环境点击settings-->Version Control-->Git,将Git.exe路径配置进去原创 2017-07-08 09:52:45 · 15792 阅读 · 0 评论 -
.gitignore过滤配置无效
1 .gitignore是什么?通俗来讲,.gitignore是基于Git控制版本用来过滤指定每次提交的文件或文件夹的配置文本;一旦配置在.gitinnore中,后续提交就配置的文件或文件夹中的代码,系统就不显示更新;一般地,.gitignore会过滤一些自动生成的配置类。2 .gitignore样式仅供参考HELP.mdtarget/*/target/!.mvn/wrapper/maven-wrapper.jar!**/src/main/**!**/src/test/**###原创 2020-09-12 17:05:54 · 419 阅读 · 0 评论 -
git 查看某commitId的提交内容
1.场景还原 在开发过程中,可能会对某次提交的commit的内容进行查看或进行代码确认,这个时候git的这个查看内容的命令就显示的格外重要。2.命令详解 要实现上述需求,可以运用一下两个git命令2.1 git show commitIdgit show commitId2.2 git log -p -ngit log -p -n这里的n表示提交的最近的次数;欢迎加入博主的Java博客党VIP群,群号:779015139;如果还有什么不懂的地方,可以私信博主,...原创 2020-08-16 15:38:25 · 20121 阅读 · 0 评论 -
git reset及git revert撤销骚操作
1.命令应用场景 在开发的过程中,当发现有需要撤回的commit的时候,这两个命令就起到了关键作用,那么问题来了,git reset与git revert之间有什么区别?我们怎么在不同的场景更好的应用他们呢?2.两者的区别 先讲git reset, git reset可以将之前的多个commit回退到某次提交,等修改后需要git push -f 提交到远程,无形中,远程的多个commit合成了一个commit,那么这个操作有些骚呢?骚从何来?如果存在多个人开发的场景,或者前后端交...原创 2020-06-30 14:36:15 · 1187 阅读 · 0 评论 -
分分钟搞定面试官必问的Git
1.Git简介Git 是一款优秀的分布式版本控制工具,是目前支持多人同时开发最six的工具,记住没有之一,比之SVN,绝对是遥遥领先,母庸置疑。2.Git分区2.1 为什么要搞清楚Git分区呢?谈及Git分区,其实很多开发者脑袋都是懵逼状态?我在哪?我是谁?对于一些对git掌握不熟练的同学,这个疑问是普遍存在的;或者当面试官提问,请问你了解git的分区么?那么是时候一次性搞清楚git是如何...原创 2020-03-21 20:29:57 · 1062 阅读 · 0 评论 -
git --cached 暂存区操作
1.操作场景 当你将修改的文件提交到暂存区的时候,这时你发现之前的提交有问题,想把之前的提交在暂存区的文件撤回来,或者需要看看之前提交暂存区与工作区的不一样,这个时候 --cached命令就起作用呢。2.命令解释①查询提交前后文件的具体差异git diff --cached②撤销之前在暂存区的文件git rm --cached hello.java...原创 2020-03-20 18:06:15 · 2176 阅读 · 0 评论 -
git stash 保存及恢复当前工作进度
应用场景: 当你正在开发某新功能时,某一紧急bug需要修复,这时你不能让之前的工作量白做,然后就可以使用git stash保存当前的工作进度,等bug修复完成,再恢复当前的进度继续开发即可命令使用:1. git stash 将当前的代码保存到缓存中2.git stash save "stash msg" 保存当前的代码,并加上注释3.git stash list ...原创 2019-11-29 15:14:49 · 375 阅读 · 0 评论 -
git 删除远程分支
git push origin --delete <branchName>原创 2019-11-14 10:01:27 · 555 阅读 · 0 评论 -
git checkout撤销本地修改
1.使用场景 在开发的过程中,可能因为手误或者有些文件不想提交,这是需要git命令撤销相关文件2.使用方法① 撤销本地所有的更改git checkout .② 撤销指定的文件git checkout -- file...原创 2019-04-24 16:31:15 · 4842 阅读 · 0 评论 -
git rebase处理多次commit的合并
1.使用背景 在开发中,开发者可能对于某个功能的代码提交了多次,当需要将多个提交的commit合成一个commit的时候,就需要用到git rebase,俗称"变基"2.实现方案①git log 查看多次提交历史git log现在需要将最近3次提交合并为一次提交②git rebase -i HEAD~3或 git rebase -i commitHash (c...原创 2019-03-02 19:38:26 · 5032 阅读 · 0 评论 -
git cherry-pick冲突解决
1.git cherry-pick应用场景 当团队合作开发的过程中,线上环境master可能要合成dev中的部分功能,也可以理解为挑拣合成,这时候git cherry-pick就派上用场了git cherry-pick commitId2.冲突解决方案①切换到dev环境git checkout dev②查看提交日志git log挑拣出自己需要的pick...原创 2019-02-20 15:21:48 · 30832 阅读 · 3 评论 -
如何对git commit内容进行撤销
1.查看git提交历史,并选取自己要返回的commitIdgit log2.根据commitId进行撤销git reset --hard commitId3.返回到上个版本git reset --hard HEAD^4.返回到n个版本,n为正整数 git reset --hard HEAD~n...原创 2019-02-19 18:03:43 · 11515 阅读 · 1 评论 -
idea中push代码git冲突解决
1.冲突出现情景 在团队合作开发的过程中,一处代码可能多人修改;例如当A更改代码后提交了,B在没有实时拉取代码的基础上进行同一文件的修改,然后进行提交,届时push会失败,需要手动解决冲突才行。2.冲突解决方案①冲突出现后,一直merge最左边的方框表示自己本地的版本,最右边方框表示远程服务器的版本,中间的则是更改后合成的版本,确定好中间的版本内容后,点击app...原创 2019-02-19 17:39:04 · 4895 阅读 · 0 评论 -
gitlab Runner持续化自动部署
1.环境必备① gitlab的安装② docker的安装2.gitlab、gitlab-ci以及gitlab-runner关联3.持续化自动部署① docker安装gitlab Runnerdocker run -d --name gitlab-runner --restart always \-v /srv/gitlab-runner/config:/etc/gi...原创 2019-02-15 16:51:15 · 1308 阅读 · 0 评论 -
centos7安装gitlab
1.gitlab 介绍 GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功...原创 2019-02-01 15:20:30 · 335 阅读 · 0 评论