GIT命令关联本地到远程仓库详记

3,128 阅读3分钟

最近我在本地用脚手架新建了个项目vue-cli3.0-typescript,开发完成后要传到github上新建的空项目vue-cli3.0-typescript上,虽然以前也这样干过,但是时隔太久早已忘却具体操作,再次操作依旧各种报错,索性好好整理一下。

本地代码关联到远程有两步,首先是本地仓库关联到远程仓库,然后是本地分支关联到远程分支。

根据远程仓库是否存在要关联的 master 分支分为两种情况:

情况1:远程仓库已经有 master 分支(若在 github 仓库新建仓库勾选了【Initialize this repository with a README】则会自动建立 master 分支)

  • 首先保存本地文件
git add .
git commit -m 'test'

  • 查看本地和远程所有分支:
git branch -a

此时只有本地一个master分支。。。

  • 关联本地仓库到远程仓库
git remote add origin git@github.com:AMrainman/vue-cli3.0-typescript.git

注意关联远程仓库之后需要先git pull拉一下,会把远程仓库的分支记录拉到本地,否则本地没有远程的分支记录没办法关联!

然后再git branch -a发现本地已经存在远程分支remotes/origin/master,这时候就可以按照上面git pull时的提示执行下一步关联本地分支到远程分支了。

  • 关联本地分支到远程分支
git branch --set-upstream-to=origin/master master

关联之后再执行git pullgit push命令就能成功了。

情况2:远程仓库还没有 master 分支(若在 github 仓库新建项目时候没有勾选【Initialize this repository with a README】选项则没有 master 分支)

这种情况比较简单粗暴:(这次是本地的git-test仓库关联到 github 的git-test仓库)

  • git add .git commit -m 'test'之后,便关联本地仓库到远程仓库:
git remote add origin git@github.com:AMrainman/git-test.git

  • 然后git pull拉取远程分支记录,发现并不存在毛线的master分支 :

此时若按照提示执行关联远程分支的操作便会发出警告:

git branch --set-upstream-to=origin/master master

但是警告种提示远程无master分支,可以直接强推(把本地整个分支推到远程):

git push -u origin master

最喜欢强推了,成功~~

总结

情况 1 ,存在远程分支的条件下,执行如下代码:

git add .
git commit -m 'test'
git remote add origin git@github.com:AMrainman/vue-cli3.0-typescript.git
git pull
git branch --set-upstream-to=origin/master master

情况 2 ,不存在远程分支的条件下,执行如下代码:

git add .
git commit -m 'test'
git remote add origin git@github.com:AMrainman/git-test.git
git push -u origin master

另外,如果本地仓库已经有关联的远程仓库,需要换个关联的仓库,则可以先把当前关联的远程仓库地址删除git remote remove origin,然后再按照情况 1 或情况 2 操作。也可以直接执行git remote set-url origin git@github.com:AMrainman/git-test.gitorigin的远程仓库地址换掉,然后强行允许没有关系的分支合并git pull --allow-unrelated-histories