git工具的简单使用

Git简介:

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。  Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

1.git基础配置

1.让虚拟机能上网

#1.添加火墙策略
[root@foundation66 ~]# iptables -t nat -I POSTROUTING -s 172.25.66.0/24 -j MASQUERADE
#2.测试
[root@server1 ~]# ping www.baidu.com

在这里插入图片描述
2.安装git

[root@server1 ~]# yum install -y git

3.创建目录并初始化

#1.创建目录
[root@server1 ~]# mkdir demo
[root@server1 ~]# cd demo/
#2.初始化
[root@server1 demo]# git init
Initialized empty Git repository in /root/demo/.git/
[root@server1 demo]# l.
.  ..  .git
[root@server1 demo]# cd .git/
[root@server1 .git]# ls
branches  config  description  HEAD  hooks  info  objects  refs
[root@server1 .git]# cd ..
#查看当前工作区和暂存区文件的状态
[root@server1 demo]# git status

在这里插入图片描述
4.创建文件

[root@server1 demo]# touch file1
[root@server1 demo]# echo westos > file1
[root@server1 demo]# cat file1 
westos
[root@server1 demo]# ls
file1
#查看当前工作区和暂存区文件的状态(详细信息)
[root@server1 demo]# git status

在这里插入图片描述

#查看简单输出信息
[root@server1 demo]# git status -s
?? file1

5.添加文件

#实质:添加到暂存区
[root@server1 demo]# git add file1
[root@server1 demo]# git status

在这里插入图片描述

[root@server1 demo]# git status -s
A  file1

6.提交文件

#实质:添加到版本库
[root@server1 demo]# git commit -m "add file1"

在这里插入图片描述
(1).设置邮箱和用户名

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
#设置邮箱
[root@server1 demo]# git config --global user.email "[email protected]"
#设置用户名
[root@server1 demo]# git config --global user.name hym

(2).提交

[root@server1 demo]# git commit -m "add file1"
[master (root-commit) 0098555] add file1
 1 file changed, 1 insertion(+)
 create mode 100644 file1
#查看状态
[root@server1 demo]# git status -s

7.对文件的操作

(1).更改文件内容

#>>表示追加
[root@server1 demo]# echo redhat >> file1
[root@server1 demo]# cat file1 
westos
redhat
[root@server1 demo]# git status

在这里插入图片描述

# M表示修改文件未添加到暂存区
[root@server1 demo]# git status -s
 M file1
[root@server1 demo]# git add file1
#M表示修该文件已添加到暂存区
[root@server1 demo]# git status -s
M  file1
[root@server1 demo]# echo admin >> file1
[root@server1 demo]# cat file1 
westos
redhat
admin
#MM表示对在暂存区的文件进行修改
[root@server1 demo]# git status -s
MM file1
#添加到暂存区
[root@server1 demo]# git add file1
[root@server1 demo]# git status -s
M  file1
#提交
[root@server1 demo]# git commit -m "change file1"
[master 859d87b] change file1
 1 file changed, 2 insertions(+)
[root@server1 demo]# git status -s

(2).提交隐藏文件

#1.拷贝隐藏文件
[root@server1 demo]# cd 
[root@server1 ~]# l.
.   .bash_history  .bash_profile  .cshrc      .tcshrc
..  .bash_logout   .bashrc        .gitconfig  .viminfo
[root@server1 ~]# cp .bashrc demo/
[root@server1 ~]# cd demo/
[root@server1 demo]# ls
file1
[root@server1 demo]# l.
.  ..  .bashrc  .git
[root@server1 demo]# git status -s
?? .bashrc
#2.提交隐藏文件
[root@server1 demo]# vim .gitignore
[root@server1 demo]# cat .gitignore
.*
[root@server1 demo]# git status -s

(3).版本回退

[root@server1 demo]# cat file1
westos
redhat
admin
[root@server1 demo]# echo hello word! >> file1
[root@server1 demo]# cat file1 
westos
redhat
admin
hello word!
[root@server1 demo]# git status

在这里插入图片描述

#1.把file1文件在工作区的修改全部撤回
[root@server1 demo]# git checkout -- file1
[root@server1 demo]# cat file1 
westos
redhat
admin
#查询版本历史
[root@server1 demo]# git log

在这里插入图片描述

#更改文件
[root@server1 demo]# echo linux > file1
[root@server1 demo]# cat file1 
linux
#添加文件
[root@server1 demo]# git add file1
#提交文件
[root@server1 demo]# git commit -m "big changest"
[master 4bb9037] big changest
 1 file changed, 1 insertion(+), 3 deletions(-)
#查看日志,记录了所有的提交信息
[root@server1 demo]# git log

在这里插入图片描述

