小白都能学会的git的命令操作

小白都能学会的git的命令操作

前言:git作为一个开源的分布式的版本控制系统,相信很多人都用过,尤其是互联网公司。使用过的人都知道基本的操作如git add、commit、reset、push、pull等基本的操作(当然一般在开发是也算够用),但是往往对里面的概念原理有些模糊,甚至在遇到问题的时候也比较棘手,今天分享的这边文章主要是详细的介绍git如何使用,以及一些细节等,看完之后,相信都会使用。

一、git简介

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理

git的特征

1、git每台电脑都有一个版本库,可以在本地做版本管理

2、速度快,git的速度远远大于大部分版本管理系统,如svn

3、强大的分纸管理

4、活跃的开源社区、如github

git和svn的对比

1、git是分布式的,而svn不是

2、git与svn版本机制不一样

3、git不需要联网

4、git内容完整性要由于svn

简单用一幅图来对比一下git和svn

小白都能学会的git的命令操作小白都能学会的git的命令操作

 二、git常用指令详解

git的安装比较简单就不介绍了,大家可自行去官网下载安装,接下来介绍git的命令使用

安装完git以后,可以在电脑的任意目录下右键点击鼠标出现如下图标

小白都能学会的git的命令操作

点击git base here就会在当前的目录下弹出git的命令窗

1、初始化和配置

(1)git init

初始化一个本地仓库,在同级目录下会出现一个隐藏的.git文件

小白都能学会的git的命令操作

(2)git config

需要配置用户名和邮箱,不然后面使用会报错

git config xxx (user.name、user.email)

配置完成之后可以查看配置信息

git config -l

小白都能学会的git的命令操作

 2、提交版本

(1)git status

检查状态,这个比较简单,可自行操作观察,重点查看,增删改文件和git add 和git commit后的区别

(2)git add

git add filename (提交指定文件)

git add . (注意后面有个“.”)

git add -A提交所有文件

这里也比较简单,重点介绍一下git add .和git add -A的区别

1)1.x版本:

git add all可以提交未跟踪、修改和删除文件。

git add .可以提交未跟踪和修改文件,但是不处理删除文件。

2)2.x版本:

两者功能在提交类型方面是相同的。

(3)git commit

git commit -m “message”:普通的提交到本地仓库

git commit -am “message”:git add和git commit组合使用,但是必须是该文件不能是新增的,可直接跳过暂存区

git commint –amend “message” 追加上一次提交,不会新增加id

3、文件状态

(1)被追踪的(tracked):已经加入文档库

(2)不被追踪的(untracked):没有加入文档库

(3)忽略的(ignored):忽略那些不需要管理的文件夹或文件

比如刚刚新增的文件,查看状态就是untracked

小白都能学会的git的命令操作

使用git add后,文件变成tracked

如何忽略文件或者文件夹呢?比如我们项目中自己编译生成的target目录等不需要git管理,也不需要每次都提交

1)新建.gitignore文件

touch .gitignore

2)在文件中输入需要忽略的文件或文件夹(当然也可以配置不忽略的文件夹或文件)

小白都能学会的git的命令操作

 如上是忽略.gitignore和target文件夹,避免每次都会提交他们

3)查看状态,是没有上述两个被忽略的文件

小白都能学会的git的命令操作

4、分支管理

(1)git branch

git branch 查看当前分支

git branch branchName 创建分支

git branch branchName 提交点:从某个提交点上创建分支

git branch -d 删除分支

 小白都能学会的git的命令操作

(2)git checkout

切换分支

 小白都能学会的git的命令操作

 (3)git merge

合并分支,先要切换到要合并到那个分支的分支,然后使用git merge branchname 这个branchname表示需要被合并的分支,比如,我需要将taolong的分支合并到master分支,则需要切换到master分支,然后git merge taolong即可,最后如果有冲突需要解决冲突

小白都能学会的git的命令操作

这里面是显示有冲突的,看看有什么冲突

 小白都能学会的git的命令操作

git还算是比较聪明,我们去掉冲突,然后重新提交代码

5、日志和标签

git log:显示日志信息

git log –oneline:用一行显示日志信息

git log –oneline –graph:显示日志信息,同时显示分支

