#安装
[root@elk-3 data]# yum install -y git
[root@elk-3 data]# mkdir code
[root@elk-3 data]# cd code/
#可从gitee上下载到当前目录
[root@elk-3 data]# git clone https://gitee.com/xxxxx1209/monitor.git
文件的新增与修改
[root@elk-3 code]# git init
初始化空的 Git 版本库于 /data/code/.git/
[root@elk-3 code]# ll -a
总用量 0
drwxr-xr-x 3 root root 18 4月 17 22:26 .
drwxr-xr-x 9 root root 131 4月 17 22:26 ..
drwxr-xr-x 7 root root 119 4月 17 22:26 .git
.git相当于git的缓存文件,会记录git的变化,包括代码的变更,版本的迭代
#把文件提交到暂存区
[root@elk-3 code]# git add 代码名
[root@elk-3 code]# git add . #提交当前目录的所有文件和目录
#没有任何显示,说明添加成功。
#文件从暂存区提交到仓库 -m后面输入的是本次提交的说明,可以输入任意内容
[root@elk-3 code]# git commit -m "第一次提交"
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'root@elk-3.(none)')
# 此时可能会弹出以上内容,如果我们之前没有设置好自己的全局变量 user.name user.email 的话:
# Git 要对每一次提交操作标记 其 操作的身份, 主要是 name 和 email
#设置邮箱
[root@elk-3 code]# git config --global user.email "XXXXXX @qq.com"
#表示是谁提交的
[root@elk-3 code]# git config --global user.name "大腰子"
[root@elk-3 code]# git commit -m "第一次提交"
[master(根提交) 829760a] 第一次提交
1 file changed, 1 insertion(+)
create mode 100644 adad.txt
#以上信息说明提交成功
#查看状态
[root@elk-3 code]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@elk-3 code]# cd .git/
[root@elk-3 .git]# ll
总用量 20
drwxr-xr-x 2 root root 6 4月 17 22:26 branches #仓库位置
-rw-r--r-- 1 root root 16 4月 17 22:48 COMMIT_EDITMSG
-rw-r--r-- 1 root root 92 4月 17 22:26 config
-rw-r--r-- 1 root root 73 4月 17 22:26 description
-rw-r--r-- 1 root root 23 4月 17 22:26 HEAD
drwxr-xr-x 2 root root 242 4月 17 22:26 hooks
-rw-r--r-- 1 root root 104 4月 17 22:43 index
drwxr-xr-x 2 root root 21 4月 17 22:26 info
drwxr-xr-x 3 root root 30 4月 17 22:48 logs
drwxr-xr-x 7 root root 60 4月 17 22:48 objects
drwxr-xr-x 4 root root 31 4月 17 22:26 refs
#查看提交情况
[root@elk-3 code]# git log
commit 829760ac85b392dc0960f4254e52c1049f0c1ede
Author: 大腰子 <2351605852@qq.com>
Date: Sun Apr 17 22:48:52 2022 +0800
第一次提交
#修改文件内容
[root@elk-3 code]# echo "名字" >> adad.txt
#查看状态,提示有文件被修改。
[root@elk-3 code]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改: adad.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
#查看具体的修改内容
[root@elk-3 code]# git diff adad.txt
diff --git a/adad.txt b/adad.txt
index fc0e85d..60e71b7 100644
--- a/adad.txt
+++ b/adad.txt
@@ -1 +1,2 @@
sdasdsdsdasd
+名字
[root@elk-3 code]# cat adad.txt
sdasdsdsdasd
dayaozi
#确认修改,提交到暂存区
[root@elk-3 code]# git add adad.txt
[root@elk-3 code]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 修改: adad.txt
#
#提交到仓库
[root@elk-3 code]# git commit -m "增加说明"
[master 7867dfb] 增加说明
1 file changed, 1 insertion(+)
[root@elk-3 code]# git status
# 位于分支 master
无文件要提交,干净的工作区
==发现git status后这样,表示暂存区无内容==
#查看记录
[root@elk-3 code]#
commit 7867dfb5b70557bf11bedf6b2660b861824b6fb5
Author: 大腰子 <2351605852@qq.com>
Date: Mon Apr 18 19:19:04 2022 +0800
增加说明
commit 829760ac85b392dc0960f4254e52c1049f0c1ede
Author: 大腰子 <2351605852@qq.com>
Date: Sun Apr 17 22:48:52 2022 +0800
第一次提交
日志和版本回退
#查看日志操作
[root@elk-3 code]# git reflog
7867dfb HEAD@{0}: commit: 增加说明
829760a HEAD@{1}: commit (initial): 第一次提交
#回滚版本,即回到那个时候
[root@elk-3 code]# git reset --hard 829760a
HEAD 现在位于 829760a 第一次提交
[root@elk-3 code]# git reflog
829760a HEAD@{0}: reset: moving to 829760a
7867dfb HEAD@{1}: commit: 增加说明
829760a HEAD@{2}: commit (initial): 第一次提交
#git reset --hard HEAD^ 命令可以回滚到上一个 版本, ^^ 表示上上一个版本,依次类推;如果想回退更多的版本, 可以使用 git reset --hard HEAD~10 , 向后回退 10个版本;如果我们想回退到 任意一个 指定 的版本,可以使用 它的 版本号信息
[root@elk-3 code]# git reset --hard 7867dfb
HEAD 现在位于 7867dfb 增加说明
[root@elk-3 code]# cat adad.txt
sdasdsdsdasd
dayaozi
[root@elk-3 code]# git reset --hard 829760a
HEAD 现在位于 829760a 第一次提交
[root@elk-3 code]# cat adad.txt
sdasdsdsdasd
#查看日志
[root@elk-3 code]# git reflog
829760a HEAD@{0}: reset: moving to 829760a
7867dfb HEAD@{1}: reset: moving to 7867dfb
829760a HEAD@{2}: reset: moving to 829760a
7867dfb HEAD@{3}: commit: 增加说明
829760a HEAD@{4}: commit (initial): 第一次提交
[root@elk-3 code]# echo "dyz" >> adad.txt
[root@elk-3 code]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改: adad.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
#撤销上一步操作
[root@elk-3 code]# git checkout -- adad.txt
[root@elk-3 code]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@elk-3 code]# git reflog
829760a HEAD@{0}: reset: moving to 829760a
7867dfb HEAD@{1}: reset: moving to 7867dfb
829760a HEAD@{2}: reset: moving to 829760a
7867dfb HEAD@{3}: commit: 增加说明
829760a HEAD@{4}: commit (initial): 第一次提交
===记录也没有
====如果提交到了暂存区
[root@elk-3 code]# git add adad.txt
[root@elk-3 code]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 修改: adad.txt
#
======就用"git reset HEAD"撤回
[root@elk-3 code]# git reset HEAD adad.txt
重置后撤出暂存区的变更:
M adad.txt
[root@elk-3 code]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改: adad.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
==然后再用git checkout撤回
[root@elk-3 code]# git checkout -- adad.txt
[root@elk-3 code]# cat adad.txt
sdasdsdsdasd
删除
[root@elk-3 code]# rm -rf adad.txt
[root@elk-3 code]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add/rm <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 删除: adad.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@elk-3 code]# git checkout -- adad.txt
[root@elk-3 code]# ll
总用量 4
-rw-r--r-- 1 root root 13 4月 18 20:03 adad.txt
==可以看到,即使rm -rf 都可以恢复
==删除adad.txt
[root@elk-3 code]# git rm adad.txt
rm 'adad.txt'
[root@elk-3 code]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 删除: adad.txt
#
[root@elk-3 code]# git commit -m "删除了文件"
[master 8b86547] 删除了文件
1 file changed, 1 deletion(-)
delete mode 100644 adad.txt
==这样就成功删除了
[root@elk-3 code]# ll
总用量 0
恢复删除的文件
[root@elk-3 code]# git reflog
8b86547 HEAD@{0}: commit: 删除了文件
829760a HEAD@{1}: reset: moving to 829760a
7867dfb HEAD@{2}: reset: moving to 7867dfb
829760a HEAD@{3}: reset: moving to 829760a
7867dfb HEAD@{4}: commit: 增加说明
829760a HEAD@{5}: commit (initial): 第一次提交
===看到记录也有了删除的操作
====恢复的时候,回滚到删除文件前的版本
[root@elk-3 code]# git reset --hard 829760a
HEAD 现在位于 829760a 第一次提交
[root@elk-3 code]# ll
总用量 4
-rw-r--r-- 1 root root 13 4月 18 20:13 adad.txt
[root@elk-3 code]# git reflog
829760a HEAD@{0}: reset: moving to 829760a
8b86547 HEAD@{1}: commit: 删除了文件
829760a HEAD@{2}: reset: moving to 829760a
7867dfb HEAD@{3}: reset: moving to 7867dfb
829760a HEAD@{4}: reset: moving to 829760a
7867dfb HEAD@{5}: commit: 增加说明
829760a HEAD@{6}: commit (initial): 第一次提交
连接gitee
把画线的四句输入
[root@elk-3 code]# git config --global user.name "仓库名字"
[root@elk-3 code]# git config --global user.email "xxxxxxx@qq.com"
[root@elk-3 code]# git remote add origin https://gitee.com/xxxxxxxxx-gitee/test.git
#输入gitee的账号和密码
[root@elk-3 code]# git push -u origin "master"
Username for 'https://gitee.com': xxxxxxxxxx
Password for 'https://15975088452@gitee.com':
Counting objects: 3, done.
Writing objects: 100% (3/3), 235 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.3]
To https://gitee.com/Galakrond-gitee/test.git
* [new branch] master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
成功连上
有可能出现的错误:
error: GE007: Your push would publish a private email address
复制地址选SSH
#将gitee仓库下载到Linux
[root@elk-3 code]# git clone git@gitee.com:Galakrond-gitee/test.git #后面是远程git仓库地址
正克隆到 'test'...
Username for 'https://gitee.com': 15975088452
Password for 'https://15975088452@gitee.com':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
[root@elk-3 code]# ll
总用量 0
drwxr-xr-x 3 root root 34 4月 18 20:46 test
[root@elk-3 code]# cd test/
[root@elk-3 test]# ll
总用量 4
-rw-r--r-- 1 root root 13 4月 18 20:46 adad.txt
添加公钥
点击个人公钥
#下面一路回车
[root@elk-3 test]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:flaya6mWFQRz2gOLihStc0A0yfr7EkubEhYdZFpjAlo root@elk-3
The key's randomart image is:
+---[RSA 2048]----+
|o=EO +.. |
|..X+o . B. |
|.ooo. . o.o |
|.ooo.. .. |
| .oo. S ... |
|..+ . .+ |
|.o * .o+. |
|. * ooo. |
| . o. ..o. |
+----[SHA256]-----+
==文件放在了/root/.ssh/id_rsa.pub.
[root@elk-3 test]# ll /root/.ssh/
总用量 8
-rw------- 1 root root 1679 4月 18 20:58 id_rsa
-rw-r--r-- 1 root root 392 4月 18 20:58 id_rsa.pub
[root@elk-3 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhj8II3pu020D/tvCme0lu187t6zQSVdn468jyljgD6X2MjeOwWflL1DFU+PWbBHk0Qo4YUeQGwow3jvkBF69dgY41UmY01CITbnCVxXuXSiA60VrZWVoD9v3I+yd9GGiOwmgYmnatT0dTA1pDwCZLZRirHXXuTMQZaTqpTmbSHa1GnGBZnnVwyv5Hl2Fi6ImKrE7RJ635WAuLSH2QiQO0UhvvE2z0XNeIsiI2BA1WJsy5j8EKNYpW37127tG7xMc/zhJfM50wNByZ9QprmLpHAJsuTnyB+NMqbvPmCnKU2v0uaK3xXfzGGX1G9DkZ1Q0Z4N3r5VS44iOGTUaBC+oN root@elk-3
[root@elk-3 .ssh]#
复制进网页
确定就行
然后就不需要账号密码了
[root@elk-3 test]# echo "dadsdasdsdsdaweqwe121231" >> adad.txt
[root@elk-3 test]# git add .
[root@elk-3 test]# git commit -m "改了一下"
[master 376f7fe] 改了一下
1 file changed, 1 insertion(+)
[root@elk-3 test]# git push -u origin "master"
Counting objects: 5, done.
Writing objects: 100% (3/3), 277 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.3]
To https://gitee.com/Galakrond-gitee/test.git
829760a..376f7fe master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。
这样就把修改好的上传到网页
在网页更新的同步到Linux上
[root@elk-3 test]# git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
来自 https://gitee.com/Galakrond-gitee/test
376f7fe..cc671cf master -> origin/master
更新 376f7fe..cc671cf
Fast-forward
adad.txt | 1 +
1 file changed, 1 insertion(+)
[root@elk-3 test]# cat adad.txt
sdasdsdsdasd
dadsdasdsdsdaweqwe121231
adasdaddasd12312332332
查看和删除源
#查看源
[root@elk-3 test]# git remote -v show
origin git@gitee.com:Galakrond-gitee/test.git (fetch)
origin git@gitee.com:Galakrond-gitee/test.git (push)
#删除origin源
[root@elk-3 test]# git remote remove origin
分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name> 或者 git switch <name>
创建+切换分支:git checkout -b <name> 或者 git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>