• 结论
  • 说明
  • 问题
    • 描述

    结论

    查看远程仓库信息

    1. git remote

    查看远程仓库详细信息

    1. git remote -v

    与远程仓库代码同步

    1. git pull
    2. # git pull = git fetch + git merge

    在本地创建和远程分支对应的分支

    1. git checkout -b branch-name origin/branch-name
    2. git switch -c branch-name origin/branch-name

    将本地分支与远程仓库关联

    1. git branch --set-upstream-to <branch-name> origin/<branch-name>

    推送本地分支到远程仓库

    1. git push origin <branch-name>

    说明

    多人协作的工作模式通常是这样:

    • 首先,可以试图用git push origin <branch-name>推送自己的修改;

    • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    • 如果合并有冲突,则解决冲突,并在本地提交;

    • 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    • 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建。

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

    • 本地新建的分支如果不推送到远程,对其他人就是不可见的;
    • 在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致;
    • 从远程抓取分支,如果有冲突,要先处理冲突。

    问题

    在这里记录多人协作时可能会遇到的问题

    描述

    本地仓库有文件,远程仓库也有文件,但是这两个仓库文件不一致。这时,将本地仓库与远程仓库关联起来,执行git branch —set-upstream-to <branch-name> origin/<branch-name>,提示错误:error:the requested upstream branch 'origin/master' does not exist"

    解决办法:

    若直接执行git pull会提示:refusing to merge unrelated histories

    正确做法:

    1. git pull origin master --allow-unrelated-histories
    2. git branch --set-upstream-to=origin/master master
    3. git push origin master