本文章参考文章:https://www.jianshu.com/p/c74ae40b5127
第一步:新建项目
Github/Gitlab上新建项目:
第二步:配置密钥
1.打开终端:首先输入
$ git config --global user.name "用户"
$ git config --global user.email "邮箱"
2.生成SSH key
首先检查是否生成密钥
cd ~/.ssh 如果返回的ls
有3个文件,则密钥已经生成
如果没有密钥,则通过下列方式
$ ssh-keygen -t rsa -C "邮箱"
生成,生成过程中一路按3次回车键就好了。(默认路径,默认没有密码登录)
生成成功后,去对应目录C:\Users\hyt.ssh里用记事本打开id_rsa.pub,得到ssh key公钥。
3.将公钥复制到SSH Keys
首先找到settings 点击进去之后,找到SSH keys 点击之后将公钥复制到key中,添加Title之后点击Add key,复制完成
第三步:建立本地仓库
1. 初始化本地仓库,更改路径到需要发布的文件夹下,让后执行下列命令
git init //初始化本地仓库
2. 将本地所有文件添加到暂存区,执行下列命令,“.”代表所有文件,也可一个一个添加
git add . //将本地项目的所有文件添加到暂存区
3. 将暂存区文件提交到本地仓库,并添加说明信息
git commit -m "说明信息"
第四步:将本地仓库代码推送到Github/Gitlab远端仓库
1. 建立本地仓库和Github/Gitlab远端仓库的关联,执行下列命令,git remote add origin 后面部分去自己项目下复制
git remote add origin git@gitlab***************.git
在这一步时如果出现错误:fatal:remote origin already exists,先清除一下关联关系:
git remote rm origin
再重新关联:
git remote add origin git@gitlab***************.git
2. 检查关联是否建立且正确,执行下列命令(可忽略这一步)
git remote -v
3. 将代码由本地仓库上传到 GitLab 远端仓库,依次执行下列命令
获取远程与本地同步合并:
git pull --rebase origin master
如果远程库不为空必须做这一步,否则后面的提交会失败,不加这句可能报错,原因是 GitLab中的 README.md 文件不在本地仓库中,可以通过该命令进行代码合并。
把当前分支master推送到远程:
git push -u origin master
执行完之后如果无错误就上传成功了,需要提示的是这里的 master 是 GitLab默认的分支,如果你本地的当前分支不是 master,就用git checkout master命令切换到master分支,如果你想用本地当前分支上传代码,则把上面两条命令里的 master 切换成你的当前分支名即可。
如果推送不成功,先pull一下,如果报错fatal: refusing to merge unrelated histories,说明本地和远端的git库是两个 根本不相干的 git 库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并。解决方法:强制合并:
git pull origin master --allow-unrelated-histories
后面加上 --allow-unrelated-histories ,意思是把两段不相干的分支进行强行合并,然后再将代码推送到远端。