zoukankan      html  css  js  c++  java
  • Intellij 中的git操作 转!

    http://blog.csdn.net/lovesummerforever/article/details/50032937

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

  • 相关阅读:
    第十四周 Leetcode 315. Count of Smaller Numbers After Self(HARD) 主席树
    POJ1050 To the Max 最大子矩阵
    POJ1259 The Picnic 最大空凸包问题 DP
    POJ 3734 Blocks 矩阵递推
    POJ2686 Traveling by Stagecoach 状态压缩DP
    iOS上架ipa上传问题那些事
    深入浅出iOS事件机制
    iOS如何跳到系统设置里的各种设置界面
    坑爹的私有API
    业务层网络请求封装
  • 原文地址:https://www.cnblogs.com/sekai/p/5939969.html
Copyright © 2011-2022 走看看