git 会了clone,pull,push,建分支,合并,暂存,commit,,rollback,merge就可以了,配合idea软件使用,就超级棒了

1 版本控制工具

1.1 集中式版本控制工具

缺点
事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕
机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

1.2分布式版本控制工具

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

2 Git 工作机制


我们本地安装了git,

打开这个可视化界面


这个就是工作区

3 Git 和代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网
✓ GitLab
互联网
✓ GitHub(外网)
✓ Gitee 码云(国内网站)

4 安装成功查看版本

在 Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功。

5 git 常用命令


git安装成功,我们首先设置用户名称和邮箱,这个邮箱是随便起的,因为git不会验证这个邮箱;

我们使用前两个命令设置成功之后,我们如何查看自己是不是设置成功呢?

我们打开c盘,user文件夹里面,找到


打开这个文件


就可以看到刚才配置的写到了里面;

我们也可以在git里面用命令查

git config --global -l

5.1为什么要设置用户名和邮箱

说明:
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能
够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,
否则无法提交代码。


※注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号
没有任何关系。

5.2git init(初始化本地文件)

我们想要git管理我们的项目,必须要将我们的项目给了git,那么如果让git知道,要管理哪个项目呢?

举一个例子,我们有一个文件夹,我们想要git管理,那么我们就要进去这个文件夹,然后执行这个命令

我们首先创建一个文件夹



执行完命令,我们回去看文件夹


这个文件夹下多了一个这个;

5.3git status (查看当前项目的状态)

进入到git管理的项目文件里面,再执行这个命令,就可以看当前项目的状态

我们在这个文件夹下创建一个文件


之后还是执行这个命令

5.4git add 文件名 (将文件添加到暂存区)


我们可以把自己的文件先提交到暂存区,执行完这个命令,我们看看这个文件项目的状态,继续执行git status

也就是,变绿色,就相当于git追踪到了这个文件,这个文件已经放到了git的暂存区了;

人家git也提示你,不想把这个文件放到这个历史版本里面,在add之后,可以删除,删除的命令就是

git rm --cached  test.txt

5.5git commit -m " 日志信息" 文件名

使用这个命令,将这个文件提交到本地库,并且有版本信息了

5.6git reflog / git log 查看历史记录

5.7修改文件

我们现在已经commit了,但是突然想要要修改文件
我打开这个文件,添加了几行,进行保存

在工作区打开

发现已经修改,我们使用git查看他的状态

我们重新add commit 之后

我们查看版本信息

5.8版本穿梭

比如我们对一个文件,进行了3次commit,但是想要第一次的,后面的不好,我想要返回第一个,咋办

我们使用命令 git log ,查看到历史版本,把版本号记下来,就是你想要回到的版本号记下来;

使用命令

git reset --hard 版本号


使用步骤总结:
1 使用git reflog查看你提交过的所有的版本
2 git reset --hard 回到你要到的版本号

只要回到对应的版本里面,就可以看到我们项目里面的东西已经变化了;

6git 分支

6.1分支命令

6.1.1查看分支

git  branch  -v

6.1.2创建分支


我们进入一个分支,在当前里面创建一个分支,就是对当前项目复制了一份

6.1.3切换分支

git   checkout    分支名


切换过来的分支,里面的东西和主分支里面的是一模一样;

6.1.4修改分支里面的东西

已经切换到分支了,在这个分支里面,将东西进行修改之后,进行add commit之后,我们可以看到版本已经生成

提示是这个分支进行提交的;

我们打开本地库,就可以看到里面的东西已经变为分支里面进行修改的了;

6.1.5git merge 分支名

git merge 分支名

现在我们想要把分支里面的东西合并到master里面,我们就需要到master分支里面,执行命令


执行完以上的命令,我们就合并完成了,我们看看文件里面是不是已经合并过来的东西,已经合并成功;

我们现在在master里面修改了东西,想要合并到分支里面,操作是。。
1 先在master里面把文件修改,add commit 之后
2 切换到分支
3 将主的合并过来

总结:
想把A 合并到B,首先进入B ,执行合并A的命令

6.1.6合并冲突(手动解决)

为什么会出现合并冲突?

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替
我们决定使用哪一个。必须人为决定新代码内容。

在文件里面展示的情况是

如果是代码,出现这种,完全不能运行,所以这个就是合并冲突了;


既然文件里面出现了那些符号,我们手动去掉,之后合并,合并的时候,就不要带项目名字了


这样在这个里面就修改成功了,另一个分支里面的东西没有变化;

7 github

7.1 github 里面创建远程仓库

登录到GitHub里面

7.2 本地拉取GitHub的仓库

在GitHub里面,找到这个


我们拉取的时候,给这个地址起一个别名,不要每次都使用那么长的连接了