贵阳网站设计阳光创信好吗,软件开发相关文档,中国十大电商排行榜,影视网站建设的总体目标把学习过程中遇到的Git问题汇总如下#xff08;后续学习遇到问题会及时更新此专栏#xff09;#xff1a;
Git原理及常用命令小结——实用版#xff08;ing......#xff09;、Git设置用户名邮箱-CSDN博客
解决git每次push代码到github都需要输入用户名以及密码-CSDN博客…把学习过程中遇到的Git问题汇总如下后续学习遇到问题会及时更新此专栏
Git原理及常用命令小结——实用版ing......、Git设置用户名邮箱-CSDN博客
解决git每次push代码到github都需要输入用户名以及密码-CSDN博客
在VScode中使用Git将本地已有文件夹提交到Github仓库以便于使用版本控制进行项目开发-CSDN博客
Git使用—把当前仓库的一个分支push到另一个仓库的指定分支、基于当前仓库创建另一个仓库的分支并推送到对应仓库(mit6828)-CSDN博客
目录
背景提示
将当前仓库的一个分支push到另一个仓库的指定分支
直接基于仓库rep1中的某个分支创建新的分支并将其推送到目标仓库rep2
补充
参考链接 背景提示 最近打算做一下mit6.828的项目这个仓库使用问题困扰了自己一段时间由于6828官方提供的代码有很多分支克隆下来后如果不解除和原有仓库的关联可以正常使用但自己修改代码无法提交并且不能使用自己的仓库。我希望的是将克隆下来的代码作为自己的一个仓库推送到自己Github网站随后基于Git进行代码分支管理、开发。问题将克隆的代码和官方仓库解除关联
git remote rm origin 执行此操作后本地代码显示没有任何分支无法切换到对应目录无法进行后续操作自己探索一下。需要实现的功能是创建一个自己的仓库当需要使用到对应分支时将官方仓库对应分支拷贝到自己仓库对应分支。
将当前仓库的一个分支push到另一个仓库的指定分支
下面内容转载自GIT操作把当前仓库的一个分支push到另一个仓库的指定分支_gitpush到指定branch-CSDN博客
有时候我们想把当前仓库A的一个指定分支1 推给 另一个仓库B的另一个指定分支2
可以通过2个主要命令git remote xxx 和 git push newOrigin 当前分支:目标分支 完成。
示例 假设有2个仓库rep1和rep2
rep1当前仓库 rep2目标仓库
我们想把当前仓库[rep1]的指定分支[branch1]
推给
另一个仓库[rep2]的指定分支[branch2]
具体步骤如下
1.在当前仓库操作更新代码库
git pull
2.查看当前仓库origin只有一个接下来我们要add另一个仓库的origin
git remote
or
git remote -v(可以看到origin的url)
3.newOrigin远程仓库名称可以随便起个方便记忆的目的是在本地添加一个新的远程链接
git remote add newOrigin mastereggit remote add rep2 branch2
or
git remote add rep2 master rep2后面是rep2的一个分支可以指定为master或你要push的目标分支都可以。执行完命令后可以再次通过git remote or git remote -v查看现在有几个origin大家可以自行试一试。
4.为新加的仓库设置上目标仓库的url地址以下以gitee为例
git remote set-url rep2 https://gitee.com/greatoak/rep2.git
5.在A的本地仓库进行git push
git checkout 本地分支名
git push 远程主机名 本地分支名:远程分支名eg:git checkout branch1
git push newOrigin branch1:branch2 newOrigin是你想push上哪个远程库branch1是你想push的那个分支branch2是push到远程的那个分支。
注意push前先切换到要push的当前分支上然后再push。 使用上述命令完成操作后在仓库rep2拉取创建的推送的分支的最新代码时会报错git pull fatal: 拒绝合并无关的历史
查了一下这个原因参考 当你执行 git pull 并遇到错误 fatal: 拒绝合并无关的历史 时这是因为本地分支和远程分支之间的提交历史并不相关即它们没有共同的祖先提交。这种情况通常发生在以下几种场景 你初始化了一个新的本地仓库然后试图从一个远程仓库中拉取代码。本地仓库和远程仓库之间没有任何共同的提交历史。远程仓库和本地仓库是由不同的历史创建的比如远程仓库是一个独立创建的项目而你的本地仓库是从零开始的 在pull命令后添加 --allow-unrelated-histories参数解决
git pull origin feat/util --allow-unrelated-histories
直接基于仓库rep1中的某个分支创建新的分支并将其推送到目标仓库rep2 通过以上操作能够实现自己想要的效果但又思考了一下如果我每开发一个对应的分支都需要关联新的分支到源仓库rep1随后从源仓库rep1将新的分支推送到目标分支岂不是太麻烦了。 直接在关联了目标仓库Git的代码中基于想要的分支创建新的分支并将其提交到目标仓库中。实现方式参考乳如下
1、查看源仓库和目标仓库
wtwt:~/Backend/mit6828/codes/xv6-labs-2020$ git remote -v
origin git://g.csail.mit.edu/xv6-labs-2020 (fetch)
origin git://g.csail.mit.edu/xv6-labs-2020 (push)
wt_rep gitgithub.com:Wwt15537588047/mit6828.git (fetch)
wt_rep gitgithub.com:Wwt15537588047/mit6828.git (push)上述仓库origin是mit6.828官方仓库wt_rep仓库是基于第一种实现方式关联的目标仓库。
2、查看远程源仓库和目标仓库的分支
git branch -a
3、切换到对应分支
git checkout origin/lazy 源仓库的对应分支。
4、 基于源仓库的某个分支创建新的分支
git checkout -b new-branch
5、提交本地修改
git add . 和 git commit -m new-branch
6、将新分支推送到目标仓库我这里是wt_rep
git push wt_rep new-branch。
7、设置跟踪分支这一步我直接跳过了
git push --set-upstream wt_rep new-branch 以上操作完成后基本实现了基于源仓库rep1的某个分支创建新分支并将新分支推送到目标仓库rep2。此时使用命令git branch --remote从目标仓库拉取所有远程分支并不会出现刚刚新创建的分支。 按照以下命令从配置的远程仓库拉取所有的分支前两条命令只需要执行一条即可
git fetch origin #从配置的远程仓库origin拉取所有分支
git fetch --all #从配置的所有远程仓库拉取分支
git branch -a #获取所有远程仓库和本地仓库的分支的信息
补充
git remote -v #获取所有远程仓库的信息
git branch #获取所有本地分支
git branch -r #获取所有远程分支
git branch -a #获取所有远程分支和本地分支
git fetch --all #当维护多个远程仓库时并且希望获取所有远程的更新时使用
git fetch origin #仅仅维护一个默认仓库origin并希望获取origin仓库的更新时使用
git remote prunge origin #清除本地缓存并重新获取远程分支 其他Git相关操作请参考笔者其他文章
参考链接
GIT操作把当前仓库的一个分支push到另一个仓库的指定分支_gitpush到指定branch-CSDN博客
git pull fatal: 拒绝合并无关的历史-CSDN博客