iOS开发-GitLab 私库以及 Git-Tower图形工具的简单使用

1,429 阅读5分钟

使用GitLab 存储代码在公司自己搭建的服务器上面

  • 生成SSH key
  • 注册GitLab账号
  • 配置Mac Host
  • GitLab 提交代码
  • 使用Git-Tower

1.生成ssh key

在终端输入

ls -al ~/.ssh

检查本地是否有ssh key,会出现两种情况。 第一种情况终端出现id_rsa_pubis_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_pubid_rsa即表示获取完成。复制pub 粘贴到GitLab 的SSH中去。

pbcopy < ~/.ssh/id_rsa.pub

image.png

Title随便填写,直接在Key中粘贴刚才复制id_rsa_pub完成key的配置

2.注册GitLab 账号

一般都是公司内容已经帮你注册好,分配给你,或者你提供邮箱就可以添加进去。

配置 Mac Host

前往 -> 前往文件夹 ->(输入要前往的文件夹)

/private/etc/

image.png

在文件夹中找到Host,复制一份到桌面、配置host。 image.png

特别提醒:左边为(10.2.5.488)服务器域名,右边为你要替代的域名(a1244.comes.cn)
把修改好的host 文件再拖入刚才的文件夹中,替换原来未配置的文件即可。还可以用SwitchHost!工具来配置

3.GitLab 提交代码

首先测试是否连接服务器成功

ssh -T git@10.1.5.100 //公司服务器

或者

ssh -T git@gitlab.com //使用gitlab服务器

image.png 连接成功了。

特别提醒:记得要管理员开权限不然会提示(`Permission denied`)没有权限访问

先clone 一份仓库代码

cd 当前你创建的放置clone 代码的文件夹
git clone 仓库地址

image.png 表示clone 成功了 下面试试提交更改的代码

cd /Users/hwxc_ios/hwxc_app/iOS 

cd 到最底层的文件夹(clone下来的当前文件夹)不然无法使用git命令 image.png

git add .
git commit -m "提交说明"
git push -u origin master

4.Git-Tower 使用

由于是公司自己搭建的GitLab 仓库, image.png

Host 记得添加http://

如果是个人的本地项目则只需要通过下面方式就可以获取Personal Access Token image.png image.png

image.png

在gitLab中复制git@gitlab.com:xxxx.git地址即可

如果是个人账号登录,则登录Git-Tower在以下界面。

image.png

2021-05-24 14:23:49 更新 Git-Tower简单使用
1.创建分支

拖动mainBranches 既可以创建新的分支,合并分支先CheckOut到目标分支,选中要合并的分支,点击Bar上的Merge选择需要合并的分支

2.创建远程分支

在gitLab中创建远程分支,通过Tower中 OriginFetch操作,获取到远程分支,选中同步到的远程分支,右键选择创建分支即可在本地创建当前远程分支下的本地分支。

4.远程分支的合并

远程分支合并,一般采用本地分支合并,最后提交到单一远程分支,也就是说提交到你的目的的分支上比如main,release ,dev等

5.stash

当前设置的Stash只针对当前的分支,如果有些功能没有完成但是又要进行其他的开发,不方便提交的时候,可以设置为Stash。Save Stash

6.删除分支

拖动分支移动到需要合并到的分支之后,选中右键Delete即可

7.设置多个分支

dev 开发 -- release 线上 -- main 主干


更新:2021-04-26 22:04:38

image.png

出现以下问题:通过网上查找资料可能是我的id_rsaid_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

常见的错误是上传一个空文件夹

image.png

我的原因:该文件夹是通过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

参考链接