gitpush前一定要切换到对应分支吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitpush前一定要切换到对应分支吗相关的知识,希望对你有一定的参考价值。
您好,在使用gitpush之前,是需要先切换到对应的分支的。这是因为gitpush是用来将本地仓库的更改推送到远程仓库的,如果没有先切换到对应的分支,推送的更改可能会被推送到错误的分支,从而导致数据的丢失或者出现错误。因此,在使用gitpush之前,一定要先切换到对应的分支,这样才能确保推送的更改能够被正确的推送到远程仓库。 参考技术A 是的,gitpush前是一定要切换到对应分支的,这样才能通顺运行gitpush,不然会造成卡顿和死机。 参考技术B 一定要切换到对应分支。git pull能正常工作的原因是 这个分支的父分支 是有对应远程分支的。
比如你爸有车,如果你想用,有两种方法
1.把自己merge到父分支中,在父分支中push,相当于搭你爸的顺风车。
2.自己在远程也有一个对应的分支,push -u ,相当于自己买个车 参考技术C 有时候我们想把当前仓库A的一个指定分支1 推给 另一个仓库B的另一个指定分支2,
可以通过2个主要命令git remote xxx 和 git push newOrigin 当前分支:目标分支 完成。
示例
假设有2个仓库uu和uunew
uu: 当前仓库 uunew: 目标仓库
我们想把当前仓库【uu】的指定分支【R1_2212-flw】
推给
另一个仓库【uunew】的指定分支【R1_2212】
具体步骤如下:
1、git pull # 在当前仓库操作:更新代码库
2、git remote # 查看当前仓库origin 只有一个,接下来我们要add 另一个仓库的origin
3、git remote add newOrigin master # newOrigin:远程仓库名称,可以随便起个方便记忆的, 目的是在本地添加一个新的远程连接
例如:
git remote add uunew R1_2212
git remote add uunew master
uunew后面是uunew的一个分支,可以指定为master或你要push的目标分支,都可以。 执行完命令后可以再次通过 git remote 查看现在的有几个origin,大家可以自行试一试。
4、git remote set-url newOrigin xxxx.git # 这里是新加个远程连接 设置上目标仓库的url地址
例如(以下以gitee为例):
git remote set-url uunew https://gitee.com/greatoak/uunew.git
5、在A的本地仓库 git push newOrigin R1_2212-flw:R1_2212 # newOrigin 是你想push上哪个远程库,R1_2212-flw 是你想push那个分支,R1_2212 是push到远程的那个分支。
例如:
最好是先切换到要push的当前分支上,然后再push
git checkout R1_2212-flw # 切换到当前分支R1_2212-flw
git push uunew R1_2212-flw:R1_2212 # uunew是另一个仓库的orgin 含义是把当前分支R1_2212-flw 推到 目标分支R1_2212上
注意:
5中命令可能会报错提示新的仓库没有更新,需要在当前分支上先同步目标分支,如果有冲突需解决冲突,之后就可以push了。例如:
! [rejected] R1_2212-flw -> R1_2212 (fetch first)
error: 推送一些引用到 'gitee.com:greatoak/uunew.git' 失败
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。
使用 git pull newOrigin 目标分支 --allow-unrelated-histories 来同步代码
例如:
git checkout R1_2212-flw
git pull uunew R1_2212 --allow-unrelated-histories 参考技术D GIT:是的,在推送代码前,你需要切换到需要推送的分支。如果不切换分支,则不会把本地修改推送到远程分支上。
以上是关于gitpush前一定要切换到对应分支吗的主要内容,如果未能解决你的问题,请参考以下文章