一篇教你如何玩转git

作者: 茴香豆的第五种写法 | 来源:发表于2018-09-18 15:55 被阅读32次

    1:新建远端项目(以码云为例),得到初始化项目和地址

    2:克隆到本地

    png

    进入本地查看是否成功拉取了文件,这里可以根据git status查看当前所在分支

    png

    3:复制本地的项目到该路径,并提交到master.以android项目为例

    png

    4:提交本地项目到master

    直接提交会提示untracked files:xxx文件,所以这里提交文件之前应该先add file.

    add file 文件名,然后可以看到

    png png

    现在我们来提交到服务器:

    git commit -m "描述信息"

    png png

    到这里后服务器还没有更新到文件,需要最后push推送过去,所以在commit后一定要记得push操作。

    提交时候git push 报错如下:

    png

    从新从资源管理器中输入用户名和密码,再次push就会弹出界面,然后输入正确的用户名和密码即可:

    png

    提交成功后查看服务器是否提交成功:

    png

    这个显示的时间是本地commit的时间并不是push的时间。

    5:更新代码,这里可以手动进入查看页面后在服务端添加代码,然后我们是更新代码。

    png

    本地修改文件后提交,如图:

    png

    这里查看时候发现本地和服务端不一致:

    png png png

    可以通过git status查看本地和服务端的差异,发现test.class被删除了。这里我们要么执行还原,更新到这个文件,要么删除这个文件。首先试试还原代码:

    1:git log查看需要还原到哪个版本

    2:git reset --hard 版本前几位

    然后我们在试试删除服务器端的test.class:

    png

    ==============================================================================================================================================

    上诉说明了基本的语法,下面来创建管理分支。首先先明白git分支的好处,新特性和BUG修改都在不同的分支上进行开发和测试。这样规范了整个软件的开发流程。分支之间的互不影响这种特性可以增加团队合作的效率。GIT分支的另外一个重要特性就是可以合并不同软件仓库(fork)的分支。大体就是:开发团队有一个主软件仓库,开发者可以fork这个仓库,相当于克隆了一个私有的软件仓库,然后开发者就可以在自己的软件仓库中建立分支并开发测试,测试完毕之后,可以向主软件仓库提交merge request,这样新开发的特性就会被合并到主软件仓库的某个分支中。

    1:创建分支


    png

    2:在dev上创建文件并提交,查看master区别

    png png

    这里如果是添加或者修改了多个文件,不需要每次手动去把每个添加进来,可以直接添加文件夹,git add 文件夹,现在切换到master查看文件是否存在:

    png

    可以看到master中没有这个test文件。

    3:合并分支到master


    png

    这个合并操作需要切换回master。

    这里合并成功后,本地有了dev_test,但是服务端没有:

    png

    所以这里还需要git push 到服务器上。

    png

    这里每次需要commit时候先pull更新带最新的代码。

    下面附上git常用语法:

    git config:配置相关信息

    git clone:复制仓库

    git init:初始化仓库

    git add:添加更新内容到索引中

    git diff:比较内容

    git status:获取当前项目状况

    git commit:提交

    git branch:分支相关

    git checkout:切换分支

    git merge:合并分支

    git reset:恢复版本

    git log:查看日志

    ===============================================================

    这里衍生一个遇到过的问题,如图:

    png

    结论:如果master主动删除了c文件,然后分支依然有c文件,并且新增了一个d文件,这个时候我们在master合并new分支代码时候,可以看到c文件是被移除的。

    在合并时候会弹出这样的框:

    png

    1:可以输入i,然后在黄色字体里面写入合并信息

    2:可以直接按Esc,然后输入  :wq 即可

    记得合并后再push一下,以防万一!

    如果分支new里面想跟master保持一致,也可以merge master.

    ==================================================================

    我们再来看另一个问题:

    png

    这个时候,如果master合并到的文件会是怎样的呢?验证如下:

    master

    删除master上这个文件:

    del

    在分支上修改这个类,然后提交.

    png png

    接着切换回master合并:

    png png

    更新到了,这里如果

    是想保留这个文件,就可以git add ,然后提交,如果不需要这个文件可以删除.

    如果是master和分支同时对一个类进行了修改,在master合并时候会出现:

    png

    这个可以看到是这两次差异导致的冲突:

    png

    进入编辑器收到增删,然后在文件右键标记为解决.后台提交代码.

    相关文章

      网友评论

        本文标题:一篇教你如何玩转git

        本文链接:https://www.haomeiwen.com/subject/jfzynftx.html