大家好,我是200,我又来了!
知识背景
问题:“在工作开发代码中,一个项目可能是由多个人去完成的,但是如果大家都在本地存放代码去开发的话,这种就可能会产生冲突,并且无法进行统一管理,导致开发困难。”
目前常用解决方案:SVN、Git
SVN:SVN是集中式管理工具,也就是说如果SVN挂了,就什么都做不了了,所以这就是集中式管理的弊端。
Git:Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。在项目内有一个Git仓库,也就是说每一个本地项目都有一个完整的Git仓库,所以即使断网的情况也不会影响提交代码,或某个人的git挂了,也不影响其他开发人员提交代码。
所以本文以Git进行展开讲解,如需了解SVN的使用可私信沟通了解
git图解

Git实战
Git命令行操作
1.安装git
首先进入GitHub官网,下载适合自己电脑的版本正常安装就可以。可以选择安装路径。选项默认即可。 安装完成以后出现右键出现Git Bash Here

2.登陆github,创建远程仓库


2.在桌面模拟创建一个项目

在文件里右键选择Git Bash Here

# 初始化仓库
git init
# 添加文件到暂存区
git add
#将暂存区内容添加到仓库中。
git commit


⚠️注意:上图出现报错的解决方式如下
#配置用户名
$ git config --global user.name 用户名
#配置邮箱
$ git config --global user.email 邮箱地址
3.提交到远程仓库
#将本地文件添加到远程
git remote add origin https://github.com/wth19970830/hellogithub.git
#上传到github
git push -u origin master
#拉代码
git pull
⚠️由于命令提交代码每次都需要输入密码,所以如下做免密操作获取密钥
# 获取密钥
$ ssh-keygen -t rsa -C 邮箱地址

上图可看到对应的密钥路径 已圈出
选择文件中id_rsa.pub中的内容复制到github


成功之后我们每次再运行 git push origin master命令无须再次输入密码要想实现免密提交代码,还有一点需要注意的就是,我们在使用git remote add 远程项目别名 远程项目地址命令的时候,要保证远程项目地址使用的是SSH协议而不是HTTPS协议
4.在github中删掉一个项目

内容添加项目名确认一下

IDEA操作git
1.创建web项目

提交成功后,查看github并没有显示成功,而我们做的这部操作时将文件添加到了本地我们还需要进行push操作上传到远程

直接点push就可以成功提交到远程仓库



2.新增文件
如果整个项目提交在根目录进行上传


3.手动添加方式

4.打开github上的项目


5.合作开发

6.安装插件

7.忽略文件插件

8.pull失败

解决:



拿出每次提交的版本 比如对这个版本感兴趣


Git命令补充
1.远程拷贝
#拷贝一份远程仓库,也就是下载一个项目。
git clone [url]
2.查看仓库状态
# 查看仓库当前的状态,显示有变更的文件。
git status
git status -s #获取简短的输出结果
3.比较文件的不同,即暂存区和工作区的差异。
# 命令比较文件的不同,即比较文件在暂存区和工作区的差异。
# 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件对区别。
git diff
# 尚未缓存的改动
git diff
# 查看已缓存的改动
git diff --cached
# 查看已缓存的与未缓存的所有改动
git diff HEAD
4.回退版本
git reset [--soft | --mixed | --hard] [HEAD]
-mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
git reset [HEAD]
# 实例
$ git reset HEAD^ # 回退所有内容到上一个版本
$ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
$ git reset 052e # 回退到指定版本
# --soft 参数用于回退到某个版本
git reset --soft HEAD
$ git reset --soft HEAD~3 # 回退上上上一个版本
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:
git reset --hard HEAD
$ git reset –hard HEAD~3 # 回退上上上一个版本
$ git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。
$ git reset --hard origin/master # 将本地的状态回退到和远程的一样
注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
HEAD 说明:
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
以此类推...
可以使用 ~数字表示
HEAD~0 表示当前版本
HEAD~1 上一个版本
HEAD^2 上上一个版本
HEAD^3 上上上一个版本
以此类推
5.查看提交日志
git log
# 查看历史记录的简洁的版本
$ git log --oneline
6.删除工作区文件
git rm <file>
下期预告
本期针对windows进行git讲解,下期将会针对Mac的git进行讲解,并补充本文中未涉及到的命令及实战,我们下期见喽~