Git中抓取分支,多人协作开发,一台电脑模拟你和你同事向远程库推送自己的提交

    xiaoxiao2021-04-17  30

    这里主要讲多人协作开发时候到底是怎么协作的,是一块比较重要的部分。

    多人协作时,大家都会往master和dev分支上推送各自的修改。

    下面是一个例子,写的比较细致,应该都可以 看懂。

     

    补充:比如我们在learngit库中有一个文件test.txt

                  我们需要git add test.txt

                                          git commit test.txt –m  ‘commit test.txt’

          最后我们使用命令   git push origin master

            这时就会将我们修改的test.txt文件上传到远程库中,就是推送到自己的GitHub上了

       注意一定先add  然后commit 最后在git push…  少一步都不可以。

    一个电脑要如何去尝试多人合作的实战,首先先创建另外一个文件目录test,具体请仔细看下面操作

     

    1、cd test 进入到test文件那文档操作(记得事先在和learngit文件的位置创建一个test文件用来模拟你的同事)

     

    2、就会发现出现了这个    ~/test,说明已经进入test文件中

     

    3、然后我们用命令git clone git@github.com:mangoyi/learngit.git

       这样我们就可以clone一份learngit库到我们的test文件中,

     

    4、cd learngit 用这个命令进入到master分支

    PS:

    这样便可以操作了也就是说在我们test文件里面的learngit也和远程库连接在了一起,我们就可以通过修改test.txt然后push到远程库中,但是注意我们现在的操作是在test 文件夹里面的leargit文件中,和test同一级目录里面还有一个我们learngit文件。

    在这里我们要知道我们现在是在master分支,而我们模拟的是想在dev分支上开发,所以就必须远程创建origin的dev分支到本地,

    一、于是我们用命令

        git checkout –b dev origin/dev  会报错

    解决方法:http://blog.csdn.net/weichuang_1/article/details/48437911

    //我们来创建一个新的本地分支dev

    git checkout –b dev     

     

    //重置它的起始点

    git reset –hard origin/dev        

    // origin/dev 意味着origin索引的远程仓库有dev分支(也就是我们GitHub中对应的库里有我们的dev库)

     

    /*也就是理解成如果远程仓库中没有origin/dev这个分支的话,

      你只需要创建一个本地分支dev,然后将它推送到远程仓库

    */

     

    git push –u origin dev

     

    //这样本地的分支dev和原创跟中的分支origin/dev之间建立一个联系

    到这里 一 的问题已经解决了。

    二、现在我们在dev分支上创建一个文件hello.py

        在hello.py上添加内容

         print('helloworld')              //由于本人手误所以hello.py里面多了一点内容,但是不影响我们这个例子(mistake)

    PS:这里给大家补充一个: vi hello.py 命令

    输入之后就可以修改hellp.py这个文件里面的内容了 

    修改完之后按Esc键 

    然后会在最左下角输入 :wq 

    这样就关闭现在这个页面出现之前的命令行了

    我们将dev分支上

    通过命令 git add hello.py

             git commit –m ‘addtest/learngit/hello.py’

             git push origindev    //推送到远程库分支

          

           (相当于一个小伙伴)另外一个test目录下的分支已经推送了他的提交。

    --------------推送完在我的github上面可以看到dev分支的推送内容  

     (mistake说到的, print('helloworld') 下面多了几行,因为手误输进去的)

    补充一下:此时你在的路径是

    //返回返回上一级 命令cd .. (cd和后面的.. 之间有一个空格)

    //在cd learngit   到达我们自己的仓库master分支。 

    三、

    这个时候已经不是在模拟你的小伙伴了而是你自己,

    你已经开始用自己的leargit库了,因为你的小伙伴已经推送到github它的提交了。

    1、在这个库创建一个dev分支,并且分支里面添加hello.py文件,

         这里因为手误在上面又添加了一些多余内容(mistake2),在下面的操作我们会看到。但是不影响案例

        (本人刚从廖雪峰老师那里学习总结出来的,怕自己忘记,所以乘热打铁,记录下来,所以有些小误差)

    2、在这里我们

        git add hello.py

        git commit –m ‘add utf-8’

        git push origin dev   //将本地仓库dev分支推到远程仓库的dev

    PS:

    发现推送失败:因为你的模拟推送(相当于你的小伙伴)的最新提交和你试图推送的提交有冲突,git提示我们,先用pit pull 把最新的提交从origin/dev抓下来,解决冲突在推送

    3、我们使用命令git pull

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

    4、使用git branch –-set-upstream dev  origin/dev  命令设置链接。

    5、再使用git pull    命令成功。(但是合并有冲突,需要解决冲突在提交)

    6、使用git status查看状态

          在使用命令vi hello.py进行修改,解决冲突

    使用vi hello.py 命令之后出现下图,

    这里也就出现了我们的mistake2说到的写了一些多余的内容。

    (print('hello world')是我自己想写进去的,下面都是多余的内容,手误打进去的)

    PS:出现这个命令页面之后,我们进行合并,直接点到那个位置然后合成自己想要的就行了

    7、合成之后,按ESC按钮,然后输入:wq就可以保存并且退回命令行了

    8、  输入命令 git add hello.py

            git commit –m ‘merge and fix hello.py’

            git push origindev     //推送分支到远程库

    推送成功,再次刷新自己的GitHub页面,就可以看出自己的修改推送已经成功了,

    也就是完成了你和你小伙伴的协作了,你用了一台电脑模拟成功了两个人的协作。

      --最后感谢廖学峰老师的教程我是看了老师的教程总结出来的。

    --最后附上廖学峰老师Git教程网址http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

    转载请注明原文地址: https://ju.6miu.com/read-673275.html

    最新回复(0)