git基本用法
以下均针对前端来进行简单介绍和整理:
一、Git介绍
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
所谓版本控制应实现以下几点,解决多人协作问题,提高开发效率,实现版本控制

可以理解为一个工具,可以和代码仓库一起使用。我们实验室用的代码仓库是coding.
二、git的库结构

创建项目的流程如下:
1、项目经理先创建一个本地库和远程库,此时远程库是空的,文件、目录和历史记录都在他的本地库,将本地内容push到远程库。
2、软件开发人员将远程库clone下来,clone操作不仅会下载内容,还会创建、初始化令狐冲的本地库。他在本地修改代码,在push到远程库之前,需要先加入该项目团队才可以提交。对于其他人的修改、更新提交到远程仓库,可以pull到自己的本地库。


暂存区:临时存储,打算要提交还没提交,今后可以提交本地也可以撤回。
本地库:存储每一个历史版本。
三、Git的安装配置
1、下载windows版本的git的地址:https://git-scm.com/download/win ,选择对应版本进行下载,安装过程简单,仅需要点击next即可。
2、安装后,右键选择git bash,配置用户个人信息,指令如下:
git config --global user.name “hxxxe”
git config --global user.email "hxxxehxx@163.com"
这一步的作用的用来区分不同的用户,我们可以使用git config --list指令来查看我们配置的结果:

3.我们要使用git克隆coding上的代码或者上传本地代码,由于许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,我们要生成一份SSH 公钥。 先确认自己是否已经拥有密钥,如果没有就在本地使用git生成一个公钥,再把这个公钥添加到coding的SSH公钥就可以了。
(1)在git命令窗口输入指令:cd ~/.ssh 检查电脑中是否有ssh key存在
如果存在,则会显示如下,id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录):

(2)如果不存在,输入指定:$ ssh-keygen 来生成公钥:

首先 ssh-keygen 会确认密钥的存储位置(默认是 .ssh/id_rsa),然后它会要求你输入两次密钥口令。如果你不想在使用密钥时输入口令,将其留空即可。最后会生成文件在指定位置。
(3)生成ssh公钥后复制 .pub 文件内容,添加到coding就会有权限了。 公钥形式类似如下:

四、git的使用
我们会使用到的git基本指令有这么几句:
1、克隆
clone已有仓库
git clone git@github.com:XXX/yyyy.git //XXX为github的用户名,yyy为仓库名
2、提交
git pull //拉取最新代码
git add mmm.sss //mmm为文件名称,sss为文件拓展名(常用git add .)
git commit -m "hhh" //hhh为git commit 提交信息,是对这个提交的概述
git push //更新GitHub上的仓库
3、查看提交日志
git log
4、更改提交的操作
git reset //回溯历史版本
git reset --hard //回溯到指定状态,只要提供目标时间点的哈希值
git reset --hrad ddd //ddd为要推进历史的哈希值
我们不常用的git指令
1、用git创建仓库
mkdir nnn //仓库名
cd hhh
git init //初始化仓库
git status //查看仓库状态
touch README.md //创建READEME.md文件
git add ERADME.md //添加ERADME.md至暂存区
git commit -m "hhh" //如果想要提交信息记录的更详细,请不要加 -m
git log --pretty=short //加--pretty=short 只显示提交信息的第一行
git log ggg //ggg是指指定的文件或目录,用于查看指定的目录、文件的日志
git log -p //查看提交所带来的改动
git log -p ggg //查看指定文件的改动
git diff //可以查看工作树,暂存区,最新提交之间的差别
git diff HEAD //查看工作树与最新提交的差别
2、分支操作
git branch //显示分支一览表,同时确认当前所在的分支
git checkout -b aaa //创建名为aaa的分支,并且切换到aaa分支
(git branch aaa //创建名为aaa的分支
git checkout aaa // 切换到aaa分支
)能和git branch -b aaa 得到同样的效果
git checkout - //切换到上一分支
3、合并分支
git checkout master //切换到master分支
git merge --no--ff aaa // 加--no--ff 参数可以在历史记录中明确地记录本次分支的合并
git log --graph //以图表形式查看分支
4、推进历史
git reflog //查看仓库的操作日志,找到要推历史的哈希值
git checkout master
5、修改提交信息 git commit --amend
压缩历史 git rebase -i 错字漏字等失误称作typo
根据以前的步骤在GitHub上创建仓库,应于本地的仓库名相同 GitHub上面创建的仓库的路径为git@github.com: 用户名/仓库名.git
git remote add eee git@github.com: 用户名/仓库名.git //添加远程仓库,并将git@github.com: 用户名/仓库名.git远程仓库的名称改为eee
git push -u eee master //推送至远程仓库 master分支下 -u 参数可以在推送的同时,将eee仓库的master分支设置为本地仓库的当前分支的的upstream(上游)。添加这个参数,将来运行git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从eee的master分支中获取内容
git checkout -b feature d eee/feature d //获取远程的feature d分支到本地仓库,-b参数后面是本地仓库中新建的仓库的名称
git pull eee feature d //将本地的feature d分支更新为最新状态
在GitHub上面查看两个分支之间的差别,只需要在地址栏中输入http://github.com/用户名/仓库名/分支1...分支2
6、查看master分支在最近七天内的差别
http://github.com/用户名/仓库名/master@{7.day.ago}...master (同样,day,week,month,year都是可以哒)
7、查看与指定日期之间的差别
http://github.com/用户名/仓库名/master@{xxxx-xx-xx}...master (xxxx-xx-xx代表年月日)
到这里,git相关的命令很多,大家可以根据操作时的需要去具体学习。

浙公网安备 33010602011771号