在IDEA中实战Git

未结 分享 0 158
大森林
大森林 2019-05-08 11:01:01
悬赏:20 收藏
工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小袁修改了部分源码,提交到远程仓库 场景四:小张从远程仓库获取小袁的提交 场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发 场景六:小袁把分支提交到远程Git仓库 场景七:小张获取小袁提交的分支 场景八:小张把分支合并到主干 下面来看以上各场景在IDEA中对应的操作。 [pre] 场景一:小张创建项目并提交到远程Git仓库 [/pre] 创建好项目,选择VCS - > Import into Version Control -> Create Git Repository img[http://oss.xxpay.vip/img/67e58ba2-64c1-4ebe-a7b6-5b9953b9196d5918491198242067430.png] 接下来指定本地仓库的位置,按个人习惯指定即可,例如这里选择了项目源代码同目录 img[http://oss.xxpay.vip/img/c6d05df7-f59c-44fe-b9c4-3531300c33fa1753480858350421128.png] 点击OK后创建完成本地仓库,注意,这里仅仅是本地的。下面把项目源码添加到本地仓库。 下图是Git与提交有关的三个命令对应的操作,Add命令是把文件从IDE的工作目录添加到本地仓库的stage区,Commit命令把stage区的暂存文件提交到当前分支的仓库,并清空stage区。Push命令把本地仓库的提交同步到远程仓库。 img[http://oss.xxpay.vip/img/f15eaea9-ba28-4fc8-8866-3b1456dcdef75887369965489330323.jpg] IDEA中对操作做了一定的简化,Commit和Push可以在一步中完成。 具体操作,在项目上点击右键,选择Git菜单 img[http://oss.xxpay.vip/img/9655e364-424e-4efd-87a4-13c8ee58cb3d7368203639521370952.png] img[http://oss.xxpay.vip/img/cfe2a7cb-73b6-4291-9e27-287f993fccbc2648067764412249558.png] img[http://oss.xxpay.vip/img/ce395554-3206-4b46-952a-11655aee9a4d7364780418737443295.png] 因为是第一次提交,Push前需要指定远程仓库的地址。如下图,点击Define remote后,在弹出的窗口中输入远程仓库地址。 img[http://oss.xxpay.vip/img/5d9f2f29-6076-46e9-9947-1a0790b251dc1699164497669698155.png] [pre] 场景二:小袁从远程Git仓库上获取项目源码 [/pre] 即克隆项目,操作如下: img[http://oss.xxpay.vip/img/4470658f-ee1f-4bf2-9cf8-ff5ea4982bf81888946174388914301.png] 输入小张Push时填写的远程仓库地址 img[http://oss.xxpay.vip/img/66e6fdc1-5d05-4e08-89bd-2ab28efd83d84160004718106705930.png] 接下来按向导操作,即可把项目从远程仓库克隆到本地仓库和IDE工作区。 [pre] 场景三:小袁修改了部分源码,提交到远程仓库 [/pre] 这个操作和首次提交的流程基本一致,分别是 Add -> Commit -> Push。请参考场景一 [pre] 场景四:小张从远程仓库获取小袁的提交 [/pre] 获取更新有两个命令:Fetch和Pull,Fetch是从远程仓库下载文件到本地的origin/master,然后可以手动对比修改决定是否合并到本地的master库。Push则是直接下载并合并。如果各成员在工作中都执行修改前先更新的规范,则可以直接使用Pull方式以简化操作。 img[http://oss.xxpay.vip/img/5e1f9dba-b9ae-489c-bfb4-fc3bb44d41f56795345309767195862.png] [pre] 场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发 [/pre] 建分支也是一个常用的操作,例如临时修改bug、开发不确定是否加入的功能等,都可以创建一个分支,再等待合适的时机合并到主干。 创建流程如下: img[http://oss.xxpay.vip/img/37f7e29a-1b62-4249-ae65-411c4a6e57da1885743549389999564.png] 选择New Branch并输入一个分支的名称 img[http://oss.xxpay.vip/img/e1fe7451-0019-4255-8c39-996bdce7c1b33718072817374949286.png] 创建完成后注意IDEA的右下角,如下图,Git: wangpangzi_branch表示已经自动切换到wangpangzi_branch分支,当前工作在这个分支上。 点击后弹出一个小窗口,在Local Branches中有其他可用的本地分支选项,点击后选择Checkout即可切换当前工作的分支。 img[http://oss.xxpay.vip/img/82dbff1c-7542-42e2-a456-5ab20707934a5161091128099163675.png] 如下图,点击Checkout img[http://oss.xxpay.vip/img/4d15c3a8-4dd4-44dc-b7c2-6726bcfb3b8a2036077093315416272.png] 注意,这里创建的分支仅仅在本地仓库,如果想让组长小张获取到这个分支,还需要提交到远程仓库。 [pre] 场景六:小袁把分支提交到远程Git仓库 [/pre] 切换到新建的分支,使用Push功能 img[http://oss.xxpay.vip/img/3327b1f1-d7a1-4d76-bd7b-fb0bb42c2b1d9060193883214229430.png] img[http://oss.xxpay.vip/img/968212ca-86aa-4f34-8b54-98d3ebdc05e24757826436526961223.png] [pre] 场景七:小张获取小袁提交的分支 [/pre] 使用Pull功能打开更新窗口,点击Remote栏后面的刷新按钮,会在Branches to merge栏中刷新出新的分支。这里并不想做合并,所以不要选中任何分支,直接点击Pull按钮完成操作。 img[http://oss.xxpay.vip/img/f64d5348-a088-43f8-b7a2-4dcb9fc794b9954087473620435089.png] 更新后,再点击右下角,可以看到在Remote Branches区已经有了新的分支,点击后在弹出的子菜单中选择Checkout as new local branch,在本地仓库中创建该分支。完成后在Local Branches区也会出现该分支的选项,可以按上面的方法,点击后选择Checkout切换。 img[http://oss.xxpay.vip/img/52f29b2d-ff43-4a30-8c7a-acc4710c74a52693173189403764773.png] [pre] 场景八:小张把分支合并到主干 [/pre] 新功能开发完成,体验很好,项目组决定把该功能合并到主干上。 切换到master分支,选择Merge Changes img[http://oss.xxpay.vip/img/f1d7eedd-2d85-43be-b140-40f25d2ec336629881714072327415.png] 选择要合并的分支,点击Merge完成 img[http://oss.xxpay.vip/img/2e6069d4-5f85-4163-aa69-646e4ae807de7761358268602895918.png] --------------------- 原文:https://blog.csdn.net/autfish/article/details/52513465