git的发展过程:
Git最初是由Linux开发者Linus用了仅仅两周时间纯C语言编写而成,在编写完成之后就立马上手接管Linux源代码,不过在此之前Linux是由BitMover公司开发的BitKeeper分布式版本控制系统所管理源代码,它是商业收费的分布式版本控制器,但BitMover公司看中Linux开源精神,免费授权给Linux社区使用,在2002年时,Linux开始使用BitKeeper分布式版本控制系统管理源代码,但好景不长,有一天Linux社区成员Andrew(samba(局域网共享文件c/s程序)的作者)试图破解BitKeeper共享给所有人使用,被BitMover公司发现并收回了免费使用的版权,随后Linus就用了两周时间开发出了git(两周时间包括测试),也就是目前为止最好用的分布式版本控制系统。
大名鼎鼎的github用的就是git系统来管理它们的网站,这里需要区分一下,github和git是两个东西,github是一个社区,git是一个服务系统,github只支持git分布式系统,所以故名成为github。
git作用:
版本管理
多人协同开发项目
git基本组成框架:Workspace、Index / Stage、Repository、Remote
- Workspace:开发者工作区(我们编辑的项目)
- Index / Stage:暂存区/缓存区(项目临时存储的位置)
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
Workspace:开发者工作区,也就是你当前写代码的目录,它一般保持的是最新仓库代码。
Index / Stage:缓存区,最早叫Stage,现在新版本已经改成index,位于.git目录中,它用来存放临时动作,比如我们做了git add或者git rm,都是把文件提交到缓存区,这是可以撤销的,然后在通过git commit将缓存区的内容提交到本地仓库
Repository:仓库区,是仓库代码,你所有的提交都在这里,git会保存好每一个历史版本,存放在仓库区,它可以是服务端的也可以是本地的,因为在分布式中,任何人都可以是主仓库。
Remote:远程仓库,只能是别的电脑上的仓库,即服务器仓库。
Debian/Linux安装Git:
sudo apt install git
配置git环境:git config --global:
config:参数是用来配置git环境的
--global:长命令表示配置整个git环境
初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码
用户名配置:
user代表用户,.name代表配置用户的名称
git config --global user.name "你的用户名"
邮箱配置:
user代表用户,.email代表配置用户的邮箱
git config --global user.email "你的邮箱"
添加暂存盘:
git add my.txt //添加my.txt到暂存盘
git add *.txt //添加后缀是txt到暂存盘
git add . //添加所有文件到暂存盘
从暂存盘撤回命令:
git checkout my.txt//撤回my.txt文件
git add *.txt //撤回后缀是txt文件
git add . //撤回所有文件
切换版本库:
git reset --hard 版本号//准确切换
git reset --hard HEAD^^//^^代表上上个版本
查看版本库:
git log //查记录
git reflog //查看所有记录版本
关于分支有关的:
git branch 分支名 //查看分支
git checkout -b 分支名 //切换并创建分支
git checkout 分支名 //切换分支
git merge 分支名,把某分支合并到当前分支
远程相关命令:
git remote add origin xxx.git 本地添加远程仓库
git push -u origin master 创建并推送master分支到远程(第一次使用)
git push -f origin master 强制推送本地master分支到远程(不得已使用)
git push origin --all 推送所有分支到远程
git push origin master 普通推送到远程
git clone xxx.git 把远程仓库复制到本地
git pull origin master 把远程的master拉取本地
提交到版本库:
git commit -m "提示文本"