Git—版本控制工具
1,常见的版本控制工具:
Git,SVM,CVS,VSS,TFS,Visual Studio Online
什么是Git:
Git是一个版本控制工具,即你可以将你每一次对你的代码修改后的内容提交到Git上,这可以在你需要代码的历史版本的时候,直接将代码从云端的Git仓库内拉取到本地,这可以应对功能误伤,代码"消失"等一些情况。
版本控制工具的作用:
- 实现跨区域多人协同开发
- 追踪和记载一个或者多个文件的历史记录
- 组织和保护自己的源码和文档
- 统计工作量
- 并行开发,提高开发效率
- 跟踪记录整个软件的开发过程
- 减轻开发人员的负担,节省时间,同时减低认为的错误
Git和SVM的区别
SVM
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
——百度词条
Git
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
2,Git的安装及配置(本地存储)
1,在git官网尚下载git的安装包
2,安装git工具:
一直下一步,如果需要了解相应的设置的内容,可以自行了解,这里不作赘述。
在配置安装目录时可以根据自己的需求进行修改
3,安装成功的标志:
在任意目录内点击右键,会在菜单内出现下面两个
4,GitHub初始化本地库:
创建本地仓库
1,创建本地仓库(可以理解为使用Git命令创建了一个文件夹)
mkdir Git_Warehouse_configure
2,进入本地仓的文件夹内:
cd Git_Warehouse_configure/
3,下载对应的Git依赖
git init
Initialized empty Git repository in F:/Git/Git_Warehouse_configure/.git/
4,下载好后,使用 ls -lA 命令打开,显示有 .git的隐藏文件夹,就说明下载正确
ls -lA
total 4
drwxr-xr-x 1 ysd 197609 0 Jul 11 19:27 .git/
5,打开 .git目录下的内容
ll .git
total 7
-rw-r--r-- 1 ysd 197609 23 Jul 11 19:27 HEAD
-rw-r--r-- 1 ysd 197609 130 Jul 11 19:27 config
-rw-r--r-- 1 ysd 197609 73 Jul 11 19:27 description
drwxr-xr-x 1 ysd 197609 0 Jul 11 19:27 hooks/
drwxr-xr-x 1 ysd 197609 0 Jul 11 19:27 info/
drwxr-xr-x 1 ysd 197609 0 Jul 11 19:27 objects/
drwxr-xr-x 1 ysd 197609 0 Jul 11 19:27 refs/
5,设置签名
项目级别签名设置及查看
设置用户名(随意填写)
$ git config user.name Y_King
设置邮箱地址
这里设置的邮箱需要一个固定,真实存在,的自己的邮箱,在后面,与GitHub连接的时候,需要用到
$ git config user.email Y_King@puge.com
设置好后,查看配置文件
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[user]
name = Y_King
email = Y_King@puge.com
系统用户级别的签名设置和查看
1,设置用户名
$ git config --global user.name Y_King
2,设置用户邮箱
这里设置的邮箱需要一个固定,真实存在,的自己的邮箱,在后面,与GitHub连接的时候,需要用到
$ git config --global user.email Y_King@puge.com
3,回到根目录
$ cd ~
4,显示配置信息
$ ls -lA|less
[2]+ Stopped ls -F --color=auto --show-control-chars -lA | less
5,显示Git的配置信息
cat .gitconfig
[user]
name = Y_King
email = Y_King@puge.com
6,显示用户名和邮箱
$ cat ~/.gitconfig
[user]
name = Y_King
email = Y_King@puge.com
6,添加提交以及查看操作
查看当前文件的上传状态
$ git status
对某一文件,打开vim命令界面,对文件进行修改(一般用于添加文件注解)
$ vim good.txt
在vim界面内的设置指令:
为文件内的内容显示行数:
-
:set nu
进入文本编辑模式为文件添加注解:
-
i
退出文本编辑模式:
- Esc键
保存修改并提出: -
:wq
将文件提交到缓存区
$ git add good.txt
查看当前仓库的状态
$ git status
7,查看日志
//显示详细的日志内容
$ git log
commit 507c5f6b9826870329f8fa4fac2d1c2b8f5d36e9 (HEAD -> master)
Author: Y_King <Y_King@puge.com>
Date: Mon Jul 12 23:42:21 2021 +0800
My first commit.new file good.txt and BannerAdminController.java
//当显示的内容过多的时候:进行多屏的控制显示:
空格 向下翻页
b 向上翻页
q 推出日志界面
1,单行显示日志内容
git log --pretty=oneline
2,单行显示日志内容:将查询的哈希值缩短
$ git log --oneline
3, 查询当前版本移动到对应的版本需要几步
$ git reflog
日志显示:
3,Git(Linux)命令
查看当前所在目录
pwd
/f/Git/Git_Warehouse_configure
查看当前的文件夹内的所有文件的详细信息
ls
BannerAdminController.java Demo01.txt good.txt guil_parent/ guil_parent.zip
创建文件
touch index.js
删除文件(只能删除文件,不能删除文件夹)
rm index.js
打开文件
cat 文件名
新建文件夹
mkdir test
删除文件夹
rm -r guil_parent
移动文件到指定的文件夹(下面是将index.html文件移动到 test 文件夹内)
mv index.html test
查看历史命令
history
查看Git的配置信息
git config -l
查看Git的系统配置
git config --system --list
查看用户配置信息
$ git config --global --list
user.name=Y_King
user.email=Y_King@puge.com
本地添加文件的Git命令
1,将仓库内的所有文件添加到暂存区内(也可提交指定文件,只需要将点换为具体的文件名)
git add .
2,将文件添加到本地的Git仓库内
git commit -m "对上传的文件的注解"
3,查看当前的文件上传的状态
git status
4,通过Git命令创建Git工作空间的两种方法:
本地仓的搭建()
第一步:新建仓库(可以理解为新建一个文件夹,作为本地仓)
mkdir gitcode
第二部:下载配置
git init
远程仓库的克隆:直接将远程仓库拉取到本地
git clone 资源路径
5,文件上传的状态
文件的四种状态
上传忽略文件
在上传文件的时候,并不是所有的文件都需要上传上去,所以需要对上传的文件进行过滤,只上传需要的
实际范例:
6,Git分支
重要——Git官方关于分支的解释和操作
码云的使用
1,注册好个人账户,并设置基本信信息后
2,*配置本机的SSH公钥,实现免密登录
3,配置本地公钥的步骤(实现免密登录):
找到本地公钥的存储文件夹
C:\Users\ysd.ssh
打开该文件夹,使用git命令生成本地密钥:
生成秘钥的方法(两种):
(1)ssh-keygen
(2) ssh-keygen -t rsa -C "github注册的邮箱名"
随后一直enter就好,提示输入密码可输可不输
我们需要寻找一对以
id_dsa
或id_rsa
命名的文件,其中一个带有.pub
扩展名。.pub
文件是你的公钥,另一个则是与之对应的私钥。 如果找不到这样的文件(或者根本没有.ssh
目录),你可以通过运行ssh-keygen
程序来创建它们。
再将本地的密钥配置到Gitee上(配置的公钥是上面生成文件中后缀为 .pub 的公钥信息,只有一行):
使用IDEA集成Git
1,将创建好的仓库拉取到本地的指定的文件夹:
git clone 资源路径
2,将创建的java项目和Git集成到一起
方式一:
在创建Java项目的时候,将项目的根目录位置指定为上面配置好的拉取到本地的仓库
方式二:
在创建好java项目后,将拉取到本地的仓库内的所有的文件复制,粘贴到Java项目的文件夹内,覆盖重复的文件
3,初步配置成功后,在IDEA上会出现以下内容:
这说明初步配置完成了:
但是也可能存在一些问题 在下文中会有介绍
下面是上传到Git的一般步骤:
提交成功后返回:
查看Git仓库确实提交上去了:
在使用Git中遇到的问题:
在本地Git仓库中 :
git: Your branch and ‘origin/master’ have diverged
Git 分支重新命名后冲突解决
使用git命令对重复的分支强行覆盖
解决:
方法一:
1、git pull origin master --allow-unrelated-histories 【允许不相关历史提交,并强制合并】
方法二:
1、git push --force origin master 【强制提交】
如果有不足,或是不正确的地方和需要改进的地方,希望各位可以在评论区留言,实时更改
有帮到你的话,请点个赞支持一下,谢谢,老铁
自学路上,你我共同坚持,加油,各位秃头小宝贝