加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Git代码防丢指南

发布时间:2019-01-29 19:10:23 所属栏目:建站 来源:joymufeng
导读:我们在一般行使Git的进程中常常会产生一些不测环境,假如处理赏罚不妥,则也许会呈当代码丢失的假象。本文将针对IDEAGit一般开拓中的一些场景,为你层层拨开迷雾,理会常见的错误及其产生缘故起因,让你以后不再恐惊代码斗嘴或丢失题目。 为简化题目,本文假设全部
副问题[/!--empirenews.page--]

我们在一般行使Git的进程中常常会产生一些不测环境,假如处理赏罚不妥,则也许会呈当代码丢失的假象。本文将针对IDEA&Git一般开拓中的一些场景,为你层层拨开迷雾,理会常见的错误及其产生缘故起因,让你以后不再恐惊代码斗嘴或丢失题目。

为简化题目,本文假设全部团队成员均在统一分支上开拓。

文中更新操纵是指在IDEA中单击菜单VCS-Update Project...。

1. 常见事变流程

凡是当你早上到公司打开电脑,起首执行更新操纵(单击IDEA菜单VCS-Update Project...),然后开始舒畅地编码。编码完成后凡是要执行以下几个操纵:

  • 更新操纵
  • 建设本次提交
  • 推送长途分支

1.1 更新操纵

为了担保Git拥有一个简捷的提交汗青,在提交之前必要先执行更新操纵,即在IDEA中依次单击菜单VCS-Update Project...,可能按下Ctrl+T,弹出如下窗口:

Git代码防丢指南

窗口左侧选择更新范例(Update Type):

  • Merge:更新时执行归并操纵。等价于执行git fetch && git merge可能git pull --no-rebase。
  • Rebase:更新时执行rebase操纵。等价于执行git fetch && git rebase可能git pull --rebase。
  • Branch Default:在.git/config文件中指定差异分支的更新范例。

窗口右侧选择在更新前事变目次(Working Directory)的整理方法:

  • Using Stash:行使git stash蕴藏当地修改。
  • Using Shelve:行使IDEA内置的Shelve成果蕴藏当地修改。

凡是选择Merge和Using Stash即可,单击OK后,IDEA执行步调如下:

  • 第1步:行使git stash蕴藏当地修改
  • 第2步:执行git fetch && git merge拉取长途分支并归并
  • 第3步:执行git stash pop规复蕴藏

有些同窗也许更风俗先建设当地提交,然后在执行更新操纵,这样会导致Git自动天生一个归并提交,导致提交汗青不足简捷。

1.2 建设本次提交

更新完成后,在IDEA中单击菜单VCS-Commit...建设本次提交。

1.3 推送长途分支

然后单击VCS-Git-Push...推送至长途分支。

2. 常见题目说明

在上面的3步执行步调中,第2步和第3步产买卖外的风险最高,最常见的两种不测环境是斗嘴和文件占用,下面我们别离接头。

2.1 归并长途分支斗嘴

假如在执行更新操纵之前,你的当地分支已经建设过提交,而且尚未推送至长途分支,则在第2步执行git merge时很也许会产生斗嘴。

Git代码防丢指南

此时封锁上面的斗嘴窗口,Version Control器材窗口表现内容如下:

Git代码防丢指南

窗口右下角本来表现分支名称的位置酿成了Merging master,暗示当地分支master今朝处于正在归并状态。单击左侧红框内Resolve按钮可以再次调出处理赏罚斗嘴窗口。基于IDEA的图形界面手动办理斗嘴后,IDEA会自动将该文件插手暂存区(插手暂存区即暗示斗嘴办理完成),最后执行一次提交便可以完成斗嘴处理赏罚。

2.2 规复蕴藏斗嘴

在更新操纵的第3步执行git stash pop规复蕴藏时,蕴藏内容也许与刚更新的内容产生斗嘴。

Git代码防丢指南

规复蕴藏时产生的斗嘴跟上面的归并斗嘴轻微有些区别,起首是右下角的分支名称没有Merging字样,其它会在右下角特殊弹出一个小窗提醒规复蕴藏失败,而且汇报你不消担忧,全部的修改都在stash列表中,并没有丢失。查察stash列表的方法为单击菜单VCS-Git-UnStash Changes...:

Git代码防丢指南

选中列表最上面的条目,然后单击Apply Stash,之前的修改就会从头回到事变目次。

我们继承回到斗嘴题目,手动办理斗嘴后执行一次提交就可以了。假如在办理斗嘴进程中产生了误操纵,可以右击Default Changelist-Revert...清空当前事变目次内容,从头执行一次Apply Stash,然后一再办理斗嘴进程。

Git代码防丢指南

2.3 文件占用错误

在执行第2步git merge时,也许会由于文件被占用导致执行失败。譬喻项目也许引入了一些jar文件,这些jar文件在当地已经被JVM动态加载了,假若有其余人更新了该jar文件而且推送到了长途分支,当你更新时便会碰着上述题目。

Git代码防丢指南

对付这种错误的办理要领很简朴,起首扫除文件的占用状态,譬喻终止当地JVM历程,然后再次点击VCS-Update。

在执行第3步git stash pop时,也会由于文件被占用导致执行失败。譬喻你更新了某个jar文件,当规复蕴藏时也许由于该jar文件被占用导致规复失败。

Git代码防丢指南

对付这种错误,你必要起首扫除文件占用状态,然后手动执行unstash操纵。

3. 先提交照旧先更新?是个题目!

3.1 先提交后更新导致的题目

3.1.1 产生斗嘴时难以处理赏罚

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读