一、关于Git
1、Git介绍
Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目。
Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
版本控制:版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
团队协作:从单兵作战转为团队开发。
2、Git对比SVN
1、SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候都是用自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己的代码推送到中央服务器。集中式版本控制系统是必须联网才能工作。
2、Git是分布式版本控制,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网(因为版本就在自己电脑上),可以离线工作。
二、Git常用命令(上传至远程库前的操作)
1)设置用户签名(主要为了区分不同开发人员)
- git config --global user.emalil "your@example.com"
- git config --global user.name "Your Name"
2)初始化本地库
- #git 初始化命令
- git init
文件夹内会多一个.git文件(只有当一个文件夹被git管理以后,我们才可以使用git的功能去做版本管理)
3)显示当前文件夹下的所有内容:ls -a
查看文本:cat+空格+文本名称
4)添加到暂存区:git add空格+文本名称 ( git add . 表示将主分支master上所有文本添加到暂存区)
5)查看当前目录的状态:git status
6)从暂存区删掉目标文件:
git rm --cached+空格+文本名称
7)将暂存区的文本提交到本地库
git commit -m "备注"
8)查看提交的历史记录
git log
9)已经上传到本地库,但是文本需要修改
- git reset --hard HEAD^ //退回一次
- git reset --hard HEAD^^ //退回两次
10)文本修改后发现不如不改,想回到原来版本
- 先通过git reflog找到之前版本的指针数据
- 然后用git reset --hard+空格+指针数据
(git reflog可以查到本地库所有操作记录)
11)从本地库回到暂存区(修改备注):git reset --soft HEAD
12)撤销上一个版本的提交,功能与9相同,但是操作方式不同
git revert HEAD //当前版本
13)git revert与git reset的区别
git revert HEAD指从当前版本撤销,版本指针继续往前移生成一个新的指针
git reset HEAD^指直接撤回,版本指针后移,直接找到原来版本
14)分支
- 创建新分支
- git branch+空格+分支名称
-
- 查看分支
- git branch
-
- *后面的分支名称表示当前所在分支
-
- 切换分支
- git checkout+空格+分支名称
-
- 注意:分支的指针为HEAD,master依然指向主分支,两分分支互不干扰,但这也意味着如果要使分支与主分支有关联,就必须将主分支与分支合并
-
- 分支与主分支合并
- 1、切换至master分支
- 2、git merge+空格+分支名称
-
- 合并之后删除原分支
- git branch -d+空格+分支名称
三、本地库上传至远程库
1)让本地库知道远程库的地址
git remote add+地址名字(随便起)+从github获得的地址
2)查看远程库地址(该地址指从github获得的地址)
git remote -v
3)删除远程库地址:git remote remove+空格+地址名字(1步中自己起的那个地址名字)
4)将本地库上传至远程库:git push+空格+地址名字+master
(将git主分支推到远程库主分支,尽量不要直接在远程库上修改代码)
git push -u+空格+地址名字+master 此后该本地库上传至该远程库直接写:git push
5)拉取远程库至本地库:git pull+空格+master
6)将整个远程仓库全部克隆:git clone+空格+从github获得的地址
7)将分支推送至远程库:git push+空格+地址名字+本地分支名字:远程分支名字
8)将远程分支拉至本地库:git pull+空格+地址名字+远程分支名字
9)建立分支:git checkout+空格+分支名称
10)删除远程库分支(推送空分支):git push+空格+地址名称+空格:远程分支名称