svn与git的区别
svn 集中版本控制,有一个中央服务器
git:分布式版本控制每个用户拥有全部的代码,不会因为服务器问题造成不能工作的情况
下载安装
阿里云下载地址:https://npm.taobao.org/mirrors/git-for-windows/


一直到底,安装完就可以使用了
启动

- cmd:是windows风格
- bash:linux风格的

基本的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 显示没有啥东西,执行完名字跟邮箱的设置后就有内容了


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 初始化


克隆远程的仓库到本地
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

新建一个文件测试一下


使用 git add . ,将其添加至暂存区中

使用 git commit -m “可以放一些更新的消息” ,提交暂存区内容到本地仓库

为了忽略 建立 gitignore
一些本地idea的东西我们不用

使用码云
https://gitee.com/,进去以后注册登录
设置本机绑定SSH公钥,实现密码登录
为了避免push,我们使用免密码登录

进入到用户目录下,建立了.ssh

执行ssh-keygen 生成公钥
如果是 ssh-keygen -t rsa 则是 使用rsa算法,运行生成出现两个对应的文件

把公钥注册到码云
公钥是pub

使用码云创建仓库

许可证:就是限制
将远程仓库搞到本地

使用IDEA集成GIT
绑定git,将远程的git文件拷贝到项目中即可!


替换以后颜色有变化

红色代表没提交,文件的颜色代表选中的状态
使用先add ,此时文件都变成了绿的

紧接着点提交就可以了

cmomit提交到本地了,多了一条记录信息

点击右上角了,push到网络了

git 分支
分支结构由于是自己个人的开发,暂时用不到这里不做赘述
使用git 实现两台电脑同步Idea代码
由于笔记本的性能不高,运行idea时间较长以后容易造成卡顿,我又搭配了一台主机
由于主机是全新的环境,我搭建了java和mavne的环境,以便于此次项目的开发
1.首先进行上边介绍的步骤,下边是我说的大纲的方法
笔记本(主机位):下载,配置,使用码云
台式机(副机位):下载,配置,使用码云;这里需要注意配置,需要使用不同的账号,码云那一步需要重新操作上传一个属于本机的密钥
这里虽然没有图文,但是都在上边
2.配置完以后,我们进行idea中的使用
由于我的项目已经开发到一半了,所以我需要先在笔记本上提交到码云
1.先将项目add以下,就是标记我要搞这一些了

2.commit ,提交到本地仓库,这里可能会存在让你再输入一边码云的情况


3.可以直接在线便commit选项中协同push,也可以选择


4.在副机位点击

默认选择,就好了,就能看到了,具体git的使用方法,可以再去看一下别的教程,这里主要实现半自动代码的同步
|