[root@server1 demo]# git status -s
[root@server1 demo]# cat file1
linux
#2.撤销commit命令操作
[root@server1 demo]# git reset --hard HEAD^
HEAD is now at 859d87b change file1
[root@server1 demo]# cat file1
westos
redhat
admin
#查看日志
[root@server1 demo]# git log --pretty=oneline
859d87b7d8cd4eae463955bce8198672095a48a3 change file1
0098555cbf8c1791a8b07710121ea6d9ca3bc561 add file1
[root@server1 demo]# git reflog
859d87b HEAD@{0}: reset: moving to HEAD^
4bb9037 HEAD@{1}: commit: big changest
859d87b HEAD@{2}: commit: change file1
0098555 HEAD@{3}: commit (initial): add file1
#3.硬回滚到某次commit(恢复)
[root@server1 demo]# git reset --hard 4bb9037
HEAD is now at 4bb9037 big changest
[root@server1 demo]# cat file1
linux

(4).恢复误删文件

1.误删文件但并未提交

[root@server1 demo]# ls
file1
[root@server1 demo]# rm -rf file1
[root@server1 demo]# git status

在这里插入图片描述

#把file1文件在工作区的修改全部撤回
[root@server1 demo]# git checkout -- file1
[root@server1 demo]# ls
file1

2.误删文件并且已经提交

[root@server1 demo]# rm -rf file1 
[root@server1 demo]# git rm file1
rm 'file1'
[root@server1 demo]# ls
[root@server1 demo]# git status

在这里插入图片描述

[root@server1 demo]# git reflog

在这里插入图片描述

#硬回滚到某次commit
[root@server1 demo]# git reset --hard 4bb9037
HEAD is now at 4bb9037 big changest
[root@server1 demo]# ls
file1
[root@server1 demo]# cat file1
linux

2.上传本地文件到共有仓库

(1).注册并登陆github
在这里插入图片描述
(2).创建共有仓库
在这里插入图片描述
在这里插入图片描述
(3).制作密钥

[root@server1 ~]# ssh-keygen

在这里插入图片描述

[root@server1 ~]# cd .ssh/
[root@server1 .ssh]# ls
id_rsa  id_rsa.pub
[root@server1 .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuni0gWiFnpc4lJFApE8Y5Tvs/7MGtomOZH14YDOlnXVopsdvIFEpPLZ1pNr52Htrl8uYf5T+WzaFC62Njfzn8qZxrANocLXo0BXMz4Q2iZFy+VfmdR8oHp50O8cg6++zjJjHnWQit3b+QdSPEcq+cxcriGd6/Gm0yJbWjCcIg/JwwUzQQItUshoCoGvFqJbtDkyKhp31hUPR5OXhdEKOjShhsJY7UqsqoFycplY0K0qm5tZML98FF/7S5n9XyHbziiLn46Roee5QGbG+4vZ3OXa8qk9AL3PbOJDIV9Cnr8b9xfc27k0Y9EX5B1wny3fla2FD+J28UnF/dQq24gCZd root@server1

(4).上传密钥

注意:上传的是公钥

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5).添加远程地址

[root@server1 ~]# cd demo/
#添加远程地址
[root@server1 demo]# git remote add origin [email protected]:hongyunmei/demo.git
#查看已添加的远程地址
[root@server1 demo]# git remote  -v
origin	[email protected]:hongyunmei/demo.git (fetch)
origin	[email protected]:hongyunmei/demo.git (push)

注意:如果远程地址添加错误,怎么办?

[root@server1 demo]# git remote -v
origin	https://github.com/hongyunmei/hongyunmei.git (fetch)
origin	https://github.com/hongyunmei/hongyunmei.git (push)
#删除指定的远程地址
[root@server1 demo]# git remote remove origin
[root@server1 demo]# git remote  -v

在这里插入图片描述
(6).推送

#将本地仓库推送到远程仓库
[root@server1 demo]# git push -u origin master

刷新网页:
在这里插入图片描述
(7)克隆

1.创建仓库
在这里插入图片描述
在这里插入图片描述
2.克隆

#克隆项目到本地
[root@server1 ~]# git clone [email protected]:hongyunmei/git.git

在这里插入图片描述
测试:

[root@server1 ~]# ls
demo git
[root@server1 ~]# cd git/
[root@server1 git]# ls
README.md

创建文件并上传:

[root@server1 ~]# cd demo/
[root@server1 demo]# ls
file1
[root@server1 demo]# echo hello linux > file2
[root@server1 demo]# ls
file1  file2
[root@server1 demo]# cat file2
hello linux
[root@server1 demo]# git add file2
[root@server1 demo]# git commit -m "add file2"
[master 352311c] add file2
 1 file changed, 1 insertion(+)
 create mode 100644 file2
 #上传
[root@server1 demo]# git push -u origin master

在这里插入图片描述
刷新网页:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lilygg/article/details/88925690