相信不管是前端还是后端的小伙伴在开发的时候都要使用到我们的代码管理工具
git
,当然了非计算机
的友友们也是会用到的,方便管理我们的项目(文件)版本
,不用再去来回复制粘贴啦。一般分可视化(sourceTree
)和命令行(git Bash命令行
)两种方式。今天就给大家梳理一下命令行怎么管理我们的项目(文件)。
一、git工具安装
git官网以前还好好的,现在不知道什么原因下载速度特别慢,像我这种不懂科学上网的小学生就只能耐心等待了,或者大家可以后台私信我,免费发给大家想用哈哈。
二、创建仓库(git init)
初始化当前目录为仓库,打开git自带的命令行工具,只需要在我们要创建项目的目录下单击鼠标右键
选择Open Git Bash here
即可。
js
git init // 初始化当前目录为仓库
这会生成一个.git
的文件,默认情况下这个文件是隐藏的我们可以使用ls -la
查看到它。这个文件非常重要。它记录着我们每次修改的版本信息,方便我们去切换。
三、git常用命令
1. git add
当我们需要文件之后,使用git add .
可以将文件添加到缓存区。
2. git commit和修改
- 当我们运行完
git add .
后,使用git commit -m "提交的信息"
可以提交到本地仓库。到这就可以去推送远程端了(git push)
注意 :首次推送远端的时候需要运行git push -u origin "master"
-
当我们发现提交的信息有误想要修改怎么办?别慌教你一招👇
jsgit commit --amend
3. git log(提交日志)
日志就是我们每次提交和修改的信息
shell
#git log 全部显示,感觉优点乱
# git log --pretty=oneline 这样写很优雅
# git log --oneline 优雅简化版
4. git reset(回滚)
这个挺重要的,我得整理的详细亿点。
- 使用
--soft
就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。 - 如果使用
--mixed
,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。 - 如果使用
--hard
,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。
1. 回滚到指定历史版本
shell
# 1. 先使用git log查看一下历史版本
git log
# 2. 在使用git reset --hard命令回滚
git reset --hard 你要回滚的id值
# 举例:git reset --hard 10086
2. 回滚到当前版本的上一个版本
shell
git reset --hard HEAD^
# git reset --hard HEAD~2 回退两个版本
注意 :这里的~2
指回滚多少次,HEAD~2
代表回滚master
前二个版本
5. git status
- 查看当前仓库的一个状态信息。
解释:这句话的意思是我们的工作区是干净的,没有任何变更。
- 这是我们修改工作区文件的一个状态,此时为红色修改。
- 当我们使用
git add .
后会提交到我们的缓存区。
- 检查没有问题后使用
git commit -m "提交信息"
提交到我们的本地仓库。
小知识点:将文件撤销回到最近一次修改的状态:git checkout -- file
js这个功能其实就是,我们修改了文件的内容,突然发现我们改的不对, 你`Ctrl+Z`你也不知道撤销到什么时候,那么我们就可以使用这个命令啦, 直接把该文件回退到我们要修改这个文件的时候,不知道这个例子你听懂了吗?
6. 工作区与缓存区
在git下有一个概念是缓存区
,这是其它集中式版本控制系统没有的
工作区:工作区就是你当前的工作目录
缓存区 :这里存放了你使用git add
命令提交的文件描述信息,它位于.git
目录下的index
文件中
7. git reflog(提交历史)
git reflog
可以查看当前版本库的提交历史,你所有奇葩的操作都会在这个里边显示。
四、git分支管理
1. git branch(git checkout)
git branch 分支名
是创建一个分支,但是还有一个命令比它方便git checkout -b 分支名
-
git checkout -b dev相当于👇:创建一个分支,并且创建完成后切换到当前分支。
shell- git branch dev - git checkout dev
-
git branch 查看本地分支信息
-
git checkout master 切换分支到master
2. git merge(合并分支)
假如我们要开发一个新的功能,一般我们会新创建一个分支xxxx-dev
,当我们在xxxx-dev
开发完成后,假如我们要上线了,我们是要合并到master(主分支)
上,这时就用着这个命令啦!
js
git checkout master // 切换到我们要合并的分支
git merge xxxx-dev // 我们创建的分支(xxxx-dev)
注意:在合并分支之前,我们需要git checkout切换到我们主分支上再合并我们自己的分支。
3. 删除本地分支
当我们功能上线完成后,再出现新的Bug修改
,我们直接拉取master
代码就可以了。然后再创建新的分支,此时我们之前的xxxx-dev
分支就不需要了,我们就可以删除啦。
shell
git branch -D 分支名
小知识点:远端分支怎么删除呢?
删除远程分支:git push origin --delete 远程分支名
注意:这里的远程分支名不需要加origin,输入分支名就可以了
五、远程连接远程仓库
把项目(文件)推送到远程仓库可以方便我们在其他电脑或手机查看,远程仓库有github
和gitee
,github网速有点慢,这里我使用gitee
进行演示,他们大体上是一样的。
1. 配置本地环境
-
右键打开我们的
git
工具 -
配置一下我们的用户名和邮箱
jsgit config --global user.name "username" //( "username"是咱们自己的账户名:像我的就是iyongbao) git config --global user.name "username" //( "username"是自己的账户名:像我的就是iyongbao@outlook.com) git config --global --list // 查看我们配置对不对呀
2. 生成ssh密钥
这个东西可以让我们本机和远程仓库建立连接
js
ssh-keygen -t rsa // 一直敲回车键出现下面图片展示就可以了
这个密钥在我们电脑的C:\Users\xxxxx\.ssh
3. 配置gitee
关于gitee的登录注册这里就不做演示了。gitee官网
测试我们的配置是否成功,打开我们电脑的git命令行工具
,输入ssh -T git@github.com
。首次我们需要输入yes
。
4. git remote
在连接远程仓库的时候我们可能会用到,比如我们电脑想同时把项目(代码)推送到gitee
和github
,这个时候我们就需要用到它了,git remote
本质上是用来管理远端仓库列表的命令,这些远端仓库的信息都被保存在 ./git/config 文件中。下边列举几个常用的命令👇
js
git remote -v // 展示当前关联的其他仓库列表
git remote show origin // 获取本地分支和远程分支之间的关系
git remote rename <old> <new> // 重命名远程分支
git push origin :testa // 删除远程分支, testa是远程分支
git remote prune origin // 删除本地分支在远程不存在的分支
git remote get-url origin // 获取远程仓库的URL
5. 小结
到这里就可以了,我们能够使用ssh
去clone
我们gitee
上边的项目。
六、总结
今天就先写这么多吧!有遗漏的以后在补充,这是我平常工作中能用到的一些命令,希望对大家有所帮助,其实git
在我们的工作中十分的重要,没接触git之前,我会复制好多文件file1、file2、file3
,到关键的时候呢可能还会忘记这个文件是做什么的,现在想想就好笑。欢迎大家评论留言,让我们共同进步。
哦,对了!2023年马上就要过去了,今年你定下的愿望都实现了吗?技术上有没有突飞猛进呢?有没有达到自己所期望的状态呢?人呀!总是在不断的学习和模仿中成就自己,你是我也是,我们一起迈向更好的2024。