前提环境,配置好IDEA的Git环境(连接远程仓库,以github为例),顺便建立一个分支branch。项目中随便创建一个txt文件,本文为gittest.txt。

1.首先进行commit操作(以整个项目提交为例)

       

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_远程仓库

      点击后出现如下窗口

                 

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_txt文件_02

commit命令并不提交到远程仓库

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_git_03

2.接下来依旧以整个项目右键进行push操作

     

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_远程仓库_04

      出现如下窗口,选择刚刚写的commit messesy消息,进行提交。

                      

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_git_05

提交成功后对比远程仓库内容,发现多了一个gittest.txt文件(如下图),并且可以看到第一步时提交的描述信息。

说明push是提交的远程仓库的命令。

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_远程仓库_06

3. 切换到分支branch(IDEA2018右下角,右键),切换成功后圈圈出处会变化到分支名称

                                 

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_git_07

     切换后发现分支branch没有主分支的gittest.txt文件(如下图,初始主分支与分支统一内容)。这里有一个有意思的地方,当你切换时打开项目本地目录会发现目录只有一个但与git一一对应,你打开的是哪个,目录就有哪些内容,目录还是那个目录。

                                                

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_git_08

4. 进行pull命令尝试拉取项目,发现没什么变化,说明拉取的只是这个分支。

5.  尝试进行合并分支操作(Merge Changes),看看有什么效果。

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_远程仓库_09

    点击后出现如下图窗口,发现有刚刚主分支是的操作,第一个是本地的,第二个是远程(remotes)的。两个都勾选看看效果。

                                             

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_txt文件_10

 

此时发现项目出现gittext.txt文件,Merge Changes说明可以合并主干的内容到分支。

                                                                

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_txt文件_11

此时再对比远程仓库分支的内容发现并没有这个文件,说明只是合并的本地的,此时再进行commit操作看看。发现说没有改变(如下图),此时明明有改变啊,多了个文件啊!!!看看是不是切换错了,发现没有,那就两边切换看看。发现再切换回来时确实是改变了的,但git无法识别,可能是个BUG。我们修改文件内容,发现可以了。

                                                                 

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_txt文件_12

    那这到底是说此时是主干还是分支(此时IDEA显示的是分支)?验证一下,我们修改文件内容为“验证下此时到底是主干还是分支,此时IDEA显示的是分支。”,进行提交到远程仓库看看有什么变化。先commit再push。别忘了push到远程仓库

                                               

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_git_13

        经过验证发现是分支,主干内容并没有变化,那就没错了。

                           

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_git_14

     忘了尝试内容没改变是直接push能不能成功了。那就回到主干在创建一个Gitest2.txt文件进行前面几步操作验证下。经过验证发现可以。

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_git_15

      那我们进行一个在进行分支合并到主干的操作。切换到主干(此时没有提交Gitest2.txt到远程主干),我们修改下这个Gitest2.txt文件的内容并commit提交,不提交切换会出现冲突。再点击Merge Changes合并发现出现冲突,对冲突进行处理

                              

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_txt文件_16

               操作示意图如下:

idea如何每次提交项目时需要输入git仓库密码 idea用git提交代码_远程仓库_17

冲突处理完后,需要commit, 这里有个情况,Gittest文件也有冲突但是没有报,他自己修改了。我也不知道什么情况。然后就可以push提交到服务器了。但不建议这样做先。理由看下别人说的。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

附上别人写的git解决冲突的部分内容:

()

git的合并中产生冲突的具体情况:
  <1>两个开发者(分支中)修改了同一个文件(不管什么地方)
  <2>两个开发者(分支中)修改了同一个文件的名称
  注意:两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。

关于冲突的个人心得

  多人协作开发的时候,如果出现了你没有改过的文件跟你冲突了,一定要去找到当事者,说清楚是如何冲突的;

  然后协商解决,千万不要擅自拉别的分支去试图解决冲突,或找文件覆盖,更或者以自己的文件为准.

  同时记住,解决了之后,要add 和 commit 最后push.为保证万无一失,最后在冲突都解决之后,重启项目;

  保证至少不会有立即奔溃的现象发生.然后才去提交,push.

  提交的时候,一定要保持清醒,先搞清楚自己要提交的文件之间的关系,然后再提交,这样才不会有文件缺失的问题,造成奔溃.

  如果任务比较多,又开了多个分支,分别进行开发,再次强调,一定要清楚自己在各个分支上做了什么,自己要提交的是什么.最好是能做个详细的笔记,没有把握宁愿不要去提交到生产服务器.

  提交代码的时候不要走神,因为这是一个神圣的时刻!

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

     

 

6. 回退操作:

       回退是可以回退,就是Push不了,每次都会是项目不一致。网上查的文章都不行。先不写了。写的有点乱就这样了。