集中式vs分布式
集中式版本控制系统:
版本库是集中存放在中央服务器的,干活时,用的都是自己的电脑,要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。最大的毛病就是必须联网才能工作,如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟
l.jpg
分布式版本控制系统
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,工作时,不需要联网,因为版本库就在你自己的电脑上。
多个人如何协作:你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
l (1).jpg
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
git使用(Windows版本)
- 下载 下载安装地址
在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,Git安装成功 - 配置账号
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
-
工作流程
git.jpg
常用命令
mkdir <filename>:创建文件夹
rm <filename>删除文件
cd <filename>:进入文件
pwd :查看当前所在目录
ls -ah :显示.git文件夹
vscode方法 :用户设置 > 文本编辑器 > Exclude,找到对应排除的项”/.git“,并删除它,隐藏的.git文件就会自动出现
我是一条分接线=================================================
创建仓库:git init
添加文件:git add <filename> 添加文件至暂存区(git/index),可反复执行添加多个文件
提交: git commit -m "xxx" 提交暂存区至当前分支仓库
查看状态: git status
差异:git diff <filename>
简单log信息 :git log --pretty=onelin
git reflog :查看所有历史记录(包括回退等,后悔药)
反悔性操作
git checkout --<filepath 可多个> : 丢弃工作区修改(命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令)
git reset HEAD -- <filepath> 取消暂存(add过的文件会重新放入工作区)
(commit 我是一条分界线==================================)
git reset --hard HEAD^ :回退上个版本 (^^上上个,)
git reset --hard <commit id>回退指定版本号
删除性操作
只是本地删除:rm <filename>
恢复本地删除的文件 : git checkout --<filename>
删除版本库文件 : git rm <filename> git commit -m ‘delete’
查看分支:git branch
创建分支:git branch <name>
切换分枝:git checkout <name>或者git switch <name>
创建+切换分支:git checkout -b <name>或者git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
强行删除分支:git branch -D <name>
多分支工作
用法参考:https://blog.csdn.net/java_lifeng/article/details/103687114?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=bc92ebe7-d1ff-432f-8ed6-2a11523f2eb5&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
保留A分支工作现场:git stash
查看保留记录:git stash list
还原工作现场:git stash pop (还原并清除存储) /Git stash apply (要用git stash drop去删除存储)
复制某个分支的提交至当分支:git cherry-pick <commit id>
git rebase
版本快照
设置tag : git tag <tagname>
设置固定版本 的tag:git tag <commit id>
取消本地分支和远端的映射:git branch --unset-upstream
image.png
网友评论