在Android Studio 和 Eclipse 的 git 插件操作 \"代码提交\"以及\"代码冲突\"
面向对象:曾经使用过SVN的同学。
(因为Git 它 可以说是双重的SVN (本地一个服务器,远程一个服务器)),提交代码要有两次步骤,先提交到本地服务器,再把本地服务器在提交到远程服务器。
所以连SVN的同学都没有使用过就好好使用一下SVN吧。
a1.代码更新。
在SVN中操作,我们要提交已经修改过的代码前,一定会记住。
"先更新,在提交" (不然你的小伙伴的代码就被你全覆盖了,然后你的小伙伴就会躲在公司墙角画圈圈了)
所以在Git里面操作。也是这样的。不过就多了一个步骤,就是 先更新 "远程服务器 --> 本地服务器",再进行 更新 " 本地服务器 --> 本地代码"。
我们还是上图吧。
Eclipse的操作就是:
1.指向代表的意思是只更新 "远程服务器 --> 本地服务器" 简称(Fetch)
当你更新后,你当前更新的项目与Git Repositories都会有类似一个向下的箭头,这代表“远程服务器”有东西更新到你的“本地服务器 ”,具体数量就是箭头隔壁的数字
2.指向代表的意思是 "远程服务器 --> 本地服务器" 与 " 本地服务器 --> 本地代码" 都执行 简称(Pull)
(当然有先后顺序的,先 "远程服务器 --> 本地服务器" 后 " 本地服务器 --> 本地代码")
这个操作其实是面向懒人把Git当成SVN使用,一步更新,官方也是不推荐这样做,因为这样,你本地代码,可能一下子代码冲突很多,给开发人员带来很多不便。
所以还是老实点,一步步来更新吧。
而在Android Studio的操作就是:
1.不知道怎么回事,在Android Studio就没有两步更新的操作,只有上面两个箭头的操作,都是直接把"远程服务器 --> 本地服务器" 与 " 本地服务器 --> 本地代码" 都执行了,
所以一更新完,你就等着去解决冲突吧。
a2.说完更新,接着说提交代码。
其实经过刚才的更新讲解后,小伙伴们都知道"远程服务器 --> 本地服务器" 与 " 本地服务器 --> 本地代码" 的关系了,
所以提交代码实质上都要走这样的操作 " 本地代码 --> 本地服务器" "本地服务器 --> 远程服务器"
还是上图吧!
其实小伙伴就记住两个词就好了。
Commit : " 本地代码 --> 本地服务器"
Push : "本地服务器 --> 远程服务器"
Eclipse的操作就是:
1.从上面的图中看到,在Git的作出修改,会有一个箭头指向。
然后你右键项目又好,右键箭头文件也好。都是执行commit操作。
去到commit界面
Git 的Commit有种强迫症,一定要你打注释,不然不给你提交。
当你敲入 Commit Message后,Commit 与 Commit and Push 就会可点击了
Commit只是提交到 "本地服务器"
Commit and Push 就两步都会做( " 本地代码 --> 本地服务器" "本地服务器 --> 远程服务器" 有先后顺序,我下次不说了)
后面我就不写了。因为后面的都是敲账号和密码,如果你第一次 Push 代码 的话,才需要敲。
通常 Push 不了,无非就两个问题。
第一。你代码冲突还没有解决,一会 “代码冲突” 说具体讲解
第二。就是可恶的网络问题。(同学。这个我可帮不了你了)
其他的,我暂时没有遇到
而在Android Studio的操作就是:
具体与Eclipse的一样差不多,
就是Git Repositories 变成
通过这里你可以知道你的修改的代码Push 了没有
然后。
接着还是那些填账号密码的操作,就不说了。
b 说说代码冲突吧。
1.先说Eclipse吧:
如果你是先修改完代码还没有commit,在执行Fetch,那你还没有feel到代码冲突。
I.只要你commit到本地服务器,IDE编译器就自动告诉你,已经冲突,要求你立刻解决。
II.如果你比较任性的话。直接想Commit And Push, IDE编译器也会很任性的回复你这样的图
拒绝你Push,说你还有问题没有解决。
但是你已经Commit了,但是又无法Push,
这是你应该要执行一下 Pull ,把 刚才Fetch 的代码植入"本地代码",这时IDE编译器才自动告诉你,已经冲突,要求你立刻解决。
并且把冲突文件标记为一个双向箭头
如图
如果你现在还想执意Push代码,得到的就是下图:
Repository state : Conflicts(简单意思就说:大哥,代码冲突啊,解决后,再提交吧)
然后,你解决后,保存,发现,那个文件还是像下图的那样,无法提交。
这时,应该
执行这样“Add to Index ”的操作,告诉IDE编译器你已经解决冲突了,如下图:
现在你就可以去Commit 也好,Commit And Push 也好,IDE编译器都会通过的(其实告诉你。去吧,骚年!)
2.Android Studio在 在更新代码时,
如果按工具栏的更新图标的话,如果有冲突时 就强制性让你去解决冲突。出现下图
通过点击Merge能清楚知道,你的代码,解决后冲突的代码,服务器的代码
解决后冲突的代码直接覆盖你的本地代码。(或者你点击Close,然后冲突的代码直接跳在你的本地代码,让你在本地代码修改。)
解决完冲突后,就可以Commit和Push了。比Eclipse方便一点点。