MAC环境下,上传Android项目到Gitlab
创建Gitlab账号
创建一个Gitlab的账号
创建服务器项目
登录进去后,点击 New project
我之前已经创建过项目了,所以是这个界面,如果是新用户的话,可能会有一个引导,跟着走创建项目即可。
在这里创建项目
- 标记为1的是项目名称
- 标记为2的是权限
- 标记为3的是,如果勾选了项目创建时会创建一个README文件(这个地方有个坑),如果不勾选则为空项目。
项目创建成功后,会有一个本项目的URL
这里可以选择SSH协议,和HTTPS协议,建议使用SSH协议。
使用SSH协议,需要添加SSH key。
在搜索框搜索SSH,点击进入SSH key添加界面。
我们先生成一下SSH key,有可能你需要配置多个SSH key,下面会对你有一些帮助,以Gitee,和Gitlab为例
1.生成SSH key
ssh-keygen -t rsa -C "[email protected]"
这个地方是让你输入文件名称,如果不输入直接回车,只会在~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 两个文件,如果你不需要多SSH key的配置,建议一路回车,名称使用默认的,密码不填。
为了区分,我们在第一个回车后设置路径:
Enter file in which to save the key (/root/.ssh/id_rsa):~/.ssh/id_rsa_gitee
这一步是让输入密码,建议不输入,直接回车。
由此我们分别为gerrit和github生成对应的公钥和私钥,完成后的目录
id_rsa_gitee
id_rsa_gitee.pub
id_rsa_gitlab
id_rsa_gitlab.pub
生成成功后,可以使用一下命令查看
cat ~/.ssh/id_rsa_gitee.pub
cat ~/.ssh/id_rsa_gitlab.pub
然后打开.ssh文件目录创建config文件,来管理多SSH。也可以使用命令处理
创建config文件
touch ~/.ssh/config
编辑config文件
vi ~/.ssh/config
添加一下内容
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee
user gerrit
# gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
user git
测试
ssh -T [email protected]
ssh -T [email protected]
如果出现
Welcome to Gitee.com, yourname!
Welcome to Gitlab.com, yourname!
说明成功了
本地项目上传到服务
在项目中使用下面命令,把本地内容推送到服务端,提交之前别忘了add,commit。
git push --set-upstream [email protected]:xxx/xxx.git master
在这一步中可能会出现错误
To gitlab.com:qbb_android/QBBUI.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to '[email protected]:qbb_android/QBBUI.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这是因为我们服务端创建的项目中有一个README文件,而本地没有。
使用下面git命令可以解决
git pull --rebase origin master
git push -u origin master