使用GitLab 存储代码在公司自己搭建的服务器上面
- 生成
SSH key - 注册
GitLab账号 - 配置
Mac Host GitLab提交代码- 使用
Git-Tower
1.生成ssh key
在终端输入
ls -al ~/.ssh
检查本地是否有ssh key,会出现两种情况。
第一种情况终端出现id_rsa_pub 、 is_rsa文件,表示SSH key已经存在。
第二种情况终端没有出现上述文件,表示该电脑没有配置SSH Key,在终端种输入以下命令:
ssh-keygen -t rsa -C "你的注册GitLab邮箱"
当终端出现以下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home_path/.ssh/id_rsa):
可能会让你输入你的开机密码。 再次输入
ls -al ~/.ssh
看到 id_rsa_pub、id_rsa即表示获取完成。复制pub 粘贴到GitLab 的SSH中去。
pbcopy < ~/.ssh/id_rsa.pub
Title随便填写,直接在Key中粘贴刚才复制
id_rsa_pub完成key的配置
2.注册GitLab 账号
一般都是公司内容已经帮你注册好,分配给你,或者你提供邮箱就可以添加进去。
配置 Mac Host
前往 -> 前往文件夹 ->(输入要前往的文件夹)
/private/etc/
在文件夹中找到Host,复制一份到桌面、配置host。
特别提醒:左边为(10.2.5.488)服务器域名,右边为你要替代的域名(a1244.comes.cn)
把修改好的host 文件再拖入刚才的文件夹中,替换原来未配置的文件即可。还可以用SwitchHost!工具来配置
3.GitLab 提交代码
首先测试是否连接服务器成功
ssh -T git@10.1.5.100 //公司服务器
或者
ssh -T git@gitlab.com //使用gitlab服务器
连接成功了。
特别提醒:记得要管理员开权限不然会提示(`Permission denied`)没有权限访问
先clone 一份仓库代码
cd 当前你创建的放置clone 代码的文件夹
git clone 仓库地址
表示clone 成功了
下面试试提交更改的代码
cd /Users/hwxc_ios/hwxc_app/iOS
cd 到最底层的文件夹(clone下来的当前文件夹)不然无法使用git命令
git add .
git commit -m "提交说明"
git push -u origin master
4.Git-Tower 使用
由于是公司自己搭建的GitLab 仓库,
Host 记得添加http://
如果是个人的本地项目则只需要通过下面方式就可以获取
Personal Access Token![]()
在gitLab中复制
git@gitlab.com:xxxx.git地址即可
如果是个人账号登录,则登录Git-Tower在以下界面。
2021-05-24 14:23:49 更新 Git-Tower简单使用
1.创建分支
拖动main到Branches 既可以创建新的分支,合并分支先CheckOut到目标分支,选中要合并的分支,点击Bar上的Merge选择需要合并的分支
2.创建远程分支
在gitLab中创建远程分支,通过Tower中 Origin的 Fetch操作,获取到远程分支,选中同步到的远程分支,右键选择创建分支即可在本地创建当前远程分支下的本地分支。
4.远程分支的合并
远程分支合并,一般采用本地分支合并,最后提交到单一远程分支,也就是说提交到你的目的的分支上比如main,release ,dev等
5.stash
当前设置的Stash只针对当前的分支,如果有些功能没有完成但是又要进行其他的开发,不方便提交的时候,可以设置为Stash。Save Stash可
6.删除分支
拖动分支移动到需要合并到的分支之后,选中右键Delete即可
7.设置多个分支
dev 开发 -- release 线上 -- main 主干
更新:2021-04-26 22:04:38
出现以下问题:通过网上查找资料可能是我的
id_rsa、id_rsa.pub过期了。所以我需要删除掉旧的,重新创建
github Permission denied (publickey)
通常在Mac中SSH秘钥存储在
cd ~/.ssh
rm keyname_rsa
在
gitLab中创建一个新项目,Project Name 为在gitLab中的名称,project sulg 为clone到本地的名称,如果需要删除本地的文件夹进行以下操作
cd 当前文件夹
sudo rm -r -f 你要删除的文件夹名称
git config --global user.name "xxxxxx"
git config --global user.email "xxxxxxx@qq.com"
Create a new repository
git clone git@gitlab.com:xxxxclone复制即可/003.git
cd 003
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an existing folder
//用这个方法提交就可以,在gitLab中003换成你的工程文件名字即可
cd existing_folder
git init
git remote add origin git@gitlab.com:xxxxclone复制即可/003.git
git add .
git commit -m "Initial commit"
git push -u origin master
Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.com:xxxxclone复制即可/003.git
git push -u origin --all
git push -u origin --tags
常见的错误是上传一个空文件夹
我的原因:该文件夹是通过git 拉取到的项目,本身隐藏有.git文件夹,因此始终提交到另一个远程分支上去的是空文件夹。
解决办法:删除之前代码残留的.git ,转换文件夹位置 。push 操作删除 远程分支残留空文件夹。等删除空文件夹之后再重新提交一遍即可
代码示例
1.克隆远程仓库到本地库。
例如使用ssh方法:
git clone git@github.com:xxx/xxx.git
2.对需要删除的文件、文件夹进行如下操作:
git rm test.txt (删除文件)
git rm -r test (删除文件夹)
//手动删除本地也可以
3.提交修改
git commit -m "Delete some files."
4.将修改提交到远程仓库的xxx分支/或者 主干,主要看文件所在的位置:
git push origin xxx / git push -u origin master
更新2021-04-27 11:49:47
采用 http方式推送本地代码至远程仓库
cd 工程文件夹
git init
git remote add origin http://xxxx.git
git add .
git commit -m "Initial"
git pull --rebase origin master //关键一步,先合并在提交
git push -u origin master