git 一口气带你走完git之旅

时间:2021-07-07 23:36:23

1、git是目前世界上最先进的分布式版本控制系统。svn是集成式版本控制系统,那么问题来了,什么叫分布式管理和集中式管理?

首先,svn 需要有一个*服务器,协同开发者需要同*服务器连接,所有的版本都存在了*服务器上。开发者只有本地代码。一旦*服务器挂掉,所有版本会丢失。

git 一口气带你走完git之旅

git采用分布式版本控制。也就是每个 开发者本地都有一套版本控制库,可以在自己本地实现版本的删除,还原等操作。也不用担心版本库丢失的问题,如果开发者1的版本库丢失,可以直接clone一份开发者2的版本库,开发同一个项目版本库是一样的,所以可以直接clone。当多人协作开发时,github就充当了远程仓库的作用。开发者将项目传到github上,方便

其他开发者获取代码。

git 一口气带你走完git之旅

2、git的安装 很简单,这里不多说了。在github上注册用户。创建一个仓库,这里我命名为protest;然后在F盘中创建了一个项目的文件夹叫做project。打开安装好的git命令行工具,进入该文件夹下:

git 一口气带你走完git之旅

利用git clone 命令获取github 仓库中的文件。git 一口气带你走完git之旅

3、设置开发者信息。(注意要进入到项目文件夹中protest设置)

git config --global user.name "adela2" 设置开发者name为adela2, 如不加后面的名字,是查看用户名命令。

git config --global user.email  "email@qq.com"  设置开发者邮箱,如不加邮箱,是查看邮箱命令。

git config --list 查看所有配置信息。

4、git 分为工作区,暂存区,版本区。

工作区即本地项目文件夹中你所能看到的那一块。修改文件你可以先保存到暂存区,最后提交到版本库中。暂存区作用很大,避免了误操作。还有代码写到一半,为了防止丢失,可以先保存到暂存区中。

5、git 命令--status

git status 查看 工作区 暂存区 的状态

例如,我在项目中添加了html.html 和layout_box.css 文件,利用git status 命令查看当前状态如下:

git 一口气带你走完git之旅

6 添加命令

git add 命令将文件添加到暂存区。git 一口气带你走完git之旅,还可以git add .  把所有修改的文件添加到暂存区。再用git status 查看一下状态:

git 一口气带你走完git之旅

git commit 命令将暂存区文件提交到版本区。git commit -m "注释";

git commit -a -m "注释",一步从工作区提交到版本区git 一口气带你走完git之旅;

git log 查看提交日志;

7、对比命令

git diff 查看工作区和暂存区的区别对比;

git diff --cached 查看暂存区和版本区之间的对比;

git diff master  其中master为版本库的名字,查看工作区和版本区之间的区别;

8、撤销命令

git reset HEAD <filename> 撤销add 操作,比如你把工作区的代码添加 到了暂存区,利用该命令可以撤销这一步操作。

git checkout --<filename> 把工作区修改的内容还原为暂存区的版本,如果暂存区没有的话,就还原为版本区的版本。

git commit --amend  合并文件的提交次数。比如我之前提交了html.html 文件,忘记提交layout.css 文件了,我可以重新提交,git commit -m "commit again" --amend ,这样只保留第二次提交记录。

9、删除命令

git rm <filename> 删除暂存区的文件,该文件工作区不存在。比如:我在工作区右键点删除,删除了一个文件,该文件在暂存区仍存在,用该命令可以删除。

git rm -f <filename> 同时删除暂存区和工作区的文件。

git rm --cached <filename> 只删除暂存区的文件,工作区文件仍存在。

10、恢复命令

首先我们可以先运行一下git log,我们看到红框里有一串字符,我们称之为commitid。

git 一口气带你走完git之旅

git checkout <commitid>  <filename> 就可以恢复指定commitid版本下的文件了,这里的commitid可以不写全。

针对于版本还原:

git reset --hard <commitid>还原指定commitid 的版本。

git reset --hard HEAD^ 还原上一版本(HEAD是版本库中的指针,让指针回到上一版本)。

git reset--hard HEAD~2 让指针回跳2个版本。

如果会跳版本后,又想回到最新版本,我们可以 git reflog 查看新版本的commitid。

 11、多人协作开发

你千万不要以为commit到了版本库,就是commit到了GitHub的远程仓库,我们开始已经说过了,分布式管理所有版本都在你本地。即便你commit过了,刷新GitHub上的项目,依旧没有。那我们要把所有版本提交到远程仓库,以便多人协作开发,怎么做呢?

git remote 查看远程仓库的名字,我们这里是origin。

git remote -v 查看远程仓库的名字和地址。

git push <远程仓库的名字> <分支的名字> 如:git push origin master

