git操作

#安装
[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


d62ddcef1d9d52a029fd21c4fe1abcd.png

#查看提交情况
[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

img

复制地址选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

添加公钥

1650286491\_1\_.png

点击个人公钥

#下面一路回车
[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>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值