版本控制神器之Git深入介绍

Git简介

Git(全局信息追踪器)。
Git是一个分布式版本控制工具,Git的使用中央仓库不是必须的,用户本地就是一个完整的版本仓库,代码的前进、回退、删除等等操作都可以直接在本地进行,不需要中央仓库。但是,在实际操作中,为了能够和其他同事快速沟通以及合并代码,一般还是会搭建一个中央仓库。Git对分支的管理非常友好,可以快速创建或者合并分支。
Svn集中式的版本控制工具,Svn中,必须要有中央仓库,所有的版本信息都保存在中央仓库中,代码的前进、回退、删除等等操作都需要在中央仓库中进行,用户本地保存的只是版本仓库的一个副本,Svn中的分支非常臃肿。

Git安装

https://gitforwindows.org/
链接:https://pan.baidu.com/s/1ZuQtqS_qW_YdrDkv1rvqQg
提取码:70uz
配置个人信息
git config --global user.name 'bobo'
git config --global user.email 'dengpbs@163.com'
在多个客户端的情况下用身份识别的

基本操作

1.创建版本库

指定一个文件夹位置即可。

2.初始化操作

我们要想将某个文件夹作为我们的版本库还需要通过 git init 命令来初始化。

3.添加文件到版本库中

想要把某个文件管理起来,首先创建一个文件。

然后通过git add命令添加到版本库中。

再去执行git commit -m '备注' 命令,来提交。

commit -m的-m后面跟的是本次操作的备注说明信息。最好是有意义的,也就是下次看到这个说明就清楚提交了什么内容。
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。

4.status和diff命令
5.版本回退
5.1 log命令

查看文件的历史版本。

简化日志文件的显示方式 --pretty=oneline。

5.2 版本回退

回退到上一个版本
git reset --hard HEAD^

回退到指定的版本
git reset --hard 版本编号

回退到最新版本
一种方式就是可以查看之前记录的最新版本的编号,但是log是看不到最新的日志记录的哦。


我们还可以借助另一个命令 git reflog

在这个命令中会记录过往的所有的操作,包括版本的切换回退。

工作区和暂存区

git add xxx 该命令只能将文件从工作区提交到暂存区。
git commit .... 只能将文件从暂存区提交到版本库中。


撤销管理

1.还未提交到暂存区

git checkout -- fileName

2.提交到了暂存区

git reset HEAD file 移除暂存区回到工作区。
git checkout -- fileName 撤销操作。

3.已经提交到了版本库中

直接回退到上个版本即可。

git reset --hard HEAD^

删除管理

操作和添加文件是差不多的,这么理解的话就很容易了~!
工作区:是我们直接编辑的地方,比如Eclipse打开的项目,记事本打开的文件,直接操作。
暂存区:数据暂时存放的区域,是工作区和版本库之间进行数据交流的纽带。
版本库:存放已经提交的数据,push的时候,就是将这个区域中的数据push到远程仓库的。

GitHub远程仓库

1.创建SSH Key

ssh-keygen -t ras -C "dengpbs@163.com"

2.登录GitHub

配置SSH


3.创建远程仓库
4.关联远程仓库


git remote add origin git@github.com:q279583842q/gp-repository-01.git

5.推送文件到远程库中

我们只能将版本库中文件推送到远程库中,推送的命令是
git push -u origin master 第一次推送的时候要加上-u 后面就不用了。

推送成功后,我们就可以在远程仓库中看到对应的文件。

6.克隆远程仓库

git clone git@github.com:q279583842q/gp_repository_02.git

分支管理

1.创建及合并分支

git branch 查看分支

git branch dev1 创建分支

git checkout dev1 切换分支

git checkout -b dev2 创建分支并且直接切换到分支中。

2.分支的操作


我们在分支上的相关的操作其实的独立的,我们提交到分支对应的版本库中的情况下,其他分支中是查看不到了,包括主分支,如果我们想要在主分支中查看到对应的信息,我们就需要操作分支合并。
首先切换到master分支中然后执行 merge 命令即可。

3.删除分支

git branch -d dev1

4.解决冲突


在合并文件的时候出现了冲突,这时候的解决方案非常简单,直接编辑冲突的文件即可,然后 add commit 操作即可。

Bug分支

针对是突发的任务,我们保持当前分支的工作状态,而去处理临时任务,处理完成后又可以继续回落工作。
git stash 存储当前装
git stash list 查看存储的状态列表
git stash apply 恢复之前的状态

多人协作

从远处库中更新最新的文件。
git pull 更新同步远处库中的内容
git push origin master 推送文件到远程库中
git push origin dev1 推送到GitHub中的dev1分支中,如果不存在,就会创建dev1分支
git branch --set-upstream-to=origin/dev1 dev1 本地分支和远程库中的分支不一致的情况下可以设置对应关系
因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin 推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
  5. 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/。

标签管理

git里边默认的版本好不容易记。对于一些里程碑版本,需要记下来,此时可以使用标签,给项目的发布版本打标签,也是标签的一个重要功能之一。

相关推荐
high201140 分钟前
【Git】-- 版本说明
git
kaixin_learn_qt_ing1 小时前
git clone
git
sin22011 小时前
git stash
git
喝鸡汤1 小时前
一起学Git【第二节:创建版本库】
git
慢慢成长的码农1 小时前
git 同步分支操作
git
sin22011 小时前
git推送本地仓库到远程(Gitee)
git·gitee
丁总学Java3 小时前
git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表
git
yylの博客6 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh
丁总学Java7 小时前
(Z Shell)zsh: no matches found: ? 使用单引号包裹
git·zsh
萌狼蓝天7 小时前
【NAS】绿联NAS+极狐Gitlab+1Panel
git