赞
踩
在做项目的时候,我和同学Z同时拉取了dev分支,并且各自写了不同的功能,创建了新的分支提交到Gitee仓库
于是此时仓库里有:dev; feature/cy/merge; feature/zxy/vue_frontend三个分支;其中feature/cy/merge为我写的,feature/zxy/vue_frontend为我同学Z写的
我希望将同学Z的仓库分支feature/zxy/vue_frontend合并到我的Vscode本地分支feature/cy/merge中,再提交推送到仓库分支feature/cy/merge中。
首先,拉取仓库dev分支的代码为:
git fetch origin dev
git checkout dev
git merge origin/dev
此操作会拉取仓库的dev分支,并且在vscode本地创建一个dev分支
然后切换到我的本地分支(或者从本地dev签出分支为)feature/cy/merge
再使用如下命令将同学Z的修改合并到我的feature/c中:
git merge origin/feature/zxy/vue_frontend
当然如果此时同学z在新分支/feature/z中添加了新的提交,那么你可以使用如下命令将新分支合并到你的本地分支:
git fetch origin feature/zxy/vue_frontend
git merge origin/feature/zxy/vue_frontend
如果同学z在新分支/feature/zxy中添加了很多提交,而你只需要其中的某些提交,那么可以使用如下命令将指定的提交合并到你的分支中:
git cherry-pick <commit-hash>
最后,你可以使用如下命令将你的修改推送到远程仓库中:
git push origin feature/cy/merge
使用"git merge origin/zxy/vue_frontend"时报错:merge: origin/zxy/vue_frontend - not something we can merge
如图:
查找答案:
如果在使用git merge命令合并分支时出现"merge: origin/zxy/vue_frontend - not something we can merge"这个错误,可能是因为你的本地仓库没有这个分支的追踪分支。
你可以使用如下命令来设置追踪分支:
git branch --set-upstream-to=origin/zxy/vue_frontend feature/cy/merge
其中,origin/zxy/vue_frontend是远程分支的名称,feature/cy/merge是本地分支的名称。这个命令会将本地分支与远程分支建立追踪关系,然后就可以使用git merge命令将远程分支合并到本地分支中了。
当然!如果你想同时拉取远程分支并建立本地分支,可以使用如下命令:
git checkout -b feature/cy/merge origin/zxy/vue_frontend
这个命令会从远程仓库拉取origin/zxy/vue_frontend分支,并在本地创建一个名为feature/cy/merge的新分支,同时建立本地分支与远程分支的追踪关系。然后就可以在新分支上进行操作了。
但是很可惜,当我输入git branch --set-upstream-to=origin/zxy/vue_frontend feature/cy/merge
以后又出现了报错:fatal: the requested upstream branch ‘origin/zxy/vue_frontend’ does not exist
如图:
查找答案:
可能是因为远程仓库中不存在origin/zxy/vue_frontend这个分支。
可以使用如下命令查看远程仓库中的分支:
git ls-remote --heads origin
这个命令会列出远程仓库中的所有分支。
当然!如果你想拉取远程仓库中的分支,可以使用如下命令:
git fetch origin <remote-branch-name>:<local-branch-name>
其中,<remote-branch-name是远程分支的名称,<local-branch-name是本地分支的名称。这个命令会将远程分支拉取到本地,并创建一个名为<local-branch-name的新分支。
很可惜!输入git ls-remote --heads origin
以后又报错:
fatal: ‘origin’ does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
如图:
查找答案:
于是我又输入了git remote -v
来查看远程仓库列表
如图:
证明存在远程仓库连接,但是无法显示仓库分支列表,那只可能是没有仓库访问权限了
查找答案:
要查看自己的本地仓库所在的路径,可以使用如下命令:
git rev-parse --show-toplevel
cd命令进入到你本地仓库所在的目录,例如:
cd D:\myrepo
在终端窗口中输入如下命令来配置Git的用户名和邮箱地址:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
其中,将Your Name替换为你的Gitee用户名,将your.email@example.com替换为你的邮箱地址
然后,使用如下命令将本地仓库与远程仓库建立连接:
git remote add origin <remote-url>
其中<remote-url是远程仓库的URL地址。
此时查看发现多出了拥有访问权限的origin远程连接,并且可以查看该远程仓库的分支
如图:
最后再跟最开始一样操作即可修改合并分支。
(需要注意的是,如果你和你的同事在同一个文件的同一行进行了修改,那么Git可能会提示你合并冲突,需要手动解决冲突后再提交。)
如果你查找远程分支显示存在,连接权限也确认无误,依然出现:
merge: origin/zxy/backend - not something we can merge这种问题的话,那么请输入:
git fetch
该操作可以从远程仓库检索最新更改。
我们在创建了很多新的本地分支以后会发现太多了,需要删除,这时候可以通过终端输入git代码和图形界面操作执行:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。