实际开发过程中,经常碰到本地demo的项目,后面慢慢成形,给team演示后大家觉得可拓展可落地。立项后就需要把代码递交到公司服务器(卖身了,哈哈),开始协同开发喽,那如何把本地仓库的代码推送到远程仓库(或者具体某个分支)呢?
好问题!!!
一、建立远程新仓库(默认master分支)或者远程旧仓库上的新分支(例如:rv_chessRobot)
二、确保本地仓库的公钥在远程仓库的公钥列表中
有钥匙,才可以打开远程仓库的大门嘛,如果没有,可如下操作:
1)本地仓库,生产公钥
$cd ~/.ssh
$ssh-keygen -t rsa -f ~/.ssh/别名 -C “邮箱地址“
2)复制生成的对应公钥文件里的内容
$cd ~/.ssh/别名.pub
3)把公钥添加到远程仓库的公钥列表中
二、本地git连接远程仓库并推送
1)远程新仓库
git remote add origin git@github.com:name/repo.git 添加远程索引
git push -u origin master 把本地master 推送到远程
2)远程旧仓库里的旧分支,如master分支
查看现有仓库的所有的远程代码库地址:git remote -v
删除已经原有的origin索引 :git remote remove origin
并再次使用git remote -v 确定
设置origin新的索引地址:git remote add origin git@github.com:name/repo.git
将本地 master 分支,推送到远程仓库的master分支:git push origin master
3)远程旧仓库里的新分支,如rv_chessRobot(前面第一步已经建立了)
设置origin新的索引,步骤同上
本地仓库上新建一个与远程仓库上同名的分支:git checkout -b rv_chessRobot
推送本地仓库分支到远程仓库分支:git push origin rv_chessRobot
注意:
1. 默认本地分支推送到相同远程分支
2. 推送时,有时候加参数-u,设置上游(对于每个最新或成功推送的分支,可添加上游引用)
git push -u origin master
以后即可直接用git push 代替 git push origin master
3. 远程仓库分支上原有其他提交,此时本地推送会冲突,得强制覆盖合入,加参数--force
git push --force origin master