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相关的命令很多,大家可以根据操作时的需要去具体学习。

 

 

posted @ 2019-06-30 21:20  cocozi  阅读(238)  评论(0)    收藏  举报