当我们提交完以后刷新github 点击commits可以看到提交的版本。

git 一口气带你走完git之旅

如果要多人开发,我们需要给小伙伴儿开放权限,点击setting=》collaborators,添加小伙伴的名字即可。他会收到message。

git 一口气带你走完git之旅

git 一口气带你走完git之旅的更多相关文章

  1. 一口气带你踩完五个 List 的大坑,真的是处处坑啊!

    List 可谓是我们经常使用的集合类之一,几乎所有业务代码都离不开 List.既然天天在用,那就没准就会踩中这几个 List 常见坑. 今天我们就来总结这些常见的坑在哪里,捞自己一手,防止后续同学再继 ...

  2. 带GPG签名的Git tag

    原文地址http://airk000.github.io/git/2013/09/30/git-tag-with-gpg-key Git tag ###Tag用来做什么? Tag即标签,用以给项目仓储 ...

  3. 版本管理工具Git&lpar;1&rpar;带你认识git

    简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...

  4. Linux下基于HTTP协议带用户认证的GIT开发环境设置

    Git 的访问可以采用 HTTP 或 SSH 协议安全的访问,通常我们使用 gitlib 进行 Web 管理,但是在 Linux 命令行开发环境下,基本都是使用 SSH 协议,只需要在 gitlib ...

  5. 搭建本地Git服务器6步走

    1. 在服务器上安装git和ssh 2. 在服务器上新建一个用户,比如就叫git sudo adduser git 3. 在服务器上新建一个目录来放置git仓库 mkdir gitrepo git i ...

  6. 最全的前端Git基础命令,看完保证你会!

    常见信息 master: 默认开发分支 origin:默认远程版本库 Head: 默认开发分支 Head^:Head 的父提交 创建新仓库 git init git init [project-nam ...

  7. 带着问题学git

    序 作为git新手,常见的git clone,push,commit命令已经足够完成一次代码的发布,但是如果不幸碰到问题往往会束手无策,利用网络问答解决了之后也不知其所以然.所以,做一次好奇宝宝吧! ...

  8. 详解git rebase,让你走上git大神之路

    在之前的文章当中我们介绍了git merge的用法,明白了通过git merge我们可以合并两个分支的改动.这样我们就可以很方便地进行协同开发了,每个人都在自己的分支下开发代码,开发完毕之后再一起合并 ...

  9. Git之 手把手教你使用Git

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在*服务器的,而干活的时候,用的都是自己的电脑,所以 ...

随机推荐

  1. 异常和IO

    异常 异常是指java程序运行时(非编译)所发生的非正常情况或错误. Java对异常进行了分类,不同类型的异常分别用不同的 Java 类表示,所有异常的根类为 java.lang.Throwable, ...

  2. 【转】Keberos认证原理

    前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去.后来想想原因有以下两点:对于一个没有完全不了解Ker ...

  3. ssh三大框架集成后,jsp中采用forword标签提交时会报错的解决方案

    最近这两天心烦,所以没事就做做三大框架,对于今天遇到了一个烦心的事!或许有很多开发人员对于web.xml拦截器的认识不清,出现了这样的情况 <filter> <filter-name ...

  4. 内核里面writel&lpar;readl&rpar;是如何实现的

    writel和readl,这两个个函数实现在操作系统层,有内存保护的情况下,往一个寄存器或者内存地址写一个数据.先说一下writel:   在arch/alpha/kernel/io.c中有 void ...

  5. Codeplex最流行25个开源项目

    1. VMukti富媒体协作平台 2. Microsoft SQL Server Product Samples: Engine 3. Patterns & Practices: Enterp ...

  6. Swift2&period;0语言教程之函数嵌套调用形式

    Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...

  7. 【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第3节:Spark架构设计&lpar;2&rpar;

    三,深入RDD RDD本身是一个抽象类,具有很多具体的实现子类: RDD都会基于Partition进行计算: 默认的Partitioner如下所示: 其中HashPartitioner的文档说明如下: ...

  8. ORACLE 中如何截取到时间的年月日中的年

    在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来,并不是一件难事.常用的方法是:Select to_number(to_char(sysdate,'yyyy')) from d ...

  9. &period;NET中,在方法参数的类型前加一个OUT是做什么用的

    话说古时候,在一个名字叫C#的繁华的大城市里面,有两家珠宝加工店,一家叫ref,另外一家叫out. 有一天,有名字叫a和b的两个人每人都各带了一公斤黄金要加工首饰. a去了ref店,ref的掌柜告诉a ...

  10. java&period;lang&period;IllegalArgumentException异常处理的一种方法

    我遇到的问题 用spring注解来加载bean,都是一个简单的了,但是还是报了这样一个错java.lang.IllegalArgumentException 网上查了一下,说是jdk版本要1.7的,然 ...