Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PhpStorm Git 操作

PhpStorm Git 操作

作者头像
超级小可爱
发布于 2023-02-22 07:42:25
发布于 2023-02-22 07:42:25
1.5K0
举报
文章被收录于专栏:小孟开发笔记小孟开发笔记

本教程适用于以下产品:

AppCode、CLion、Datalore、DataGrip、GoLand、IntelliJ IDEA、PhpStorm、PyCharm、Rider、RubyMine、WebStorm 等 JetBrains 的 IDEs

下面以 PhpStorm 为例进行介绍

一、前提

1、下载并安装好 PhpStorm

2、下载并安装好 Git

3、熟悉 Git 相关命令行操作

二、Git pull & commit(add)

下面简单说一下相关操作:

PhpStorm 打开一个 Git 的项目

右上角就会有类似的两个按钮

新版的界面是这个

左边这个就是拉代码的,命令行是:Git pull

右边这个是Commit的,命令行是:add 和 Commit

提交代码快捷键:Ctrl + Shift + K ,命令行是:Git Push

SVN 不同的是,Git commit 后还需要 push 代码才会真正被提交到 Git 仓库

三、切换版本分支以及代码合并

切换版本分支命令行:Git checkout

选择你要切换的分支,直接 Checkout 即可,若是本地没有的分支,在远程分支列表中选择 Checkout As ,输入名称即可,如下图:

分支合并命令行:Git merge

比如我想把本地的分支 A 合并到分支 B 里面,首先先确保你本地的 B分支 的代码是“最新的”

即:切换到 B分支,更新代码,选中 A分支,鼠标左击,选中 Merge into Current ( PS:旧版本可能是 Merge )

(这里也可以进行远程分支合并,即在 Remote Branches 里面,选择想要合并的分支,选择 Merge into Current 进行合并)

点中这个进行合并,合并后 Push 到 Git 仓库即可

四、回滚

下面关于 Commit 之后反悔的操作,我 Commit 了一些修改,但是我突然不想要了,右下角切换到 Log,看你的 Commit,不想要的直接右键选择 Revert,可以直接撤销刚刚的 Commit(这个只能撤销自己的 Commit)

Revert Current Branch to Here 可以直接撤销前面的所有 Commit,包括别人已经 Push 的修改也可以撤销,撤销之后,代码会回到 Commit 之前的状态,即文件是蓝色或绿色或红色那种

选择 Reset Current Branch to Here ,还可将代码回滚到指定的地方,点了之后有四个选项可以选,根据实际情况选一个就行,默认就选 Mixed 如图:

然后 Force Push 就可以实现代码的回滚,注意一定要强制Push,不然代码是推不上去的,如图:

注意:master分支在 PhpStorm 里面好像不能强制push(默认是保护的分支),可以直接用命令行

$ git push -u origin master -f

或者修改配置(直接删掉就行):

注意:上面两种方式都会影响当前分支,即会丢失代码提交记录等,若不想用 revert 或者 reset 的话,参考下面目录第“十一”,Check Revision 创建新的分支

五、新建分支

Git 新建分支,右下角直接切换到你想要复制的分支上,保证代码是最新的情况下,点击 New Branches,输入名字即可

比如:我想要复制 A 分支,并命名为 B 分支,首先我先切换到 A 分支上,然后 New Branch 创建一个新分支,并命名为 B,接着把 B Push 即可

六、Stash / Unstash

Stash:把当前项目所修改的地方暂存到本地

Unstash:恢复上次暂存的文件

比如现在我有个 Bug,想切换到其他分支修改这个 Bug,但是呢,我当前开发的分支已经修改了一些东西,而我又不想提交,

这个时候可以用 stash 暂存一下你的代码,然后切换到其他分支修改完 Bug 后再切回开发的分支,执行 unstash 就可以恢复到当时修改的文件

流程如下图:

1、暂存

2、恢复,选中当时暂存的版本,点击 apply 恢复即可

七、Cherry-Pick

假设我在 A 分支有一个提交记录,由于改动的地方比较多,我想单独把这条已经在 A 分支 push 过的提交记录在 B 分支也加上去(我不想直接合并两个分支)

这种情况的话,直接使用 Cherry-Pick ,对应命令

git cherry-pick <commit id>

下面说下操作:

先切换到 B 分支,打开 Git 提交记录,在Branch 选择 A 分支,然后找到你提交的那条记录(如上图),右键,选择 Cherry-Pick(如下图),然后 commit 跟 push,完毕,这样就把 A 分支的某条提交记录单独的“合并”到 B 分支。

