Git-分布式版本控制
Git 是什么
Git 是一个分布式版本控制软件,主要用来做代码管理。这样说你肯定蒙,要想明白 Git 是什么我们只需要理解软件 版本控制 分布式分别是什么?
- 软件 -> 类似于 QQ、offic、网易云等安装到电脑上使用的工具。
- 版本控制 -> 论文、代码、海报设计等,不停的更新迭代形成不同的版本。
- 分布式 -> 简单来说就是多台电脑同时工作,互相不干扰。
集中式与分布式

- 集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。
- 集中式版本控制有安全性问题,因为只有中心服务器拥有一份代码,所以当中心服务器挂了所有人都没办法工作。
- 集中式版本控制需要连网才能工作,因为代码存在服务器上,而分布式版本控制不需要连网就能工作,代码存储在每个人的电脑中。
中心服务器
中心服务器用来交换每个用户的修改,没有中心服务器也能工作,但是中心服务器能够 24 小时保持开机状态,这样就能更方便的交换修改。Github 就是一个中心服务器。
为什么要做版本控制
这样可以保留之前的版本,如果有需要可以回滚和修改。如:写着写着发现还是之前之前的方案好;或是写着写着发现写不下去了,想要回退到之前可以使用的版本。
怎么安装
网上教程一堆,这里就步详细介绍了。可以参考 官网。
参考资料
Git学习:https://www.runoob.com/git/git-tutorial.html
可视化练习Git:https://learngitbranching.js.org/?locale=zh_CN
怎么使用
要想让git对一个项目进行版本控制需要以下步骤:
进入要管理的项目文件夹
假设我要管理根文件夹下
project的项目cd /project执行初始化命令
git init提示
这会在该文件夹下生成
.git文件,这个文件主要用来存储版本信息,是 Git 工作的核心。目录介绍:
- branches :分支管理目录
- config :当前项目仓库的配置信息
- description :当前项目的描述
- HEAD :当前项目仓库的当前版本信息
- hooks :当前项目仓库的钩子目录
- info :仓库相关信息
- objects :仓库版本信息
- refs :引用信息
查看目录下的文件状态
可以使用
-s参数来获得简短的输出结果:git status # 注: 新增文件和修改过的文件都红色的将文件添加入暂存区
git add 文件名 git add . # 注: git add . 表示将所有文件添加入暂存区配置个人信息:用户名、邮箱【一次即可】
git config --global user.email "you@example.com" git config --global user.name "Your Name"配置相关操作:
查看所有配置项:
git config --list查看仓库级的 config:
git config --local -l查看全局级的 config:
git config --global -l查看系统级的 config:
git config --system -l
生成版本
git commit -m '描述信息'回滚版本
git reset # 注: 版本号使 git log 和 git reflog 命令查看注意
谨慎使用
–-hard参数,它会删除回退点之前的所有信息。
远程仓库
添加远程仓库
git remote add <shortname> <url> git remote # 查看当前有哪些远程仓库- shortname:给远程仓库取个名
- url:远程仓库地址
克隆远程仓库
git clone <repo>- repo:远程仓库地址
推送代码
git push <远程仓库名> <本地分支名>:<远程分支名> # 如果本地分支名与远程分支名相同,则可以省略冒号 git push <远程主机名> <本地分支名>注意
这里的 远程仓库名 就是上面添加远程库取的远程仓库名。
获取代码
git pull 其实就是 git fetch 加上 git merge FETCH_HEAD 。
git pull <远程主机名> <远程分支名>:<本地分支名>
其他操作
查看版本
git log # 或者 git reflog git log –p # 过滤查看日志 # 退出按【q】键 # ctrl+f向下分页 # ctrl+b 向上分页 git log --after '2018-11-6' # 显示指定日期之后的日志 git log --before '2018-11-6' # 显示指定日期之前的日志 git log --author 'lisi' # 指定显示指定开发者的日志分支操作
git branch # 查看有哪些分支 git branch <分支名> # 创建分支 git checkout <分支名> # 切换分支 git branch -D <分支名> # 删除分支
网上学习资源很多。其余知识在上面 推荐的网站 上均有。
