在开始前先推一篇关于git使用的博客:https://www.cnblogs.com/bincoding/p/6110763.html

git pull = git fetch + git merge

# git fetch

将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。 fetch会取回所有远端最新分支,可以在fetch记录中查看取回的分支是否有修改。 git fetch 命令:

$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地

如果只想取回特定分支的更新,可以指定分支名:

$ git fetch <远程主机名> <分支名> //注意之间有空格

最常见的命令如取回origin 主机的master 分支:

$ git fetch origin master

# git pull

$ git fetch origin master //从远程主机的master分支拉取最新内容 
$ git merge dev   //将拉取下来的最新内容合并到当前所在的分支中
$ $ git pull <远程主机名> <远程分支名>:<本地分支名>  //将远程主机的某个分支的更新取回,并与本地指定的分支合并
$ git pull origin next  //如果远程分支是与当前分支合并,则冒号后面的部分可以省略

# 关于“主分支push权限被限制,需发起代码合并请求”的推荐做法

# 推荐做法1:
  1. 基于主分支检出为新分支,在新分支上进行开发;
  2. 通过rebase方式变基到主分支;
  3. 变基后解决冲突,推送远端;
  4. 发起合并请求。
# 推荐做法2:
  1. 在本地主分支修改后,贮藏修改代码;
  2. fetch远端分支代码;
  3. 弹出贮藏代码,处理冲突,合并代码;
  4. 然后基于本地主分支,检出并创建新分支,推送新分支到远端; (基于本地分支检出并创建新分支命令:git checkout -b <要创建新分支> <基于的本地主分支>)
  5. 有远端新分支发起合并请求。
Last Updated: 5/24/2021, 10:37:17 AM