Akemi

Git与Gitlab使用知识整理

2024/10/01

git常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
git init             初始化目录作为git仓库,该操作会创建一个.git来记录git操作
git config --global git全局配置设置,常用设置user.name,user.email,color.ui关键字高亮
git status 查看当前目录下的文件的状态

git add <文件名> 将文件从workspace工作目录添加到index暂存区
git rm --cached <文件名> 将文件从index暂存区撤出回workspace
git rm -f <文件名> 将文件从workspace与index暂存区删除
git mv <文件名> <新文件名> 将工作区域与暂存区域的文件同时修改文件名称
git diff 比对workspace与index暂存区有什么不同

git commit -m <说明文字> <文件名> 将文件从index暂存区提交到本地仓库,此时生成一个hash
作为标识

git log 查看历史提交版本,-p详细版本,-1上一次提交信息,--decorate显示额外的信息
git reset 回退版本
git reset --hard HEAD^^ 回退到两个版本之前
git reset --hard~40 回退到40个版本之前
git reset --hard <commit号> 回退到指定版本
git reset --hard <tag号> 回退到指定版本

git branch <分支名> 创建分支
git branch 查看所有分支
git checkout <分支名> 进入xx分支
git branch -d <分支名> 删除分支xx
git merge <带合并的分支名> 将当前分支与另一分支合并

git tag -a <tag名称> <commit号> 打tag,是一种替代commit的方式
git tag 查看所有tag

git remote 查看远程仓库名称

git push -u <远程仓库名> <分支名>

gitlab部署(官网上找)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#换源
cp -a /etc/yum.repos.d /etc/yum.repos.d.backup
rm -f /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#组件安装
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
sudo yml install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
sudo EXTERNAL_URL="http://gitlab.wangsheng.com" yum install -y gitlab-jh

要设置的网站域名、或ip

多密钥远程仓库管理与连接

环境说明

1
2
3
4
5
6
7
8
9
10
11
gitlab地址192.168.10.119
创建用户1:wangsheng 1320991378@qq.com ——开发者
项目名称:project01
群组名称:group01
ssh地址:git@gitlab.wangsheng.com:group01/project01.git

github账号Durative 1320991378@proton.me
github仓库地址durative/laptop
ssh地址git@github.com:Durative/laptop.git

操作主机地址192.168.10.102

创建多密钥

1
2
3
4
5
6
7
#gitlab密钥
ssh-keygen -t rsa -C "1320991378@qq.com"
密钥位置/root/.ssh/id_gitlab_rsa

#github密钥
ssh-keygen -t rsa -C "1320991378@proton.me"
密钥位置/root/.ssh/id_github_rsa

添加公钥信息至gitlab与github

1
2
3
4
5
6
cat /root/.ssh/id_gitlab_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFOs7NoSf76OI6Mz7EO+Vs1uSqpFfu1oGRXAKLcodiEpKPaYexZR/zFvzEBvjTBXA+gq5S5T8u5w+2iRMwEzp2NXPPXL2v4XMprnfbmdjepXNBZfqpghZdReD5eWbwEG8PwfEA68TeHmIwBVRu8e3sV36wJXHIilAsqTzaafems6a08PeSt4slTOPhH2qpUdkUXrbHt2Fhg1vpTWZYAnWo4f7jNujezsdeJQey5EZKqMtTSx6xIJu/6hi3aONLQMoYBMt/pvCZfrst0kDY5CKt02XDvL548WRX5YKpBkC/4WvC1ej0P0DO4bXEfznHiCEau3xMD1slbBwtJcsqBh7h 1320991378@qq.com

cat /root/.ssh/id_github_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCfmfaOc6kg3NmHpLDkivFqITzEPolA+qLIJr5ob6uCi5lew4xvZwCXmBTXFUP4IQovptKcD/Vpy264RS9jYP7CyFuwdYqNs2IzZwjSvvHmSTa30C4YjD/T+ZOsDgvVdLEXuEXqJ8M1gERiWZYY9El2zd9dXmkyCqmN+XNKzE6Pm44tEDmZhK6BP6+XgtK33hnCSA1/+2YAaZseiD7uB92j54Pkz4OG5JxbI0j/wUDqdFD5QfX3eN//fD2g/XBxkF6v4BIPoaX7xdhooBUu/v4Y9rnAHrg32wJ6X/PSV0+1YEB65wezuUFSok/aOAWpVZ60QIM/tnc9MC+OuBrjZt0L 1320991378@proton.me

