• git 常用命令--抓取分支-为自己记录(二)


    二:抓取分支:

    多人协作时,大家都会往master分支上推送各自的修改。现在我们可以模拟另外一个同事,可以在另一台电脑上(注意要把SSH key添加到github上)或者同一台电脑上另外一个目录克隆,新建一个目录名字叫testgit2

    但是我首先要把dev分支也要推送到远程去,如下

    (这个图是参考别人的,我的图是works目录的那个)

    接着进入testgit2目录,进行克隆远程的库到本地来,如下:

    现在目录下生成有如下所示:

    现在我们的小伙伴要在dev分支上做开发,就必须把远程的origin的dev分支到本地来,于是可以使用命令创建本地dev分支:git checkout  –b dev origin/dev

    现在小伙伴们就可以在dev分支上做开发了,开发完成后把dev分支推送到远程库时。

     

    小伙伴们已经向origin/dev分支上推送了提交,而我在我的目录文件下也对同样的文件同个地方作了修改,也试图推送到远程库时,如下:

     

    由上面可知:推送失败,因为我的小伙伴最新提交的和我试图推送的有冲突,解决的办法也很简单,上面已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后在本地合并,解决冲突,再推送。

     

    git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:如下:

    我的推送成功了,但是不知道为什么原来作者的没有推送成功(可能因为我两个目录都是我clone下来的把)

     

    以下是作者的后续操作

    这回git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的 解决冲突完全一样。解决后,提交,再push:

    我们可以先来看看readme.txt内容了

    现在手动已经解决完了,我接在需要再提交,再push到远程库里面去。如下所示:

    因此:多人协作工作模式一般是这样的:

    1. 首先,可以试图用git push origin branch-name推送自己的修改.
    2. 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
    3. 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。

     

     

     

     

     

     

     

  • 相关阅读:
    Using NAT between the vCenter Server system and ESXi/ESX hosts (1010652)
    Zabbix监控windows进程连接数
    CentOS yum [Errno 14] problem making ssl connection CentOs
    httpSecurity
    Nginx
    线程基础知识
    SqlServler
    关于数据库索引
    Https的底层原理
    Synchronized
  • 原文地址:https://www.cnblogs.com/XiHua/p/4970761.html
Copyright © 2020-2023  润新知