八、Annotate

下面说一下黑科技,Annotate,甩锅神器

打开文件,在左边显示行数的地方右键,选择Annotate

选择之后左边行号那里会多出一些神秘的东西,选择其中的一个即可查看你当前文件对应的某一行代码上一次的修改情况,甩锅跟排查 BUG 必备

如果你某一天,线上的某个功能有人偷偷改了,未经过测试就出现问题,用这个可以快速看出是谁捅的篓子,尽快修复安排上线。

九、Tag

创建 tag:

打开 Version Control -> log,选择某条提交记录,右键,选择 New Tag,可以对某一条提交记录打上 Tag 标签,如下图

或者

PS:创建完标签后记得把 tag 推送到 Git 服务器

如何推送呢?如下图:

选择 All:即推送所有 tag

选择 Current Branch:推送当前分支的 tag

命令行是:

$ git push origin tagname #推送单个tag

$ git push origin –tags #推送所有tag

打上标签可以在部署代码的时候,选择部署到标签指向位置的代码,标签后面的所有提交记录都不会部署,以 Jenkins 为例

这样的话,部署代码到服务器只会部署标签所在位置之前的代码,标签后面的提交记录不会被部署,打上标签可以快速回滚系统版本

删除 tag:

找到你创建的 tag,右键删除

注意右下角,Restore是还原,Delete on Remote是把 Git 服务器上的标签删除

命令行:

$ git tag -d tagname //本地删除tag

$ git push origin :refs/tags/tagname //本地tag删除了,再执行该句,删除线上tag

十、查看文件修改历史

打开你想要查看的文件,在顶部文件的 tab 处右键;也可以直接在左侧的文件列表右键,效果一样, Git -> Show History 如下图:

点击 Show History 后会打开一个新的面板,里面会展示当前文件所有的提交历史,双击某条提交历史可以查看这条提交记录所修改的地方

十一、Checkout Revision

版本回退或者想从某个提交记录开始创建新的分支,打开 Git Log 窗口,选择某条提交记录,假设为 001,右键,选择 Checkout Revision ,这个时候会创建一个新的临时分支,这个分支会保留提交记录 001(包括001)之前的所有提交记录,即保留提交记录 001 之前的所有代码,注意,这个时候这个分支是临时的分支,任何 git pull 和 git push 都不会生效,点击右下角的 git,选择 New branch,输入名称后创建一个新的分支,这个新创建的分支保留有 001 之前的所有代码,然后我们再把这个分支的代码推送到服务器,这个时候新的分支就创建好了,这个分支保留有 001 之前的所有代码,这样创建新的分支的方式即不用回滚丢弃不要的提交,也不会对其他版本造成任何影响,又避免误使用 reset 或者 revert 对代码造成不可恢复的影响,这样做无非就多了一个新的分支而已,如下图:

选择后创建的临时分支

以当前的代码创建新的分支,然后推送到远程服务器即可

十二、删除版本

删除本地分支或者删除远程分支,右下角选择 git,选择想要删除的分支,鼠标左击,选择 Delete

十三、本地提交多次,push origin 只展示一次提交

登录优化,我反反复复修改了4次,commit4次,但是这样提交的话,领导看到这么简单的一个功能还需要这么多次反复修改吗?对你的能力表示怀疑,而且这样也不利于之后代码分支的查看,所以有什么办法呢,有2种方式?

1、事后处理

下面是4次commit

最优化的就

首先找到第一次commit的地方,然后点击右键找到Interactively Rebase from Here,点击它

然后把后面的几个pick 改为squash(压缩的意思)表示后面几次压缩,第一次不变

最后变成

然后点击Start Rebasing

弹出输入注释的输入框

这样就可以把多次注释变成1次,然后点 Continue 就可以了

2.每次提交的时候注意

