Git下载、安装、配置、配合Intellij Idea实现代码版本控制

程序员大本营 2021-09-15 05:01:53
安装 Git 配置 下载 配合


一 安装配置Git

1.1 下载Git

首先去下载Git压缩包,Git下载地址
选择合适的版本下载,都2020年了,还是下载64位吧。
在这里插入图片描述

1.2 安装Git

双击下载好的Git
在这里插入图片描述

点击Next
在这里插入图片描述

点击Browse… 选择安装目录(建议不放C盘),点击Next。
在这里插入图片描述

可能每个人的安装过程都有不同,如果没有特殊需求,就一直点Next。
点击Install开始安装。
在这里插入图片描述
安装完成,点击finish。
在这里插入图片描述

1.3 配置Git

在桌面空白处鼠标右键,看到两个Git图标,点击Git Bash Here进入Git的控制台。
在这里插入图片描述
输入 git config –-global user.name "xxx" 用户名可以随便填 按回车
输入 git config –global user.email "xxx" 不可以随便输,因为待会发邮件给你确认,按回车
然后就可以关闭这个客户端了,如果不用Git命令管理代码,这辈子你也不会打开它了。
在这里插入图片描述
C:\Users\ 目录下 有个gitconfig 文件,打开看下,里面有信息,这里我就不打开了,以后若想更改用户名或者邮箱在这改就好了。
在这里插入图片描述

二 Intelij Idea配置Git

Idea的**这里就不演示了,网上都都找到的,如果是学生,可以免费申请的。
打开Idea --> File --> Sttings…
在这里插入图片描述
搜索输入框输入GIT模糊搜索,点击GitHub。没有GitHub账户就去注册一个,GitHub网址
在这里插入图片描述
点击1处按钮,出现弹窗,2处Login输入github用户名,3处Password输入密码, 点击Log In。
在这里插入图片描述
可以看到显示出了git账户,idea更改设置要点击下方apply按钮。
在这里插入图片描述
点击箭头处选择安装git客户端的文件,选择Git安装包下bin目录下的git.exe文件。
在这里插入图片描述
在这里插入图片描述
选好之后点击Test,可以看到下面显示出了git的版本,我Idea用的是2020版的,以前2018的版本会弹出提示框显示git的版本,设置好后点击Apply按钮。
在这里插入图片描述

三 远程提交代码

这种方式各种各样,可以先到GitHub网站上建远程仓库再拉下来最省事,但这里我不那样做,我是在idea上建项目然后用Git创建远程仓库。
1.首先用idea建个项目或者就拿已经存在的项目也行。
2.项目建好后,点击Idea顶部导航栏的 VCS 按钮 --> Import into Version Cntrol --> Share Project on GitHub,(这种方式Idea会自动帮我们建一个本地仓库并且本地仓库的默认位置就在该项目下,如果建好这个仓库,该项目目录下就会出现一个.git文件,里面存放的是commit后的代码,如果你好奇点进去看过,额,你也什么都看不出来),在出现的弹窗中填写相关信息。
1处表示即将在GitHub远程网址上新建仓库的名字,最好使用和项目名称一样的名字,默认也是这样;
2处若勾选表示这个仓库是私人的,只有自己能看到,别人看不到;
3处origin是本地的代码库托管在git上的版本;
4处是描述,可以自己随意填,正常是填写项目的相关信息;
5处Share按钮;就会成功创建本地仓库,项目文件会变为红色。Github远程也会新建一个叫re的仓库,可以自己到GitHub网址去看下。
在这里插入图片描述
1:鼠标右键项目
2:点击Git
3:点击Add,将代码加入暂存区,文件会变为绿色。
在这里插入图片描述
1:再鼠标右键项目 ;
2:点击Git ;
3:点击Commit Directory将代码提交到本地仓库保存。
在这里插入图片描述
会让你选择想要提交的文件,实际工作中不会选择提交私人的一些配置文件到本地仓库中的, 填写下提交信息(必填,实际工作中会填写一个编号和修改内容的),之后点击Commit按钮
在这里插入图片描述
1:点击顶部VCS按钮
2:点击Git
3:点击Push将代码推送到远程Github仓库中

