git 会了clone,pull,push,建分支,合并,暂存,commit,,rollback,merge就可以了,配合idea软件使用,就超级棒了
1 版本控制工具
1.1 集中式版本控制工具
缺点
事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕
机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
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里面,找到这个
我们拉取的时候,给这个地址起一个别名,不要每次都使用那么长的连接了