未经允许不得转载:肥猫博客 » PhpStorm Git 操作

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
常用git命令整理
一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。
公爵
2022/09/28
2570
常用git命令整理
我在团队的技术分享-Git日常操作我在团队的技术分享-Git日常操作
工作流程如下: 1、从远程仓库克隆代码到本地仓库 2、在本地仓库中checkout代码然后进行代码修改 3、在提交代码前先将代码提交到暂存区 4、提交到本地仓库。本地仓库中保存修改的各个历史版本 5、修改完成后,需要和团队共享代码时,将代码push到远程仓库
Light413
2021/12/08
7200
我在团队的技术分享-Git日常操作我在团队的技术分享-Git日常操作
git常用命令整理
Git是一种版本控制系统,可帮助团队合作开发、管理代码变更。以下是一些常用的Git命令,它们可以在命令行或图形用户界面中使用。
堕落飞鸟
2023/04/01
5150
Git 帮助手册
国外网友制作了一张 Git Cheat Sheet,总结很精炼,各位不妨收藏一下。
硬件开源小站
2023/04/07
4.5K1
Git 帮助手册
持续交付之基于Git Flow代码分支策略实践
高效的持续交付体系,必定需要一个合适的代码分支策略。采用不同的代码分支策略,意味着实施不同的代码集成与发布流程,这会影响整个研发团队每日的协作方式,因此研发团队通常需要很认真地选择自己的策略。
高楼Zee
2019/07/17
1.4K0
持续交付之基于Git Flow代码分支策略实践
git常用操作都在这里了(二)
git常用分支操作 git不要在下代码的主分支上修改代码,要checkout一个开发分支,在上面开发,开发完成后再切换回主分支, 进行衍合或合并操作。最后再在主分支上向远程提交代码。类似的修bug也要在主分支上创建一个分支进行操作, 永远确保主分支是稳定版。 git修改密码 打开git bash 输入 cd ~/.ssh ls 确定有 id_rsa 和 id_rsa.pub文件 ssh-keygen -p -f id_rsa 第一次输入旧密码 新密码 确认新密码 git压缩多次提交为一次提交 切记已经推送到
阿章-python小学生
2018/05/18
9870
我在工作中是如何使用Git的
最近在网上有个真实发生的案例比较火,说的是一个新入职的员工,不会用 Git 拉代码,第二天被开除。由此,可见 Git 对我们工作的重要性,无论是前端后端,都是离不开 Git 的,下面就让我们一探究竟吧。
政采云前端团队
2021/07/19
2K0
Git 常用命令清单笔记
这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加的,后面慢慢增加了许多内容,可以看出的的学习轨迹。分享出来方便自己查看,也许能帮助到你。
小弟调调
2018/09/11
8160
看了这篇文章,你应该可以应付工作中90%的git命令
安装完git 需设置账号和邮箱,用于标示用户身份,类似于svn的账号,但是git不存在服务器,所以无需密码验证身份。 保存位置C:\Users\yourname\\.gitconfig。
兜兜转转
2023/03/08
4710
【Git】Common Git Command Line Operation
Common Git Command Line Operation | Chanvin's Blog (chanvinxiao.com)
阿东
2024/03/05
1530
【Git】Common Git Command Line Operation
Git学习01-Learn Git Branching(在线学习工具)
Learn Git Branching(最好用的Git在线学习工具) 网址:https://learngitbranching.js.org/?locale=zh_CN 介绍:这个网站可以让我们通过游
帅的一麻皮
2020/06/09
9.5K1
Git学习01-Learn Git Branching(在线学习工具)
三年 Git 使用心得 & 常见问题整理
「使用场景:」 当你接到一个修复紧急 bug 的任务时候,一般都是先创建一个新的 bug 分支来修复它,然后合并,最后删除。但是,如果当前你正在开发功能中,短时间还无法完成,无法直接提交到仓库,这时候可以先把当前工作区的内容 git stash 一下,然后去修复 bug,修复后,再 git stash pop,恢复之前的工作内容。
Nealyang
2020/06/19
2.9K0
三年 Git 使用心得 & 常见问题整理
Git命令大全,硬气!
把要提交的文件的信息添加到暂存区中。当使用 git commit 时,将依据暂存区中的内容来进行文件的提交。
网络技术联盟站
2021/11/05
1.3K0
小白Git 学习总结
Learn Git Branching 去这个网址玩通关,结合此篇文档,再在项目里用一用,应该就明白了。
积极乐观的普通人
2024/01/24
4150
小白Git 学习总结
git 奇技淫巧
和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit
s_在路上
2018/09/30
6730
Git 从入门到放不下
https://github.com/gafish/gafish.github.com
良月柒
2019/09/26
2.3K0
Git 从入门到放不下
深入理解 git 一切皆 commit
git 入门教程推荐: 简介 - Git教程 - 廖雪峰的官方网站 Git入门图文教程(1.5W字40图)🔥🔥—深入浅出、图文并茂 - 安木夕 - 博客园
jgrass
2024/12/25
1250
深入理解 git 一切皆 commit
相关推荐
常用git命令整理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档