在这里插入图片描述
出现的弹窗中,1处按钮可以用来比对更改前和更改后的代码(怕改错代码可以检查,蛮实用的)
点击2处按钮push将本地仓库中的代码推送到远程仓库。
在这里插入图片描述
到GitHub远程仓库查看下提交的代码吧,可以看到已经成功提交上去了。
在这里插入图片描述
由于是新建的仓库,只有一个master分支,实际工作是一个功能就建一个分支,每个分支是独立不影响的,十分灵活,测试没问题的分支就会合并到主分支上(开发主分支) 还有测试主分支和生产主分支。作为开发者一般发布到开发主分支或者测试主分支,测试人员通过再放到生产环境中也就是投入使用。
实际工作中代码托管大概率不是用的GitHub,我现在的公司用的是叫GitLab,比GitHub更强的就是有分组的概念,GitHub适合个人或者小群体,GitLab适合大群体。但二者细节操作几乎一样,多用用你会爱上它的。

三 远程新建分支和拉取代码到本地

在GitHub远程仓库界面点击1处按钮,在2处搜索框中输入编号,一般是 分类-编号-需求-日期;然后点击3处创建分支。注意,当前是在master分支页面的,所以建立的分支中的内容是完全拷贝master的,如果想要拷贝别的分支,就先切换到别的分支页面,然后执行1、2、3步骤。

在这里插入图片描述
这是创建好了的样子,然后打开Idea。
在这里插入图片描述
VCS —> Git —> Pull
在这里插入图片描述
点击箭头处刷新按钮
在这里插入图片描述
勾选刚刚自己新建的分支,然后点击Pull按钮将分支拉取下来。(这里插一句,0001这个分支是来源于master分支的,如果有别人提交了代码合并到master分支上,那么此时你刷新然后pull到本地,一直到commit都没问题,但最后push的时候就会多了一个奇怪的信息,会包含别人提交的代码,所以Pull一次代码后千万不要再Pull一次,否则你将推倒重来把分支删了再建一次再写代码再提交,这是工作中会出现的问题,学生时代几乎不会出现这种问题)
在这里插入图片描述
看到成功拉取分支的提示之后,点击右下角的图标
在这里插入图片描述
点击刚刚拉取分支,然后点击 Checkout。
在这里插入图片描述
提示已经切换到该分支了
在这里插入图片描述
随便改下代码,可以看到改动的代码会有显示的,而且改动的文件颜色也会变为蓝色(新建文件会是绿色的)。
在这里插入图片描述
这个文件已经加入过暂存区了,所以不需要add的,直接按下列顺序来
VCS —> Git —> Commit File
在这里插入图片描述
1处勾选要提交到本地仓库的文件, 2处填写提交信息 ,3处点击对比更改的代码 ,4处点击提交代码到本地仓库 。
在这里插入图片描述
看下点击3处的按钮的效果,左边是更改前,右边是更改后,很清晰的看出代码的修改内容,再将代码Push到远程仓库。
在这里插入图片描述
在这里插入图片描述
弹出成功的提示
在这里插入图片描述
可以看到远程仓库已经有了更改的后的代码
在这里插入图片描述
#四 合并代码
点击1处 Pull request 再点击2处 Compare & pull request
在这里插入图片描述
可以对比更改,没问题就点击 Create pull request 按钮
在这里插入图片描述
刷新的页面往下翻 可以看到绿色的勾,表示没有代码冲突(实际工作中肯定会碰到代码冲突的问题,这也是GitHub使用中最麻烦的地方,这里就不说了),可以直接合并,点击Merge pull request按钮
在这里插入图片描述
点击Confirm merge,刚刚修改的代码会合并到master分支上。
在这里插入图片描述

