git在本地项目中指定远程仓库地址并上传
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git在本地项目中指定远程仓库地址并上传相关的知识,希望对你有一定的参考价值。
其实可以有更简单的方法,就是在远程仓库建立仓库,然后用 git clone 仓库地址 命令来将远程仓库克隆到本地,然后再把我们之前的项目拷贝到该目录中,然后就是传统的git add git commit git push 等等。
这种情况很简单,但是个人觉得不是很专业,因为这样之后,我们本地可能又要重新import一次进入IDE(集成环境,但这都不是主要原因)。更重要的是,我们直接clone下来,其实git的仓库环境都已经有了,
我们就不会再自己动手去匹配本地仓库和远程仓库的关系,然后久而久之,可能就不是很利于新手去了解git的本地和远程的关系吧。
1建立远程仓库,可以github 码云都可以 把地址啥的记住就行。我创建的地址是:
https://git.oschina.net/GumpDai/boot.git 里面的文件我全删掉了,是个空仓库
当然最好把远程仓库中生成的.gitignore readeMe 什么的都删掉,防止冲突
2用IDE建立项目,本文这里用的是idea,这个软件非常好用。项目建好之后,我们其实就想把项目上传到刚才新建的远程仓库中来让别人使用
1 利用git init 在项目跟地址来初始化本地仓库,这个时候项目就已经被git管理了。在项目根地址我们就可以看见.git文件夹(可显示隐藏文件夹),那里面保存的就是本地仓库的内容,git是分布式的,就是我们
本地仓库可以拥有一远程仓库和本地仓库的代码。
2 添加 .gitignore 文件,并在里面配置好要忽略上传的全部文件,这里可以自行百度。如果是maven项目 ,除了src,pom.xml 以及 .gitignore文件,其他的都应该加进去(这个懂了就可以自己添加了),我
先分享我的.gitignore文件
3我们已经可以使用git status 或者 git add git commit 等等将 项目代码提交到本地仓库中 。
但是 当执行git push的时候,
出现了这个,总结一下就是,没有配置能够接收我们项目代码的远程仓库,仔细想想,刚才我们建立的远程仓库的地址还没用过对吧?
4 给当前项目添加一个远程仓库,其实一个项目可以有多个远程仓库,就是我们可以把代码推送给不同的仓库,只要我们本地告诉git我要推送到哪里,并且我们本地有那个仓库的推送权限,
就可以把代码推送上去。
只是我们一般开发的时候只使用一个仓库,一般命名叫做 origin(根源)。那我们也就在本地添加吧 git remote add origin https://git.oschina.net/GumpDai/boot.git 这个命名就是
让本地知道我们有了一个远程仓库,我们把他的名字叫做 origin地址是 https://git.oschina.net/GumpDai/boot.git
。然后我们再来push试试,按理说,我们已经告诉git 远程仓库的地址了,那么应该可以直接把代码传上去了吧。
然而
还是这个问题,再看一下,and then push using the remote name git push <name> 来push,也就是说,我们push的时候要告诉git ,我要推到哪一个远程仓库,
这里原因之前说过,就是我们可以保存多个remote远程仓库的地址在本地,不同的名字表示不同的仓库。我们现在需要把我们当前的master分支设置默认推送的远程仓库,
不然以后推送或者更新都要指定远程仓库地址,太麻烦。
命令如下:git branch --set-upstream master origin/master
当前我们本地的分支默认是master ,远程仓库建立的时候默认也有一个master ,本地的master分支只有一个一个, origin/master 的意思是,我们要推送到
名称为orgin 的远程仓库下的master分支里。我们试试
执行之后发现:
原因就是说:如果远程仓库已经存在,我们需要更新一下,因为现在本地仓库不能确认那个远程仓库是否存在,或者说是否有冲突,
就是同步和验证的过程,在平时使用svn或者git都一样,需要先更新再上传
已经更新成功,然后再添加本地仓库和远程仓库的对应关系
添加成功对应关系,然后再push
又发生了什么?这个原因如果你们是建立的新仓库是不会发生的,我是使用的老的远程仓库,就是手动把老的仓库中的代码删掉了,
但是这些在git中都是有log的,所以导致和我本地的log有冲突,我本地的log是新的。所以这里需要执行一个命令,允许将那些
冲突的log merge掉,如下
最后执行
git pull origin master --allow-unrelated-histories
最后终于push
远程仓库
以上是关于git在本地项目中指定远程仓库地址并上传的主要内容,如果未能解决你的问题,请参考以下文章