ssh配置文件修改

1
2
3
4
5
6
7
8
9
10
11
cat >/root/.ssh/config<<EOF
Host 192.168.10.119
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_gitlab_rsa

Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_github_rsa
EOF

添加私钥

1
2
3
4
5
6
7
cd /root/.ssh/
ssh-agent bash
ssh-add id_gitlab_rsa
Identity added: id_gitlab_rsa (id_gitlab_rsa)

ssh-add id_github_rsa
Identity added: id_github_rsa (id_github_rsa)

git连接远程仓库

连接与推送到github

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#测试与验证密钥
ssh -T git@github.com
#Hi Durative! You've successfully authenticated, but GitHub does not provide shell access.

#连接仓库
git remote add origin git@github.com:Durative/laptop.git

git remote set-url origin git@github.com:Durative/laptop.git

#测试推送
echo "a" > a
echo "b" > b
git add *
git commit -m "b" *

如果本地进度慢于远程仓库,提交请求就会报错,我这里为了方便测试进行强制推送,生产环境勿用
git push --force origin master #强制推送
#Counting objects: 10, done.
#Delta compression using up to 8 threads.
#Compressing objects: 100% (5/5), done.
#Writing objects: 100% (9/9), 686 bytes | 0 bytes/s, done.
#Total 9 (delta 1), reused 0 (delta 0)
#remote: Resolving deltas: 100% (1/1), done.
#remote: To git@github.com:Durative/laptop.git
# 02747cc..bc0cdb2 master -> master

连接与推送到gitlab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
cd /root/git/

git config --global user.email "1320991378@qq.com"
git config --global user.name "wangsheng"

#测试与验证密钥
ssh -T git@gitlab.com
#Welcome to GitLab, @wangsheng!

#连接仓库
git remote add origin git@gitlab.wangsheng.com:group01/project01.git

git remote set-url origin git@gitlab.wangsheng.com:group01/project01.git

git clone git@192.168.10.119:group01/project01.git

#测试推送
git rm -f *
git branch master
git checkout master

echo "asa" > project01/a
echo "b" > project01/b
echo "c" > project01/c
cd project01/
git add *
git commit -m 'its c'

git push --force origin master
#Counting objects: 6, done.
#Delta compression using up to 8 threads.
#Compressing objects: 100% (2/2), done.
#Writing objects: 100% (5/5), 335 bytes | 0 bytes/s, done.
#Total 5 (delta 0), reused 0 (delta 0)
#remote:
#remote: To create a merge request for master, visit:
#remote: http://gitlab.wangsheng.com/group01/project01/-/merge_requests/new?merge_request%5Bsource_branch%5D=master
#remote:
#To git@gitlab.wangsheng.com:group01/project01.git
# + 2799ecc...aca7a4c master -> master (forced update)

上传java项目建立代码仓库步骤梳理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1.在gitlab界面创建新群组group01
2.在群组group01添加用户wangsheng
3.在gitlab界面创建新项目java_discuz并关联群组group01
4.连接远程仓库
git remote set-url origin git@gitlab.wangsheng.com:group01/java_discuz.git
cd java_discuz/

5.下载tomcat并解压
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.95/bin/apache-tomcat-9.0.95.tar.gz
tar -xf apache-tomcat-9.0.95
\cp -r apache-tomcat-9.0.95/* git/java_discuz/

6.创建新分支dev
cd git/java_discuz/
git branch -m dev

6.将tomcat推送至java_discuz
git add *
git commit -m "tomcat"
git push -u origin dev

CATALOG
  1. 1. git常用命令
  2. 2. gitlab部署(官网上找)
  3. 3. 多密钥远程仓库管理与连接
    1. 3.1. 创建多密钥
    2. 3.2. 添加公钥信息至gitlab与github
    3. 3.3. ssh配置文件修改
    4. 3.4. 添加私钥
    5. 3.5. git连接远程仓库
      1. 3.5.1. 连接与推送到github
      2. 3.5.2. 连接与推送到gitlab
  4. 4. 上传java项目建立代码仓库步骤梳理