Git使用教程(超全,看一篇就够了)
目录
Git介绍
Git是什么?
Git是目前世界上最先进的分布式版本控制系统。
SVN与Git的最主要的区别?
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
Git安装
windows上安装Git
下载安装
下载地址:https://git-scm.com/download/win
下载好后,双击进行下一步下一步即可。
验证git安装是否成功
1). 命令行输入:git --version
,提示如下标识安装成功
2). 回到电脑桌面,鼠标右击如果看到有两个git单词则安装成功
Linux上安装Git
yum安装
在Linux上是有yum安装Git,非常简单,只需要一行命令
yum -y install git
输入 git --version
查看Git是否安装完成以及查看其版本号
备注: yum安装git被安装在
/usr/libexec/git-core
目录下
Git初始化配置
a、设置用户名:$ git config --global user.name "<用户名>"
b、设置用户邮箱:$ git config --global user.email "<电子邮件>"
注意:该配置会在github主页上显示谁提交了该文件
c、配置ok之后,我们用如下命令来看看是否配置成功
git config --list
注意:git config --global 参数,有了这个参数表示你这台机器上所有的git仓库都会使用这个配置,当然你也可以对某个仓库指定不同的用户名和邮箱
Git使用
操作流程
demo使用演示
- 进入demo文件夹
cd demo
- 初始化仓库
git init
仓库中创建readme.txt文件,内容:test
查看仓库状态
- 添加文件到暂存区中
git add readme.txt
- 提交文件到仓库
git commit -m "readme.txt提交"
- 查看仓库状态
- 提交到远程库
git push
- 修改文件后可以使用diff查看文件修改前后对比
git diff readme.txt
git log
来查看最近到最远的历史提交日志
- 回退版本
git reset --hard 版本号
Git基本常用命令
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout -- XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
更多常用命令请查看下面链接
https://www.cnblogs.com/upstudy/p/15868898.html
使用中可能遇到的问题
- git reset恢复指定版本代码后,再无法提交到远程库;git status提示出现2个分支不同提交
解决:https://blog.csdn.net/m0_37884977/article/details/78901668
- git push origin master的时候会出现失败的现象(master|REBASE 1/10)
解决:https://blog.csdn.net/qq_42469247/article/details/88901756
- 提交代码报错
解决:git pull拉去代码,再解决冲突文件再push上去;强制将本地代码推送到远程(git push -u origin master -f)慎用
- git push时报连接问题:fatal: Could not read from remote repository.
解决方法一:git push origin <分支名称>(指定远程地址)
解决方法二:
没有远程分支时:
git remote add origin [URL] //将git进行远程连线
有远程分支时:
git branch --set-upstream-to=origin/<分支名> //将git进行远程连线
5.git push报错
解决方法:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@gitlab.huayong.mm:awa_aoto_test/awa_auto_test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
git冲突产生 和 解决方案 思维导图
推荐几个有关git的学习网站
1.git官网
https://www.git-scm.com/
2. 廖雪峰的官方网站中的git教程
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
非常推荐!!!
讲解的浅显易懂,容易理解,还有视频教学,对初次接触者的帮助非常大,建议先跟着廖老师学习git。
3. 猴子都能懂的git入门
http://backlogtool.com/git-guide/cn/intro/intro1_1.html
第一次接触的网站,是师弟推荐的,只是可惜呀。。。当时没有学进去。。。
4. 菜鸟教程
http://www.runoob.com/git/git-tutorial.html
这个网站也不错,网站上有很多其他工具等的学习教程.
5. 练习网址
https://learngitbranching.js.org/?locale=zh_CN
Git使用教程(超全,看一篇就够了)的更多相关文章
- Pycharm新手教程,只需要看这篇就够了
pycharm是一款高效的python IDE工具,它非常强大,且可以跨平台,是新手首选工具!下面我给第一次使用这款软件的朋友做一个简单的使用教程,希望能给你带来帮助! 目前pycharm一共有两个版 ...
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...
- .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了
作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/9985451.html 本来这篇只是想简单介绍下ASP.NET Core MVC项目的(毕竟要照顾到很多新 ...
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了
[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...
- 【转】ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
原文链接:https://www.cnblogs.com/yilezhu/p/9241261.html 引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必 ...
- React入门看这篇就够了
摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(CMS)-第二章 入门篇-快速入门ASP.NET Core看这篇就够了
.NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了 原文链接:https://www.cnblogs.com/yilezhu/p/9985451.ht ...
- [转]React入门看这篇就够了
摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...
随机推荐
- 自动化集成:Pipeline整合Docker容器
前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译.打包.镜像构建.部署等操作:本篇文章主要描述流水线集成Docker用法. 一.背景描述 微服务架构 ...
- Java初学者作业——添加程序断点,以Debug模式运行程序,观察变量的交换
返回本章节 返回作业目录 需求说明: 定义两个变量,分别用于存储学生的语文成绩和数学成绩,通过程序将这两个变量的值进行交换,输出变量之前的值和交换后变量中的值. 添加断点,观察变量值的交换过程. 实现 ...
- Java Web程序设计作业目录(作业笔记)
Java Web程序设计笔记 • [目录] 第1章 Web应用程序 >>> 1.1.3 使用 Eclipse 创建一个静态的登录页面 1.2.5 使用 IE 或Chrome等浏览器, ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...
- js箭头函数 的 (e) => { } 写法笔记
1. (e) => {} 是ES 6 新语法,默认是Es 5.1,因此在这里设置一下就不会提示红色下划线了 2.使用: (e) => {} , 其实就是function (e){} 的缩 ...
- Linux上天之路(八)之用户和组
主要内容. 用户创建,删除,修改 密码及密码文件 组创建,删除,修改 组密码及组配置文件 相关文件 Linux用户分类 超级管理员: UID为0 root用户拥有至高无上的命令,root用户不能改名 ...
- 主流浏览器内核、css权重
主流浏览器及其内核: IE:trident Firefox:Gecko Google Chrome:webkit/blink Safari:webkit Opera:presto css权重 优先级大 ...
- List接口的实现类
(一): ArrayList 构造方法 特有的方法: LinkedList 特点: 可以调用Collections类的静态方法 synchronizedCollection转换成线程安全的
- JS里默认和常用转换
* { font-family: PingFang, Monaco } JS里的六大简单数据类型 string 字符类型 number 数字类型 boolean 布尔类型 symbol ES6语法新增 ...
- 【Android UI设计与开发】8.顶部标题栏(一)ActionBar 奥义·详解
一.ActionBar介绍 在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和men ...