git版本工具的使用

Git

1.项目中存在的问题

1.项目的安全性太低

2.项目的版本比较混乱

3.项目的无端报错

4.项目没办法做到协同开发

2.Git概念

Git是分布式版本控制及协同开发工具

3.版本控制工具的分类

1.集中式版本控制工具 cvs svn

在这里插入图片描述

在这里插入图片描述

2.分布式的版本控制工具 git

在这里插入图片描述
在这里插入图片描述

4.Git下载安装

4.1.下载

http://msysgit.github.io/ 下载,然后按默认选项安装即可。

4.2.安装

1.傻瓜式安装,一路下一步

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明 Git 安装成功!

安装完成后,还需要最后一步设置,在命令行输入: 设置用户名 以及邮箱

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
# 查看配置
git config -l


因为 Git 是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和 Email 地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的

5.版本库

5.1.创建版本库
$ mkdir GitRepository  #创建文件夹   文件夹就是版本库放的位置
5.2.初始化版本库

第二步,通过git init命令把这个目录变成 Git 可以管理的仓库:

$ git init

瞬间 Git 就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是 Git 来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把 Git 仓库给破坏了。

6.Git的简单使用

6.1.创建文件
$ touch aaa.txt
6.2.将文件提交到Git仓库

第一步,用命令git add告诉 Git,把文件添加到仓库:

$ git add aaa.txt

第二步,用命令git commit告诉 Git,把文件提交到仓库:

$ git commit -m "创建一个aaa.txt"

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

6.3.Git分区原理

在这里插入图片描述

在这里插入图片描述

$ git status

红色 工作区的已经修改未添加到暂存区

绿色 工作区已经提交到暂存区为添加到版本库

working tree clean 表示工作区与版本库一致

git status命令可以让我们时刻掌握仓库当前的状态

小结

现在总结一下今天学的两点内容:

初始化一个 Git 仓库,使用git init命令。

添加文件到 Git 仓库,分两步:

第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;

第二步,使用命令git commit,完成。

7.git指令

7.1查看历史版本
$ git log

git log命令显示从最近到最远的提交日志,我们可以看到 3 次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file。 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

$ git log --pretty=oneline
7.2.版本回退
7.2.1.会退到上一个版本
$ git reset --hard HEAD^
$ git reset --hard HEAD^1~100

最新的那个版本append GPL已经看不到了!好比你从 21 世纪坐时光穿梭机来到了 19 世纪,想再回去已经回不去了,肿么办?

办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个append GPLcommit id3628164...,于是就可以指定回到未来的某个版本:

7.2.2.回退指定的版本
$ git reset --hard 3628164
7.2.3.查看历史命令

现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的 commit id 怎么办?

在 Git 中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPLcommit id。Git 提供了一个命令git reflog用来记录你的每一次命令:

$ git reflog
7.3.撤销修改
7.3.1.撤销工作区的修改
$ git checkout -- aaa.txt
7.3.2.撤销暂存区的修改
$ git reset HEAD aaa.txt
7.4.删除文件

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用 rm 命令删了:

$ rm aaa.txt #删除文件
7.4.1.误删文件

如果是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- aaa.txt
7.4.2.删除文件

确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

$ git rm aaa.txt
$ git commit -m "确定删除文件"

8.GitHub使用

1.注册账号

2.登陆账号

8.1.生成SSH key

在自己本机生成

$ ssh-keygen -t rsa -C "15236674712@163.com"

在这里插入图片描述

8.2.查看SSH key

路径:C:\Users\Administrator.ssh

8.3.公钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOQUUlqCCekbZL/kxK4qq1/ymKcugHq+ma7/bi1L9opDuaL53rzmzmQo4uDqIY/bpSM2NioFaQpK1OBeM3VPZ0PP7nepcZrs/8/7R6iJxOe/3Cgn+YG+rZBWpjvrebpq4Z//R2mKkMViFRi9n2u9+jUKdH2DwAfFxVHfEY8fm2Kt/2eWa9s7IincNKHTAi4JDi/ToX0EhFsfaw7uYBKdw7yBOmt9aRbMWlBBIsjCGfp256K/bd18SGDezpnmCT3g1pjKgxkYQ+0qK/yPO3stYAY3clTFhR3oh9prVRMNXGJZ9+2nTdxX5H4pRgTP0wZWf59ThUbqa1TGk+sxWgvEOV 15236674712@163.com
8.4.添加gitHub的信任列表

Settings -->SSH and GPG keys -->New SSH key

