idea git第一次上传代码_你的 Git 还在用小乌龟?

作者爱讲话

八月伊始,杭州也越来越热的,但是看着明媚的天气,心情还是很好的。

e74df6cad80a52325d54596849525174.png

最近看了《乐队的夏天》,被 Muma木马 乐队,疯狂圈粉,乐队主唱木玛说:“木马就像一个被我们弄坏的玩具,现在我们把它找回来了,是一个新的木马”(背景:Muma木马乐队解散过)

一下子,就想起自己大学和几个学长组过的乐队,地下室排练的时光还是很简单很快乐的,但是可能大学最大的遗憾也就是没有把这个乐队坚持到底吧。

说回 Muma木马,听了 Muma木马的《旧城之王》,感觉的歌词写的很有意思,非常的抽象,上了知乎有很多说歌词是故意拼凑,但是我还是觉得应该是作者有自己的想法,以一种真诚又戏谑的方式和时代对峙

070f5b2c8ae528d6091a6204644ca193.png
所有繁华落尽剩一人为王,在时代的漩涡中丢盔卸甲,但无论何时也不曾忘记,我们常常幻想的英雄其实住在自己心里 -Muma木马

Git 引入

王经理 :郝美丽,你上周写的代码怎么不提交到分支上?

小美:经理,小乌龟被扔来扔去,我感觉他太可怜了。呜呜

561b42154d99ab09ec51c98ee5c52e7e.png

王经理:???

小林:

王经理看着小美可怜的眼神,感觉小美应该是真的心疼乌龟 :“咳咳,为了照顾小美,那我们今天来说下如何在 idea 里使用 git ,大家打开我们的 idea,来 clone 一下这个项目,项目地址是这个 https://github.com/maerduduqi/test

郝美丽 :经理,你人太好了,不虐待乌龟,从我们做起

王经理:emmm

王经理:林步动,叫你打开 idea ,你开谷歌浏览器干嘛?

小林:经理,你不是叫我 clone 项目嘛,我登上去下载这个项目下来,然后解压,然后在 idea 里打开啊

1,在 Idea 里 clone 项目

王经理:你傻的在我的想象之中,又在我的意料之外

我们可以在 Idea 里直接打开我们这个项目

点击 File -> New -> Project From Version Control

5f2dd8e494284f9fba436bc57e9cd4de.png

ok,现在这个项目已经被我们 clone 下来了

王经理:我问你们个问题,我们使用 Git 的最大目的是什么?

郝美丽 & 林步动:没有蛀牙! (这个梗,能 Get 到么 )

2,在 Idea 里 commit and push

王经理:对,就是提交我们写的代码与其他人一起协作,就是 commit and push,在 Idea 里使用这个操作也很简单

2b9ba314af7f9e05be1142cb883e0f68.png

小林:经理,我打断下你,是不是文件只有蓝色和红色啊?有没有绿色,我最喜欢绿色了,小美和我说,要想生活过得去,身上总得带点绿,我觉得小美说的很有道理啊。

经理向小林投来疑问的目光

55915b5345b992b74b372eea1c654456.png

的确有绿色,还有灰色和白色

  • 绿色,代表代码文件已经加入版本控制但是暂未提交
  • 白色,代表代码文件加入版本控制,已提交,无改动
  • 灰色:代表代码文件是已经被版本控制已忽略文件

说回提交文件

727429877771aa1cb69c129584b79f8c.png

林步动:哈哈哈,好简单啊,是不是这样就行了

王经理:还差最后一步,就 push 成功了

921cd70597c93b2c9a2e0775f705d695.png

王经理:ok,我们现在已经 push 成功了

3,在 Idea 里查看提交记录

林步动:经理,我想看看小美提交了啥,我应该怎么看啊

王经理:这个也很简单,看我操作

385c0aff11596a8553a6380e2d971a95.png

小林:what ,小美说我笨,我能不能撤回这个提交记录

王经理:可以的。只要这样就能撤回了

fff06fcd6cd62ca4e90ea6b4ae82a08d.png

1b4ffd7ff39f54dea93efb3a809cd114.png

91217a0afe8b746dd76df222441bcfbc.png

4,在 Idea 里解决冲突

小林:经理这一手可以。经理你能不能给我展示下 idea 如何解决冲突模拟场景

王经理:当然可以

假设有另个开发人员开发同一个项目,并且编写同一个文件,工作流程如下:

1.01号程序员先上传文件conflict.txt,并继续在conflict.txt上写代码;

e0e579a34d52aa141051ec2bf007a444.png

2.02号程序员更新项目代码,并在conflict.txt上写代码,写完后,在提交到远程服务端;

924e41d75d1f6fe5f420ddb8155052d8.png

3.当01号程序员把写完后,准备提交代码了,这时的正规操作手法,先更新在提交,但是在更新的时候必然会冲突,因为这时候更新的代码conflict.txt与本地仓库代码conflict.txt不一致

55f8f587a9b1ad9c0e3b61d7ceb61964.png

提交前,我要更新,冲突了:

23c08b76bb3c42fa1fd8e8f55bd90d10.png

解决方案如下:

  • accept yours:代表以自己的为准;
  • accept theris:代表以更新下来的文件为准;
  • merge:代表手动合并
  • 一般解决冲突我们都是选择merge

6793d6a48742ffb4c3874788c7536e3a.png

