主页
文章
分类
标签
关于
Git的远程连接与多人合作
Git入门
发布于: 2025-3-12   更新于: 2025-3-12   收录于: Git
文章字数: 776   阅读时间: 2 分钟   阅读量:

远程仓库

远程信息

多人合作之前,我们需要看看是否处于同一个远程仓库下:

1
2
3
4
5
6
7
8
# 查看远程库的信息
git remote
# origin

# 显示更详细的信息
git remote -v
origin  git@github.com:MJYEEE/blog.git (fetch)
origin  git@github.com:MJYEEE/blog.git (push)

推送和拉取远程仓库

当我们拉取一个新远程的仓库时,默认情况下我们只有master一个分支(除非远程仓库里本来就有多个分支),这个时候我们如果我们本地仓库新建了一个分支dev,那它会不会在远程仓库上呢?肯定是不会的,我们可以用git pull 或者 push来试一下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> dev

$ git push
fatal: The current branch dev has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin dev

当当前分支没有和远程分支建立连接时git pullgit push都会先提示我们与远程分支建立关系,现在我们先把当前分支与远程分支建立连接:

  • 第一种情况:远程分支上没有我们当前的分支,我们需要用push的方式推送上去
1
2
3
4
5
6
7
8
9
$ git push --set-upstream origin dev
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag f54a6ba7
remote: Create a pull request for 'dev' on Gitee by visiting:
remote: https://gitee.com/mjyee/icrcs/pull/new/mjyee:dev...mjyee:master
To gitee.com:mjyee/icrcs.git
 * [new branch]      dev -> dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.
  • 第二种情况:远程分支已经有了我们当前的分支,我们可以直接连接:
1
2
$ git branch --set-upstream-to=origin/dev dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'

这样我们就能在本地的dev分支推送到远程的dev分支上了。

当我们想取消本地分支与远程分支的连接只需要unset即可:

1
git branch --unset-upstream
  • 第三种情况:直接拉取远程的分支
1
git pull <remote> <branch>

这种情况下,拉取的分支本身便建立有连接。

简单多人合作

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

  • 首先,可以尝试用git push origin <branch>推送自己的修改,如果推送成功则无事
  • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并
  • 如果合并有冲突,则解决冲突,并在本地提交
  • 没有冲突或者解决掉冲突后,再用git push origin <branch>推送就能成功