Git是目前世界上最先进的分布式版本控制系统,没有之一,对,没有之一。著名的同性交友网站-Github,使用的就是Git存储。无数的开源项目在Github上汇聚,由此可知Git的威力。
一、Git简介
Git是一个分布式的版本控制系统,与集中式的版本控制系统不同的是,每个人都工作在通过克隆建立的本地版本库中。也就是说每个人都拥有一个完整的版本库,查看提交日志、提交、创建里程碑和分支、合并分支、回退等所有操作都直接在本地完成而不需要网络连接。
对于Git仓库来说,每个人都有一个独立完整的仓库,所谓的远程仓库或是服务器仓库其实也是一个仓库,只不过这台主机24小时运行,它是一个稳定的仓库,供他人克隆、推送,也从服务器仓库中拉取别人的提交。
二、Git安装
Git是Linux之父Linus的第二个伟大的作品,它最早是在Linux上开发的,被用来管理Linux核心的源代码。后来慢慢地有人将其移植到了Unix、Windows、Max OS等操作系统中。
想要使用Git,第一步当然是安装。
先说Mac安装方式
1、通过homebrew安装Git
- 未安装homebrew,需安装homebrew
-
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
- 安装git
-
brew install git
-
linux系统
yum -y install git
二、创建ssh key、配置git
- 1、设置username和email(github每次commit都会记录他们)
git config --global user.name "chenshifeng" git config --global user.email "1162704960@qq.com"
- 2、通过终端命令创建ssh key ,创建密钥,这一步可以先不操作,后面会再讲
ssh-keygen -t rsa -C "1162704960@qq.com"
git config --list 或者 git config -l 可查看git的配置信息
chenshifengdeMacBook-Pro:PythonCode chenshifeng$ git config -l
credential.helper=osxkeychain
user.name=chenshifeng
user.email=1162704960@qq.com
core.autocrlf=input
三、Git用法
3.1 创建版本库
创建版本库非常的简单,选择一个合适的地方,使用下面的命令创建版本库。
chenshifengdeMacBook-Pro:PythonCode chenshifeng$ mkdir gitstudy # 创建文件夹
chenshifengdeMacBook-Pro:PythonCode chenshifeng$ cd gitstudy # 进入文件夹
chenshifengdeMacBook-Pro:PythonCode chenshifeng$ git init # 初始化成Git版本库
Reinitialized existing Git repository in /Users/chenshifeng/MyCode/PythonCode/gitstudy/.git/
.git
目录。这个目录就是Git用来跟踪管理版本库的。所以千万不要修改删除这个文件夹中的文件。因为这是隐藏目录,所以如果你看不见可以使用命令
ls -a
来查看。
3.2 Git基本命令
当创建好了一个版本库之后,我们就可以在版本库中进行版本控制了。所以我们需要了解一下Git的一些基本命令。
git add # 将工作区的修改提交到暂存区
git commit -m 'remarks' # 将暂存区的修改提交到当前分支 -m,添加备注
git status # 查看当前仓库的状态
git diff # 查看修改
git log # 查看提交历史
git restore <file> # 回退工作区
git restore --staged <file> # 回退暂存区
git reset # 回退到某一个版本
git reset --hard HEAD^ # 回退到上一个版本
git reflog # 查看历史命令,类似与Linux中的history
3.3 工作区和暂存区
上面说到了工作区和暂存区的概念,想要用好Git,那么了解Git中的工作区、暂存区之间的关系是很重要的。先来看一张图。
工作区:在你的电脑中可以看见的Git仓库的那个目录,如之前我创建的TestGit
目录。那文件夹就是一个工作区。当我们往版本库提交的时候有两个步骤:
git add # 这一步就是将工作区中修改添加到暂存区(stage)中。
git commit # 这一步其实就是将暂存区中的修改添加到当前的分支中。
所以我们在提交的时候一般都是这样:
$ git add . # 将工作区中所有修改提交到暂存区,"."点的含义就是所有修改
$ git commit -m "first commit" # 将暂存区的所有修改提交到当前分支,-m参数是填写当前提交的备注
1、新建创库上传
chenshifengdeMacBook-Pro:PythonCode chenshifeng$ mkdir testgit
chenshifengdeMacBook-Pro:PythonCode chenshifeng$ cd testgit/
chenshifengdeMacBook-Pro:testgit chenshifeng$ git init
Initialized empty Git repository in /Users/chenshifeng/MyCode/PythonCode/testgit/.gi