在这里插入图片描述

8.5.在GitHub上创建仓库

your reposities --> new

在这里插入图片描述

8.6.将GitHub上的仓库拉到本地
$ git clone git@github.com:15236674712/cmfz-158.git
8.7.将本地的版本库推到GitHub
$ git add aaa.txt
$ git commit -m "描述信息"
$ git push origin
8.8.将GitHub上的更新更新到本地
$ git pull origin

9.将本地项目交由Git管理并且推送至远程仓库

9.1.向将项目初始化为Git仓库
$ git init
$ git add .
$ git commit -m "添加项目"
9.2.添加忽略提交文件的配置

命名为 .gitignore

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/

### VS Code ###
.vscode/
9.3.在GitHub上创建一个空的项目

在这里插入图片描述

9.4.与GitHub从仓库建立远程连接
$ git remote add origin git@github.com:15236674712/maven_day1.git
9.5.将本地项目推送至远程库
$ git push -u origin master
9.6.将远程库项目的更新到本地
$ git pull origin master

10.分支

1.创建分支
$ git branch dev  #dev是新的分支的名字
2.查看所有分支
$ git branch
3.切换分支
$ git checkout dev #dev是要切换分支的名字
4.创建并切换分支
$ git checkout -b dev
5.合并分支

注意:要切换到master分支上合并分支

$ git merge dev
6.删除分支

注意:要切换到master分支上删除分支

$ git branch -d dev

11.IDEA集成Git

11.1.配置Git目录在这里插入图片描述

在这里插入图片描述

11.2.配置登陆GitHub

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pk71AIbn-1587286512852)(img\配置GitHub.png)]

11.3.配置Git终端窗口(Git.Bash)

在这里插入图片描述
删除项目
在这里插入图片描述
windows上的git 关联 远程仓库github

$ git push -u origin master

测试连接是否成功
在这里插入图片描述

刷新GitHub界面 看到文件
在这里插入图片描述

通过远程仓库恢复本地版本库

 git clone https://github.com/gaozhy520/170.git

在这里插入图片描述
另外一种的拉取

$ git pull origin master

协同开发

在这里插入图片描述

协同开发

在这里插入图片描述

多人共享一个仓库对数据修改
每个人都需要拉取最新的版本到本地库中去开发
命令:

$ git pull origin master

五、版本冲突问题

解决思路

(1)代码有重合,选择保留一方
(2)代码无重合,可以选择保留一方或者同时保留双方代码

Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git push origin master
fatal: HttpRequestException encountered.
 ▒▒▒▒▒▒▒▒ʱ▒▒▒▒
To https://github.com/gaozhy520/170.git
 ! [rejected] master -> master (fetch first) //提示拒绝提交,版本冲突
error: failed to push some refs to 'https://github.com/gaozhy520/170.git'

//如果出现这个问题处理起来;
第一步要拉取远程的版本库
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git pull origin master
remote: Enumerating objects: 5, done.。。。。。。。。

merge是合并的意思 . ;把本地代码和远程的代码合并一个文件了
手动删除不需要的冲突的版本。或者保留全部
但是这个关键提示符号要删除

$ git status

 (use "git add <file>..." to mark resolution)
 both modified: b.txt
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master|MERGING)

//再次添加b.txt文件
$ git add b.txt


Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master|MERGING)

//提交b.txt     -m 'resovle b.txt conflict' 表示设置message提示消息
$ git commit    -m 'resovle b.txt conflict'



//查看状态
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git status


//再次提交
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git push origin master

。。。。。。。
remote: Resolving deltas: 100% (2/2), completed with 1 local object.

在这里插入图片描述

六、分支管理

在这里插入图片描述

在这里插入图片描述

创建分支

Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master) $ git checkout -b dev
Switched to a new branch 'dev'
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (dev)
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (dev) $ git branch
* dev
master

切换分支

Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (dev)
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

分支合并

Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git merge dev
Updating cee08ee..53483f0
Fast-forward
 c.txt | 0
 d.txt | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 c.txt

删除分支

Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git branch -d feture
Deleted branch feture (was 53483f0).
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git branch
 dev
* master
Administrator@OKDV0CSXRZHF64J MINGW64 /e/170 (master)
$ git branch -d dev
Deleted branch dev (was 53483f0).

分支使用

在这里插入图片描述

在这里插入图片描述

通过idea拉取远端的分支

在这里插入图片描述

idea分支的切换

在这里插入图片描述

idea 本地项目的切换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值