(七)Intellij 中的git操作

2023-05-16

       git原理以后会分章节介绍,本次主要说一下intellij怎样操作git。intellij有很好的git操作界面,可以拉取代码,拉取分支详情,提交代码到本地仓库,提交代码到远程仓库,可以merge本地分支,merge远程分支,可以自由的切换分支,可以解决merge带来的冲突问题。总之可以完成基本的git操作,详情如下。

      1、 更新代码

       ctrl+T,更新的是远程仓库的代码。(ps:默认更新选择的是branch default 和using stash,可以研究一下其他的选项哦)


       2、提交代码

       ctrl+K,如果本地代码没有改变,会提示,no changes detected(检测到没有改变)。如果本地代码有改变,则可以进行提交,对于git提交,首先是提交到本地仓库(commit),然后再提交(push)到远程仓库中,和svn比起来,相当于加上一层“缓存”,同时加上一层安全。如下图所示,还有一些其他的细节,一些按钮,可以探究一下哦。



       3、两个分支的之间的切换

       intellij的右下角有git相关的信息,如下图所示。


       Git:xhf_buanch_test代表的是当前分支,一般情况下我们的当前分之是master。Local Branches:表示本地仓库中的分支,本地的分支都是从Remote Branches中checkout而来的,选择想要下载的远程分支,右键选择check out as new local branch,然后选择ok,在Local Branches中就会增加一个本地分支。


       但是分支之间怎么切换呢,提交代码的时候提交到的是哪个分支呢?

       当前分支是什么默认提交到的就是哪个分支,所以想要修改哪个分支,就切换到本地的哪个分支,但是在分支切换的时候会出现一些问题,为了避免这些问题的出现,最好保证如下点。

       3.1切换之前ctrl+k,确保没有未提交到本地仓库的文件

       3.2切换之前先更新,把这个分支更新为最新的code。

       然后选择Local Branches中的分支切换为当前分支。可能会出现如下问题,比如分支A_1和分支A_2 两个分支,当A_1中添加了一些文件,但是还没有commit的时候,这时候切换分支到A_2 , A_2中也会有A_1中未提交的文件。


       当有时候会出现从A_1分支切换到A_2分支上,需要merge,我们可以选择smart merge,当smart merge没有解决问题的时候,我们可以手动merge,merge result的结果,就是把这些文件放到你要切换到的分支上,所以最安全的方式是选择Merge这个按钮。

       accept Yours是接受A_1分支上的改变,Accept Theirs是接受A_2分支的改变。




       4、新建分支

       点击git框的new Branch,然后输入自己分支的名称,按照本公司的分支命名规则哦。然后会自动切换到当前分支,然后再push到远程仓库中。

       5、同步远程分支

       可能有人新建了远程分支,但是在本地上的Remote Branches中并没有远程分支,所以需要右键选择git fetch。

      6、merge远程分支。

A merge B是把A中的改动放到B分支上,B merge A是把B中的改动merge到A中,例如把master分支上的改动移到分支fb_xhf上,可以这样merge。

       6.1 转到master分支上,然后更新master最新更新。

       6.2 再转到fb_xhf上,然后在Local Branches中选择master分支,选择merge,这样就把本地的master merge到 本地仓库的fb_xhf上,然后再选择git push ,这样就把远程master merge到 fb_xhf上, 并会提示: Merged master to fb_xhf。


       7、文件恢复

       本地的文件修改后,想要恢复到本地git仓库上次的提交,可以右键选择git revert。

      8、 cherry pick

       就像摘樱桃一样,在changes列表中,可以看到其他分支提交的动态,如果想要把某次的变化放到当前分支上,可以右键选择cherry pick,这就是摘樱桃。

       9、如果不小心不应该merge的时候merge了,怎样退回到上一次状态?

       在changes中选中最新的提交,然后右键选择reset current branch to here。。然后弹框如下


       选择Hard会返回上一状态,其他的选项,可以看看哦。


       10、颜色变化

