跳至主要內容

多人协作

AndyBin原创大约 2 分钟

结论

查看远程仓库信息

git remote

查看远程仓库详细信息

git remote -v

与远程仓库代码同步

git pull
# git pull = git fetch + git merge

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

git checkout -b branch-name origin/branch-name
git switch -c branch-name origin/branch-name

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

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

推送本地分支到远程仓库

git push origin <branch-name>

说明

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

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
  5. 如果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,正确做法:

git pull origin master --allow-unrelated-histories
git branch --set-upstream-to=origin/master master
git push origin master
上次编辑于:
贡献者: rumosky
评论
  • 按正序
  • 按倒序
  • 按热度