版权声明
本文为[程序员大本营]所创,转载请带上原文链接,感谢
https://www.pianshen.com/article/30382093595/

  1. 不明白JVM虚拟机还怎么面试,一起刷完了这份1307页的Java面试宝典吧,
  2. Jdk's Past Life: The Classic Features of Thin Number - java5 - - - 15 -, webfront Development
  3. Résumé des questions d'entrevue pour les ingénieurs en développement Java, analyse des questions d'entrevue à haute fréquence Dubbo,
  4. Améliorer continuellement leur capacité à créer des primes, et les questions d'entrevue Java d'Alibaba Huawei Tencent et d'autres grandes usines sont sautées en octets.
  5. Install docker YJ version of openSUSE 11.3
  6. Je ne comprends pas comment la machine virtuelle JVM peut encore interviewer, et j'ai terminé ce dictionnaire d'entrevue Java de 1307 pages.
  7. 中软国际Java机试,如何写出高效率的SQL?
  8. 中级Java工程师面试,阿里 头条 腾讯等大厂Java笔试题目分享,
  9. 两年Java开发经验,为什么spring能最好地改变Java?
  10. Echarts realizes the rotation of the moon (super simple, you can see it at a glance)
  11. Deux ans d'expérience dans le développement de Java, pourquoi Spring peut - il le mieux changer Java?
  12. Entretien d'ingénieur Java intermédiaire, partage de sujets d'examen écrit Java de grandes usines comme Alibaba headline Tencent,
  13. Zhongsoft International Java Machine test, comment écrire un SQL efficace?
  14. Reflection type of Java Foundation
  15. Comment gérer efficacement les changements dans les ressources k8s?Analyse du mécanisme de mise en œuvre de k8s informer
  16. Installation de jdk1.8
  17. MySQL column - Linux underlying interaction and RAID storage architecture
  18. Interviewer: do redis transactions satisfy atomicity?
  19. 兩年Java開發經驗,為什麼spring能最好地改變Java?
  20. Migration practice from zookeeper to Nacos
  21. Dubbo's past and present life
  22. Initial experience of Dubbo application level service discovery
  23. Measure the Dubbo function of Tengine open source
  24. Comment envoyer 100 000 requêtes http le plus rapidement possible
  25. Huawei cloud guassdb (for redis) released a new version: Lua script and SSL connection encryption
  26. Mybatis vs hibernate, which performance is better?
  27. Python - Programmation orientée objet - _Rapport()
  28. Python - Programmation orientée objet - _Appel()
  29. JQuery Basics
  30. 五年Java开发经验面试,揭秘今年Java春招面试必问问题有哪些?
  31. 互联网Java工程师面试题,遇到的面试官都是架构师级别,
  32. Python - Programmation orientée objet - _Nouveau() et mode Singleton
  33. Python - Programmation orientée objet - méthode magique (méthode de double soulignement)
  34. Python - Programmation orientée objet - pratique (6)
  35. Python - Programmation orientée objet - réflexion hasattr, GetAttr, GetAttr, delattr
  36. Python - Programmation orientée objet - _Dict
  37. Computer graduation project java + SSM sorting algorithm online reading system
  38. Les questions d'entrevue pour les ingénieurs Java d'Internet, les intervieweurs rencontrés sont tous de niveau architecte,
  39. Cinq ans d'entrevue d'expérience en développement Java, découvrez les questions que vous devez poser lors de l'entrevue d'embauche du printemps Java de cette année.
  40. Java or the king of enterprise software- sivalabs
  41. 互聯網Java工程師面試題,遇到的面試官都是架構師級別,
  42. 从入门到精通系列Java高级工程师路线介绍,拼多多三面惨败,
  43. 今年最新整理的《高频Java面试题集合》,2021Java通用流行框架大全,
  44. La dernière collection de questions d'entrevue Java haute fréquence organisée cette année, 2021 Java Universal Popular Framework
  45. De l'introduction à l'introduction de l'itinéraire de l'ingénieur principal Java de la série Mastering, il y a eu de nombreux échecs.
  46. JavaScript operator (1), Web Development Engineer
  47. Java simultané Programming Books recommended, half - Runner Java Program see me easy to Attack!
  48. Trier les questions d'entrevue Javascript, trier les points de connaissance des itinéraires d'apprentissage
  49. Xiaopeng P7, a high-value domestic electric car that can't be missed
  50. Song Mengjun's "sleepless night" triggered an upsurge of dance storm after 00
  51. Encapsulated PHP sends HTTP requests with curl. Get and post are very easy to use
  52. Recommend a lightweight and practical excellent Linux panel - wgcloud
  53. 从思维图到基础再到深入,记一次字节跳动Java研发岗的面试经历,
  54. 从底层开始带你了解并发编程,五步搞定Java开发环境部署,
  55. 从基础到源码统统帮你搞定,一招彻底帮你搞定HashMap源码,
  56. 從基礎到源碼統統幫你搞定,一招徹底幫你搞定HashMap源碼,
  57. De la base au code source pour vous aider à résoudre tout, un tour pour vous aider à résoudre complètement le code source hashtap,
  58. Commencez par le bas pour vous familiariser avec la programmation simultanée, et terminez le déploiement de l'environnement de développement Java en cinq étapes.
  59. De la carte de pensée à la base et à l'approfondissement, prenez note de l'expérience d'entrevue d'un octet sautant le poste de recherche et développement Java.
  60. Good play | every character hates it. How does jade building spring do it?