git 在未add到git管理的时候是褐色,add后的颜色是绿色,提交之后的颜色是正常色,有修改之后的颜色是蓝色。

       11、如何删除某些已经提交到本地git仓库和远程仓库上的内容呢?

       可以使用git命令:

        11.1  git rm -r --cached    File-or-FolderName    (ps:要删除的文件或目录, 本地git库缓存的文件.)
        11.2   git commit -m  "Removed folder from repository"  (ps:提交到本地)
        11.3  git push origin master (ps: 把删除提交到远程分支上.)

       在intellij中可以在执行完第一个步骤之后ctrl+K commit和push。

       12、intellij去除非代码提交

       修改 。gitignore文件,并提交到git上。如下修改

              /target
              /.idea
              *.iml
              *.ipr
              *.iws
              .idea
              */*.log
              */target/
              *.DS_Store
              *.classpath
              *.settings
              *.project

       扩展:git http://my.oschina.net/pengfeix/blog/191897?p=1#OSC_h3_3  http://www.51itong.net/git-commit-amend-commit-8551.html

       ps:如果测试的话,可以在github上测试,这样就省去了本地安装git服务端。

总结:

       git的博大精深还需要本公主多次研究和实践,还有很多功能木有用到。总结一下基本的使用和坑,算是抛砖引玉了。







本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(七)Intellij 中的git操作 的相关文章

  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • Eclipse 与外部 src 和 Web 内容文件夹链接或映射

    首先这不是问题但是我遇到的问题的解决方案浪费了4 5个小时来找到解决方案 请让我知道是否有更好的替代方法来使用 eclipse 项目管理外部 src 文件夹 我正在使用版本控制系统 GIT 来管理我的项目 还使用外部 Git 客户端 Sou
  • gitlab 上的权限被拒绝(公钥)

    我的问题是我无法从 GitLab 推送或获取 不过 我可以克隆 通过 HTTP 或通过 SSH 当我尝试推送时出现此错误 权限被拒绝 公钥 致命 无法从远程存储库读取 从我看过的所有线程中 这是我所做的 在我的计算机上设置 SSH 密钥并将
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 从 github 中删除子项目提交

    我有两个存储库A and B 我错误地在我的机器上将仓库 B 克隆到了 A 内 我从存储库 B 中删除了所有代码 但是当我在源上从 A 推送并合并代码时 它还显示了子项目提交B在 Github 仓库上 我想从我的 master 上删除子项目
  • Git post-receive - 如何检查推送的分支是否与主分支合并

    在我们的团队中 我们通常将所有任务推送到单独的分支中 然后发布经理审查这些分支并将它们合并到 主 分支中 有时团队成员忘记将他们的分支与主分支合并 在推送之前 所以我想做的是 在用户推送后输出一条消息 请与主分支合并 我想我需要检查一些内容
  • GIT - 推送到 (GitHub) origin master 没有任何作用

    我已经分叉了某人的 GIT 存储库 https github com nippysaurus toodledo objc 将其克隆到我的本地计算机 显示带有以下信息的来源 remote origin Fetch URL https emai
  • 如何关闭分支而不将其从 git 的历史记录中删除?

    我想提交并关闭其分支 而不将其从历史中删除 有了水银我会commit close branch then update转到上一个 然后继续工作 有了 git 我很困惑 没有与 Git 中关闭分支完全相同的方法 因为 Git 分支比 Merc
  • git-svn 如何知道要提交到哪个分支?

    我的存储库是 SVN 我使用 git 进行所有开发 我们有一个标准布局 我用以下命令初始化了我的本地存储库git svn init s
  • 使用 TFS REST API 获取 Git 提交的最新关联工作项

    我正在尝试获取关联的工作项使用 TFS REST API 进行 GIT 提交 https www visualstudio com en us docs integrate api git commits 我的请求 URL 如下所示 htt
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • http.h:6:23: 致命错误:curl/curl.h:没有该文件/目录

    我在 CentOS 7 中下载 git 包 wget https www kernel org pub software scm git git 2 0 1 tar gz tar xzf git 2 0 1 tar gz 当我编译git时
  • 使用 GitHub,在添加现有存储库时如何推送所有分支?

    我创建了一个新的 GitHub 存储库 我想将现有的存储库放在那里 我按照说明操作 cd existing git repo git remote add origin email protected cdn cgi l email pro
  • 如何获取 git 存储库中所有文件的计数?

    如何获取 git 存储库中当前所有文件的计数 您可以使用以下命令获取 git 存储库中所有跟踪文件的计数 git ls files wc l 命令分解 The git ls files命令本身打印出存储库中所有跟踪文件的列表 每行一个 Th
  • Git 中的数据完整性?

    我现在已经多次听到提到 Git 提供数据完整性 但是 这是什么意思 据我所知 git 中的所有对象都是使用 SHA 1 校验和来访问的 并且该校验和是根据文件的内容计算的 这意味着如果文件发生更改 您将得到不同的校验和 但这如何提供数据完整
  • 为什么cherry-pick 告诉我所有行都已更改?

    Updated 考虑文件 abc 在提交 A 和 B 中都相同 begin 123 456 789 klm end 在A中 我们重构第一行123 gt AAA并在结果之上选择 B Git 告诉我们all lines in the file
  • 合并后 Git 分支和提交历史记录

    我正在开发一个项目 单独 对于我开发的每个功能 我都会创建一个新分支 处理该功能 然后将其合并到 master 中 所以通常我不会同时在两个不同的分支上工作 也不会在一个分支上工作时接触master 当我合并一个分支时 我看到 使用gitx
  • 创建多个 git 分支的联合分支

    我希望能够在现有分支之上分层其他分支 并独立修改这些分支 这很有用 例如 允许将各个子项目的二进制文件统一到同一个项目中bin目录 一般来说 给定的文件仅存在于一层中 理想情况下 我想我会使用 unionfs 来完成此任务 但它必须以某种方
  • 结帐时出现 Git 错误:“致命:引用不是树”

    当我决定弄清楚为什么我正在从事的项目如此重要时 这一切就开始了 我运行了以下脚本 git rev list objects all git cat file batch check objecttype objectname objects