将需要的内容点击:">>"既可以合并内容到result中,不需要的内容点击“x”即可,合并完成后点击apply即可。

值得注意的是,最将所有的“x >>”符号都要处理完,不需要的点击“x”,需要的点击“>>”

小林:厉害了啊,经理

91821cb2d22be3aba0bd101d3482da9f.png

小美:经理,我也想问一个问题

王经理:问问问,就没有我不会的

842b2a510d65f0a9def89d92f15d0337.png

5,在 Idea 里使用分支

小美:能不能教教我 在 Idea 里使用 git 分支的技巧啊?

王经理:小菜一碟,接下来给大家模拟下 分支的新建与合并使用 场景 (摘自作者姿势帝文章,文末附原文链接)

1,开发某个网站。

2,为实现某个新的需求、问题(#53问题),创建一个分支(名为:iss53)。

3,在这个分支上开展工作。

正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理:

1,切换到你的线上分支(production branch)。

2,为这个紧急任务新建一个分支(名为:hotfix),并在其中修复它。

3,在测试通过之后,切换回线上分支(名为:master),然后合并这个修补分支,最后将改动推送到线上分支,并删除hotfix分支。

4,切换回你最初工作的分支(iss53)上,继续工作。

5,iss53问题处理完后,合并到master主干上,删除iss53分支。

当我们决定去为实现某个新的需求,如何新建分支呢?

7d723d3bf7cd1caa68df8c06922af291.png

填写分支名称

7b7e50fb1d1458a0c4a10f4662d30810.png

在iss53分支上开发,如下

be3c3aafe000c1bc547499c27f196fbd.png

将分支推送到远程仓库

c4bb4d1ecfeb192e5ec5d07304082f40.png

点击push推送到远程仓库

50c2f2f9bbbcd29a9dbbb098ece23c49.png

分支随着工作的进展向前推进

现在你接到那个电话,有个紧急问题等待你来解决。

有了 Git 的帮助,你不必把这个紧急问题和 iss53 的修改混在一起,

你也不需要花大力气来还原关于 53# 问题的修改,然后再添加关于这个紧急问题的修改,最后将这个修改提交到线上分支。 你所要做的仅仅是切换回 master 分支。

idea上操作如下:

4cc9a8943231da802bfff4e2abdfb8c7.png

特别注意:在你这么做之前,要留意你的工作目录和暂存区里那些还没有被提交的修改,它可能会和你即将检出的分支产生冲突从而阻止 Git 切换到该分支。 最好的方法是,在你切换分支之前,保持好一个干净的状态。

有一些方法可以绕过这个问题(即,保存进度(stashing) 和 修补提交(commit amending))。

这个时候,你的工作目录和你在开始 #53 问题之前一模一样,现在你可以专心修复紧急问题了。

请牢记:当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。

Git 会自动添加、删除、修改文件以确保此时你的工作目录和这个分支最后一次提交时的样子一模一样。

接下来,你要修复这个紧急问题。 让我们建立一个针对该紧急问题的分支(hotfix branch),在该分支上工作直到问题解决:

f7e7a046461d08fac10dff9e584d90c1.png

基于 master 分支的紧急问题分支 hotfix上进行代码开发,模拟如下:

801721692cf1824d53666bc7fbe45a8b.png

你可以运行你的测试,确保你的修改是正确的,然后提交代码到远程仓库,提交到远程仓库的操作与刚才提交iss53操作一样。

当hotfix这个紧急问题的分支开发完成后,将其合并回你的 master 分支来部署到线上。 你可以使用idea的 git merge来达到上述目的:

首先切换到master

然后,以master为主线合并hotfix,这个很重要,因为是以master为主,将hotfix的的代码合并到master上,不要把顺序弄反

107c0fc3988648523e6f90f85c72dd3e.png

然后,以master为主线合并hotfix,这个很重要,因为是以master为主,将hotfix的的代码合并到master上,不要把顺序弄返

ef1b0495988662ea03feeb778590356e.png

现在,最新的修改已经在 master 分支所指向的提交快照中,这是你只需要提交master到远程仓库(非常重要,千万别忘记),你可以着手发布该修复了。

当我们顺利的合并到了master主线上,接下来我们就应该删除分支hotfix

删除本地仓库分支hotfix

ec9e38d06ba7a429ffd72a25569e1068.png

删除远程仓库分支hotfix

132f8ce57972e5853fb0d7f0eedfdc79.png

删完回到我们的分支上

323b2bf1de2e2691d7f44db3f2d05514.png

继续在分支iss53上写代码

07b944c926a1fa1b253262dd18c75b3d.png

总结一下

王经理:尖叫声在哪里?

865ce24d659d9e0dfb2b23be73183aaf.png

小林:都学完谁还理你,下班时间到啦

cfaeaf5aca1d3a9545d49e6c3fcb2b25.png

关于 Idea 里使用 Git 的技巧肯定不止这么一点点,希望大家触类旁通,多试一试,每个按钮都点一点。

毕竟鲁迅说过:git 这东西,多用用就知道了

19da7140db2c162f30a56096c1a431d1.png

参考文章: https://www.cnblogs.com/newAndHui/p/10846276.html参考文章: https://www.cnblogs.com/newAndHui/p/10846276.html

http://weixin.qq.com/r/ezqfh5nE_MSHrd3k929p (二维码自动识别)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值