git reflog:会显示所有的日志包括删除或者reset的操作,可以用恢复git log查看不到的版本

小白都能学会的git的命令操作

小白都能学会的git的命令操作 

 小白都能学会的git的命令操作

小白都能学会的git的命令操作 

5-2、标签

git tag :查看标签

git tag -a tagname id:为id增加标签

git show tagname:查看标签信息和提交内容

 小白都能学会的git的命令操作

6、恢复

git reset:在git中有一个HEAD指针指向当前分支,git reset的作用就是修改HEAD的位置,用下图简单描述一下,当我使用git reset –hard v3.0则表示HEAD指向v3.0

 小白都能学会的git的命令操作

小白都能学会的git的命令操作 

git revert:通过反做创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本,也用一个简单的图描述,其中v3.0bak的内容和v3.0的内容是一样的

小白都能学会的git的命令操作

小白都能学会的git的命令操作 

 7、远程仓库

(1)在github官网注册(https://github.com/)

(2)新建一个和本地一样的工程

小白都能学会的git的命令操作

(3)生成和配置RAS密钥

 小白都能学会的git的命令操作

(4)将生成的公钥放到github的setting中

 小白都能学会的git的命令操作

小白都能学会的git的命令操作 

(4)本地和远程仓库通讯

git remote add git_test_demo git@github.com:xiaohongstudent/git_demo_test.git

后面的地址是我仓库的地址

 小白都能学会的git的命令操作

(5)上传代码到远程仓库

git push -u git_demo_test master

小白都能学会的git的命令操作

 小白都能学会的git的命令操作

上传成功

(6)拉取代码

git pull:将远程的最新内容直接拉去下来并直接合并,如果有冲突,需要自己手动解决

git fetch:将远程的最新内容拉到本地,用户在检查了以后是否合并到本机分支中

两者的差距:git pull = git fetch + git merge

小白都能学会的git的命令操作

具体他们的原理可自行查阅资料

(7)克隆代码

git clone git@github.com:xiaohongstudent/git_demo_test.git

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111225.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 课程设计—飞机订票系统

    课程设计—飞机订票系统1. 题目 本课程设计的题目为:飞机订票系统。2. 项目描述 基于目前人们外出远行频繁,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序就是要实现航班情况的录入,查询,订票,退票以及航班的查询和修改等基本功能。 3. 数据及其逻辑结构分析 (1)航班的信息:航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞时间、降落时间、起

    2022年6月15日
    30
  • Java中的反射——(1)什么是反射

    Java中的反射——(1)什么是反射

    2022年1月18日
    49
  • 微机原理及汇编语言(微机原理及单片机应用技术)

    看到一篇讲解微机原理或者汇编语言蛮详细的,因此分享给大家!1、在计算机中数的表示方式因为计算机中只能存储二进制数,所以一般都是通过二进制直接进行存储,但是为了方便阅读和程序员的编码简单化,就出现了八进制、十进制、十六进制,一般在汇编的学习过程中以二、十、十六进制为主。四种数据的表示形式符号是:B(二进制)、O(八进制),D(十进制),H(十六进制)二进制、八进制

    2022年4月15日
    47
  • django使用celery_apache django

    django使用celery_apache django前言环境celery==5.0.2在安装完celery后,运行celery会报以下错误ModuleNotFoundError:Nomodulenamed'click._bashc

    2022年7月31日
    8
  • Linux系统查看CPU「建议收藏」

    Linux系统查看CPU「建议收藏」    在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况,以便性能分析优化。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。    对于每一个CPU来说运行队列最好不要超过3,例如,如果是双核CPU就不要超过6。如果队列长期保持在3以上,说明任何一个进程运行时都不能马上得到cpu的响应,这时可能需要考虑升级cpu。另外满负荷运…

    2022年4月19日
    160
  • linux 开发板 ldd,Linux ldd命令

    linux 开发板 ldd,Linux ldd命令Linux下的lld命令的主要作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。ldd是list,dynamic,dependencies的缩写,列出动态库依赖关系。可以用ldd–help或者manldd来看其用法。可以用which命令找到ldd的位置:$whichldd/usr/bin/ldd使用ldd,往往在制作自己的发行版时经常需要判断某条命…

    2022年6月11日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号