1.Git和Gitlab
- Git是版本管理工具
- Gitlab是管理Git仓库、用户、权限等功能的基于WEB的工具
2.Git新人课程
对Git还不熟悉的同学,推荐使用下面的课程练习
3.Git & Gitlab配置
3.1 设置git用户信息
git config --global user.name your_name
git config --global user.email your_email
3.1 生成RSA公私钥
- 为了能使用公钥免密访问Gitlab上的仓库,下载代码,提交代码;我们需要创建RSA密钥对,并将公钥信息填入到Gitlab的设置中。
szhou@dell-PowerEdge-R740:/home/szhou$ ssh-keygen -t rsa -C "your_email@your_email.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/szhou//.ssh/id_rsa):
/home/szhou//.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/szhou//.ssh/id_rsa.
Your public key has been saved in /home/szhou//.ssh/id_rsa.pub.
The key fingerprint is:
9b:1e:cb:51:95:6b:21:e5:70:7a:73:c7:02:55:3b:ee your_email@your_email.com
The key's randomart image is:
+--[ RSA 2048]----+
| . +....|
| * o ..|
| o B ooo|
| + =.o.|
| S . o . |
| + . . |
| = E |
| o + |
| + |
+-----------------+
szhou@dell-PowerEdge-R740:/home/szhou$ cat .ssh/id_rsa
id_rsa id_rsa.pub
szhou@dell-PowerEdge-R740:/home/szhou$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCPbSJEyZKSgvYZRlglaCapIOg3ENxzsa4QtQCmx760d4RPa3XNfcVMFBUlNoNl0xfgQ4X5lE3VkP1MDqyGDE1JwgJy7pJx/ON6Y3Rm4XyzonGuTjvjOFJPnFxytyybWaCqzmQ1HHKJ3IxaI9dtv1QiZ0feNKkRAQ9akZuS9zqJe8IMvPcv76uvrsNC+U9E7lEomsR7CWftKRzu3WyhZ0Pze7ek966CPGcrnmqBpMvNKOvzy41XoNselsz5MMMMM38rHgeKyfX4cUkWkzvmCrdLTdhA2F5iK5bLEYq48LzHMO9bJJ/KL5GBuc/kQaSnBIdKVioihr3Or3UB1cpEv4r your_email@your_email.com
3.2 将公钥添加到Gitlab
访问Gitlab
点击右上角 Profile Settings
点击 SSH Keys Settings
点击右上角 Add SSH Key
将 cat .ssh/id_rsa.pub 的结果添加进去
4.Git日常命令
日常命令,举例说明。
4.1 git clone
从服务端下载项目代码,例如下载雪豹的android代码,相关路径可到自己的gitlab中去获取,若不存在,则说明没有权限
git clone git@xxxx/xxxx.git
4.2 切换分支
git checkout -b branch_name 直接checkout origin/branch_name, 并串接本地分支branch_name
git checkout branch_name 若本地分支branch_name已存在,则可以直接切过去
4.3 查看分支信息
git branch -a 其中带*号的为当前所在分支
4.4 提交代码流程
git pull #从服务器拉取代码
git status #查看有哪些文件被修改
git add your_modified_file #添加要提交的文件
git commit -m "按格式写描述" #在本地提交修改
git push origin master #将master的修改推送到origin远程仓库
4.5 重置本地代码
git clean -df #清除所有未被track的文件
git reset --hard HEAD #丢弃所有未提交的修改,并将当前代码对齐到HEAD
git pull #从远程拉取最新代码,并合并到本地
4.6 打TAG
git tag TAG_NAME 71aab7a #创建Tag,指向CL#71aab7a
git push origin TAG_NAME #将TAG推送到origin
git push origin --tags #将所有tags推送到远程仓库origin
4.7 git lg
- 非常好用的配置,查看log更顺眼
- 原理就是自定义一个git lg命令,其具体实现,是通过git log后加上很多参数
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
5. 使用gitk图像工具
- 相对于windows版本的图形工具而言,Gitk的数据显示速度非常快,和直接在Linux敲命令速度差不多,在需要查看多条commit的时候,用此工具效率较高。
5.1 配置gitk步骤
- 配置SecureCRT,选择自己的SSH,打开X11转发
- 安装Xming Server,安装后直接点击启动,在右下角会有Xming图标,用于接收X11转发过来的数据,并渲染成图形界面
- 打开SecureCRT,SSH连接上服务器,切换到代码目录下
- 输入$gitk 命令,即可启动图形界面