随机推荐

  • Android lottie java.lang.IllegalStateException: Missing values for keyframe

    使用Lottie动画的时候 xff0c 运行发现了此报错 xff0c 版本为2 4 0 xff0c 在经过几番的测试后 xff0c 更改了资源文件和xml里面的配置也不大行 tips 一定要在xml里面配置资源文件 xff0c 当你把资源文
  • 追求技术之路 - 那些陪伴我的书籍

    如今已经在广州一家嵌入式公司实习 xff0c 分享大学里度过的一些书籍 xff0c 有些还没读完 xff0c 个人比较喜欢经典书籍 xff0c 研读起来就有种奇妙的感觉 xff0c 比起人与人之间的复杂的关系 xff0c 书籍带给我的感觉很
  • 详解蓝牙标准中的GFSK调制

    简介 GFSK是一种简单但应用广泛的调制方式 xff0c 在蓝牙和802 11等无线通信标准中都有应用 802 11跳频FHSS时所用的调制方式是GFSK 2和GFSK 4 xff0c 采用BT 61 0 5的高斯滤波器 在GFSK 2和G
  • ajax入门 不要畏惧 很简单 进了门一切都好学多了

    以前总是听别人说ajax是多么的好 xff0c 然后自己就去借了本书看 xff0c 哇塞感觉好难哦 xff0c 什么介绍javascript html css xff0c 还有很多一些东西 看的那个难啊 xff0c 然后就是硬着头皮把它给看
  • IntelliJ IDEA With Git

    记录下Git如何与IntelliJ IDEA协作 文章目录 环境准备IntelliJ IDEA With Git 开发过程1 初次获取远端代码2 查看远端仓库分支3 将指定的远端分支同步到本地 xff08 建议同远端名一致 xff09 4
  • 环形缓冲区(ringbuffer)

    环形缓冲区 xff08 ringbuffer xff09 环形缓冲区是嵌入式系统中十分重要的一种数据结构 xff0c 比如在串口处理中 xff0c 串口中断接收数据直接往环形缓冲区丢数据 xff0c 而应用可以从环形缓冲区取数据进行处理 x
  • Gson解析异常:Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $

    首先检查你的retrofit配置是否正确 xff0c 解析异常 addConverterFactory GsonConverterFactory create 在这里修改成这个gson的 Retrofit retrofit 61 new R
  • leetcode|多线程专题

    1114 按序打印 我们提供了一个类 xff1a public class Foo public void one print 34 one 34 public void two print 34 two 34 public void th
  • OpenCV实战(1)——OpenCV与图像处理基础

    OpenCV实战 xff08 1 xff09 OpenCV与图像处理基础 0 前言1 OpenCV 基础1 1 安装 OpenCV1 2 OpenCV 主要模块1 3 使用 Qt 进行 OpenCV 开发 2 OpenCV 图像处理基础2
  • 1.机器视觉标准框架学习

    在工业机器视觉上 xff0c 常见的图像处理库有opencv halcon visionpro sherlcok等 其中visionpro和sherlcok是拖拽式编程 xff0c 方便用户开发视觉项目 但对于opencv 和halcon则
  • Gitlab权限说明

    Gitlab权限管理 Gitlab用户在组中有五种权限 xff1a Guest Reporter Developer Master Owner Guest xff1a 可以创建issue 发表评论 xff0c 不能读写版本库 Reporte
  • 二进制的浪漫

    0 基本性质 0 1 交换律 相同运算符下可任意交换 xff0c 不同的运算符不可交换 0 2 结合律 相同运算符是可结合的 0 3 分配律 a amp b
  • (九)分支限界法

    分支限界法 xff08 branch and bound method xff09 按广度优先策略搜索问题的解空间树 xff0c 在搜索过程中 xff0c 对待处理的节点根据限界函数估算目标函数的可能取值 xff0c 从中选取使目标函数取得
  • (七)贪心法

    贪心法比较简单 xff0c 从这个算法的名字看来差不多都了解了 xff0c 贪心 xff0c 贪心的人是只顾一时的利益 xff0c 不顾长远的利益 贪心法把一个问复杂问题分解为一系列较为简单的局部最优选择 xff0c 每一步选择都是对当前的
  • Struts旅程(一)Struts简介和原理

    struts 简介 Struts 是 Apache 软件基金会 xff08 ASF xff09 赞助的一个开源项目 它最初是 jakarta 项目中的一 个子项目 xff0c 并在 2004 年 3 月成为 ASF 的顶级项目 它通过采用
  • Struts旅程(六)Struts页面转发控制ActionForward和ActionMapping

    上篇讲述了 struts 控制器 Action 和 DispatchAction 以及 LookupDispatchAction xff0c 本篇主要说说 struts 中的页面转发控制 xff0c struts 提供了 ActionFor
  • Hibernate旅程(四)Hibernate对数据库删除、查找、更新操作

    上篇 xff0c 我们以向数据库添加操作来演示 hibernate 持久化对象的三种状态 本节继续 hibernate 对数据库的其他操作 xff0c 删除 查询 修改 Hibernate 对数据删除操作 删除 User 表中个一条数据 x
  • 二分查找算法(递归与非递归两种方式)

    首先说说二分查找法 二分查找法是对一组有序的数字中进行查找 xff0c 传递相应的数据 xff0c 进行比较查找到与原数据相同的数据 xff0c 查找到了返回对应的数组下标 xff0c 没有找到返回 1 xff1b 如下示例 xff0c 其
  • 调用微信高级群发接口--视频群发接口出问题(微信官方文档错误纠正)

    这几天在弄项目与微信对接 xff0c 我主要负责将素材 xff08 视频 xff0c 图片 xff0c 缩略图 xff0c 音频 xff09 材料上传到微信服务器上 xff0c 并推送到所关注本平台的用户中 xff0c 从获取accessT
  • (七)Intellij 中的git操作

    git原理以后会分章节介绍 xff0c 本次主要说一下intellij怎样操作git intellij有很好的git操作界面 xff0c 可以拉取代码 xff0c 拉取分支详情 xff0c 提交代码到本地仓库 xff0c 提交代码到远程仓库