Git——分布式版本控制系统
简介
Linus大佬花了两周的时间用C语言写出了Git。Git是套命令行工具,去官网直接下载安装即可(windows下需要配环境变量,mac下不用(git会自动将一个命令替身安装在/usr/bin/目录下)),linux下直接终端输入sudo apt-get install git)。安装好后用命令配置个人用户信息(git配置按优先级从低到高分为:全局配置,适用于全体电脑用户→用户配置,适用于当前电脑用户→项目(特定仓库)配置):
1 2
| $ git config --global user.name "输入你的名字" $ git config --global user.email "输入你的邮箱"
|
这个配置起识别用户的作用。
推荐
我这篇博客只是简单总结了一下git的常用简单命令,若想系统地了解git,分支,标签,分布式等等,这里推荐一个教程。
简单命令的使用
一些基本概念
- 工作区:指本地仓库(git初始化后的本地文件夹),你进行操作的地方。
- 暂存区:修改必须先送到暂存区保存起来。
- 版本库:从暂存区将修改送到版本库即完成一次提交。
- 修改:在git中,增、删、改操作都可以叫做修改。
- 提交:对修改进行提交,完成一次版本记录。
Git进行版本控制的精髓
git通过一系列底层数据对象和结构,对文件内容和修改提交进行追踪并引用。git有HEAD引用,指向当前分支,分支指向最新提交,提交指向当时的顶层tree对象。解决合并冲突需要手动修改文件然后再提交。
上面一段话看不懂没关系,可以去Git的官方文档查看Git的底层原理那一节,讲得非常详细。
初始化一个本地仓库
新建一个文件夹当做本地仓库准备初始化,然后在这个文件夹下进行git命令操作,windows下控制台cd进入文件夹,mac下打开当前文件夹的终端。
建立远程连接
1
| $ git remote add 自定义远程仓库名 远程仓库地址
|
可以是Gihthub上的一个仓库,也可以是自己搭建的Git服务器。如果要与Github上的仓库连接,事先要进行本机的.ssh_key配置,具体教程百度,很简单,当然要有Github账户。
完成一次提交
提交要按顺序不能颠倒命令。
1 2
| $ git add 文件名.扩展名 $ git add .
|
常用命令
1
| $ git push 自定义的远程仓库名 本地仓库分支名
|
- 注意:不能推送远程仓库已有的同名分支,git会认为这两个分支冲突(除非远程仓库的那个同名分支最初是由这个本地仓库推送过去的),这种情况下要先从远程仓库拉取该分支过来进行合并。
1
| $ git fetch 自定义的远程仓库名 远程仓库分支名
|
1
| $ git pull 自定义的远程仓库名 远程仓库分支名
|
1 2
| $ git checkout -b 新建分支名 $ git switch -c 新建分支名
|
1 2
| $ git checkout 分支名 $ git switch 分支名
|
1 2
| $ git branch -d 分支名 $ git branch -D 分支名
|
1
| $ git reset --hard 提交历史id
|
未完待续