svn与git的区别
svn 集中版本控制,有一个中央服务器
git:分布式版本控制每个用户拥有全部的代码,不会因为服务器问题造成不能工作的情况
下载安装
阿里云下载地址:https://npm.taobao.org/mirrors/git-for-windows/
![image-20220328130508601](https://img-blog.csdnimg.cn/img_convert/1ab21ca646cb7eb26d324cfc1f561d85.png)
![image-20220328130539441](https://img-blog.csdnimg.cn/img_convert/b8d8eecaaa57222a64ea6a639d1b96b1.png)
一直到底,安装完就可以使用了
启动
![image-20220328162624375](https://img-blog.csdnimg.cn/img_convert/9079a39d791f60994472d2b6441d991d.png)
- cmd:是windows风格
- bash:linux风格的
![image-20220328162731895](https://img-blog.csdnimg.cn/img_convert/9589991049927aa8032e9bd0cdacc652.png)
基本的linux命令
- cd :前进
- pwd:显示当前目录
- clear :清屏
- touch: touch index.js 新建
- rm :删除,-r删除一个文件夹, rm -r src,删除src目录 rm-rf:删除所有
- mkdir:创建一个新目录
- mv:移动文件
配置
git config -l
设置用户名以及密码
git config --global --list
$ git config --global user.name 账户名
$ git config --global user.email 邮箱
一开始执行 list 显示没有啥东西,执行完名字跟邮箱的设置后就有内容了
![image-20220328163955987](https://img-blog.csdnimg.cn/img_convert/6a9b42f4f02ebc79822f85761b3eb4c2.png)
![image-20220328164904991](https://img-blog.csdnimg.cn/img_convert/4511f72c7e84c011cdf6698df29982f0.png)
git 理论
实现过程
实现工作目录->暂存目录->历史存在目录->远程目录
对应命令:git add files git commit git push
实现工作目录<-暂存目录<–历史存在目录<–远程目录
对应命令:git checkouot git reset git pull
工作区 wokeplace,平时放置代码,里边存在一个.git文件夹
暂存区,本身只是一个文件.是提交的一个过度
Repository:仓库区,安全存放数据的为止,HEAD指向最新放入仓库的版本
Romete:代码托管的服务器
实现
本地仓库搭建
在目录下 D:\java学习\gitcode,右键打开git窗口
首先执行 git init 初始化
![image-20220328170510945](https://img-blog.csdnimg.cn/img_convert/23409ebfdabac275eec4a81c804ddfa1.png)
![image-20220328170516330](https://img-blog.csdnimg.cn/img_convert/f6c65dd4fd8700d5d5ee19caf834a43d.png)
克隆远程的仓库到本地
git clone xxxxx
后边xxxx是gitee或者github下载下来的链接
git 文件操作
文件的四种状态
以一个student.java为例,一开始新建这样一个文件
- Untracked(未标记): student.java(Untracked)->git add->student.java(Staged)
- Unmodify: student.java(Unmodify,已入库)->被改变->student.java(Modified)
student.java(已入库)->git rm->student.java(Untracked)
- Modified: student.java(Modified,已入库被修改)->git add->student.java(Staged)
student.java(Modified,已入库被修改)->git checkout(覆盖掉修改)->student.java(Unmodify,已入库)
- Staged(暂存状态):student.java(Staged)->git commit(提交到库中)->student.java(Unmodify)
student.java(Staged)->git reset HEAD xxx(取消暂存)->student.java(Modified)
观察文件状态
git status
![image-20220328173007175](https://img-blog.csdnimg.cn/img_convert/e21f065cd4b19c0cb715e405e3b7de91.png)
新建一个文件测试一下
![image-20220328173127185](https://img-blog.csdnimg.cn/img_convert/9994a09ead16152d12ddbea999f75198.png)
![image-20220328173118366](https://img-blog.csdnimg.cn/img_convert/46c85e59ddff8994a10f054d008fcd09.png)
使用 git add . ,将其添加至暂存区中
![image-20220328173309427](https://img-blog.csdnimg.cn/img_convert/02596a8ea0043f6885c61a5f78efc4a6.png)
使用 git commit -m “可以放一些更新的消息” ,提交暂存区内容到本地仓库
![image-20220328173553676](https://img-blog.csdnimg.cn/img_convert/488b9980a55aa7fa6dfbb003ede6539f.png)
为了忽略 建立 gitignore
一些本地idea的东西我们不用
![image-20220328174826175](https://img-blog.csdnimg.cn/img_convert/036967b129eb8dbadc23750a960c0e5a.png)
使用码云
https://gitee.com/,进去以后注册登录
设置本机绑定SSH公钥,实现密码登录
为了避免push,我们使用免密码登录
![image-20220328175539793](https://img-blog.csdnimg.cn/img_convert/c0fa577fd873019f92c5009753181849.png)
进入到用户目录下,建立了.ssh
![image-20220328175735466](https://img-blog.csdnimg.cn/img_convert/fb5f8a3e17389833fa8f9368bd6013a4.png)
执行ssh-keygen 生成公钥
如果是 ssh-keygen -t rsa 则是 使用rsa算法,运行生成出现两个对应的文件
![image-20220328181251846](https://img-blog.csdnimg.cn/img_convert/9d5968dc5b3484d75bd1e55d7f2c40c7.png)
把公钥注册到码云
公钥是pub
![image-20220328181624516](https://img-blog.csdnimg.cn/img_convert/249ff6b86aa832858a5c7cdf65d391c1.png)
使用码云创建仓库
![image-20220328181837291](https://img-blog.csdnimg.cn/img_convert/b6a377a6b8a747f3ce147dd1478bb7ff.png)
许可证:就是限制
将远程仓库搞到本地
![image-20220328182208613](https://img-blog.csdnimg.cn/img_convert/3e0f54ad08da2833b13a14f426ade6b7.png)
使用IDEA集成GIT
绑定git,将远程的git文件拷贝到项目中即可!
![image-20220328182536422](https://img-blog.csdnimg.cn/img_convert/7fb1ab0fee8af4b19f1aa8738a13cac4.png)
![image-20220328182714790](https://img-blog.csdnimg.cn/img_convert/c468db34482a1509cdac0a3508e1175a.png)
替换以后颜色有变化
![image-20220328183143242](https://img-blog.csdnimg.cn/img_convert/40dc4978513b72728add00f7e203bbb4.png)
红色代表没提交,文件的颜色代表选中的状态
使用先add ,此时文件都变成了绿的
![image-20220328183908537](https://img-blog.csdnimg.cn/img_convert/920fcac69b1feda2fe33f675cf6f276d.png)
紧接着点提交就可以了
![image-20220328185259565](https://img-blog.csdnimg.cn/img_convert/e0040f3bdd40e123cf8012b43698a52d.png)
cmomit提交到本地了,多了一条记录信息
![image-20220328185444901](https://img-blog.csdnimg.cn/img_convert/82b33bcee922049153819c017dcf3a92.png)
点击右上角了,push到网络了
![image-20220328185705549](https://img-blog.csdnimg.cn/img_convert/1416e5f889de97013738fa038193ecd0.png)
git 分支
分支结构由于是自己个人的开发,暂时用不到这里不做赘述
使用git 实现两台电脑同步Idea代码
由于笔记本的性能不高,运行idea时间较长以后容易造成卡顿,我又搭配了一台主机
由于主机是全新的环境,我搭建了java和mavne的环境,以便于此次项目的开发
1.首先进行上边介绍的步骤,下边是我说的大纲的方法
笔记本(主机位):下载,配置,使用码云
台式机(副机位):下载,配置,使用码云;这里需要注意配置,需要使用不同的账号,码云那一步需要重新操作上传一个属于本机的密钥
这里虽然没有图文,但是都在上边
2.配置完以后,我们进行idea中的使用
由于我的项目已经开发到一半了,所以我需要先在笔记本上提交到码云
1.先将项目add以下,就是标记我要搞这一些了
![image-20220329064704435](https://img-blog.csdnimg.cn/img_convert/4eef05c844a54e84871bd28a6de5bb3d.png)
2.commit ,提交到本地仓库,这里可能会存在让你再输入一边码云的情况
![image-20220329064805268](https://img-blog.csdnimg.cn/img_convert/2e5a39557ac34a1d1110a2d900fbb950.png)
![image-20220329064917115](https://img-blog.csdnimg.cn/img_convert/f875938c18a5f3e5353920a3f852abb2.png)
3.可以直接在线便commit选项中协同push,也可以选择
![image-20220329065042887](https://img-blog.csdnimg.cn/img_convert/7836895e5a16d7f07bd6490129c0af1b.png)
![image-20220329065109214](https://img-blog.csdnimg.cn/img_convert/e786f75fa39780b34bdb42edba85c925.png)
4.在副机位点击
![image-20220329065141421](https://img-blog.csdnimg.cn/img_convert/5cd79c9f922611647fe5792ae9543899.png)
默认选择,就好了,就能看到了,具体git的使用方法,可以再去看一下别的教程,这里主要实现半自动代码的同步
|