一晃好久了,转眼就快要到期末了,时间过得好快,自己也好久没有写博客了
git是什么:Git是目前世界上最先进的分布式版本控制系统。
git与svn的区别:SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器,在我看来这就类似于一对多,其致命的缺点就是一旦服务器死机或者被人攻击,所有项目源码就gg。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。在我看来这就类似于局域网,在局域网的各个主机可以相互交流,也可以提交到中央服务器。
先附上一张偷来的图
一、git的下载安装
进入 Git 的官网:https://git-scm.com/下载
二、常用命令介绍
1.安装完成后,打开git bash
初始化作者和邮箱
git config --global user.name "名字"
git config --global user.email "邮箱"
注意中间空格
2.新建一个文件夹,并在路径处输入git bash,即可将git bash进入当前路径。
git init
使用该命令初始化文件夹,使其为一个git仓库
可以看到已经生成了一个.git结尾的文件
其配置文件在:当前仓库/.git/config
git status
使用该命令查看仓库状态
3.新建一个test.txt,继续使用git status查看查看状态
发现有一个文件显示未提交状态
接下来我们使用
git add
将文件提交到暂存区
git add 文件名 # 将工作区的某个文件添加到暂存区
git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件
git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件
git add . # 将当前工作区的所有文件都加入暂存区
git add -i # 进入交互界面模式,按需添加文件到缓存区
4.将文件提交到本地仓库
git commit
其命令如下:
git commit -m "提交说明" # 将暂存区内容提交到本地仓库
git commit -a -m "提交说明" # 跳过缓存区操作,直接把工作区内容提交到本地仓库
5.查看日志
git log
git log # 查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明)
git log -p -次数 # 查看最近多少次的提交记录
git log --stat # 简略显示每次提交的内容更改
git log --name-only # 仅显示已修改的文件清单
git log --name-status # 显示新增,修改,删除的文件清单
git log --oneline # 让提交记录以精简的一行输出
git log –graph –all --online # 图形展示分支的合并历史
git log --author=作者 # 查询作者的提交记录(和grep同时使用要加一个--all--match参数)
git log --grep=过滤信息 # 列出提交信息中包含过滤信息的提交记录
git log -S查询内容 # 和--grep类似,S和查询内容间没有空格
git log fileName # 查看某文件的修改记录,找背锅专用
三、分支
1.输入git branch查看当前分支情况
git branch 分支名字
创建新的分支
但是当前仍位于master分支
git checkout 分支名字
切换到新的分支!
QQ截图20210529203744.png
此外,我们也可以在创建分支的同时,直接切换到新分支,命令为
git checkout -b 分支名称
2.分支合并
先切换回主分支git checkout master
在输入git merge a即可将a分支合并到主分支上
在合并分支的时候,要考虑到两个分支是否有冲突,如果有冲突,则不能直接合并,需要先解决冲突;反之,则可以直接合并。
3.删除分支
git branch -d 分支名字
如果遇到不可以删除可以使用git branch -D 分支名字
强行删除
4.为分支添加标签
git tag 标签名字
输入git tag即可查看标签
四、将代码提交到github
1.首先通过ssh将本机和giuhub绑定
参考https://blog.csdn.net/qq_35246620/article/details/69061355
首先将远程仓库克隆到本机
git clone 链接
现在我们将刚才的test.txt提交到github
首先add ,commit
然后输入git push origin 分支名称
现在我们已经提交成功了
2.拉取操作
先输入
git remote add origin 仓库链接
关联远程仓库 其中origin为远程仓库的名字
输入git pull origin 分支名称
同步远程仓库和本地仓库
可以看到已经成功了
五、设置别名
为了便于操作和记忆,我们可以设置别名
git config --global alias.别名 操作
如git config --global alias.co commit
就是将commit的别名设置为co
以后我们提交只需要git co 就可以了
输入git config -l可以查看本机的git配置
六、回滚
输入git log
找到想要回退的版本号之后,在本地 Git 仓库执行如下命令:
git reset --hard <版本号>或者git reset --soft <版本号>
对于上述两条命令,仅有--hard和--soft参数的不同,两者的区别是:
--hard,抛弃当前工作区的修改
--soft,回退到之前的版本,但保留当前工作区的修改,可以重新提交
执行完本地回滚之后,还需要执行如下命令,同步远端的内容:
git push origin <分支名>
在执行上述命令的时候,可能会提示本地的版本落后于远端的版本,因此我们还需要在上述命令中加上--force参数:
git push origin <分支名> --force
回滚前
回滚后