目录

一 Git的工作原理

二 Git下载及安装

三 Git配置

四 Git命令(示例)

参考链接:


一 Git的工作原理

Git有四个工作区域,其中三个工作区域工作在本地,一个工作区域工作在远程仓库;

本地目录(工作区):平时存放项目代码的位置;

暂存区(stage):用于临时存放代码的改动,事实上它只是一个文件,保存即将提交到文件的列表信息;

资源区(仓库区、本地仓库):即安全存放数据的位置,这里有提交到所有版本的数据。其中HEAD指向最新放入仓库的版本;

远程Git仓库:托管代码的服务器,如github、gitlab、码云等

git的工作流程如下:

1、在工作目录下添加或修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库;

git管理下的文件有四种状态:未跟踪(没被添加到项目中untracked);已修改(modified);已暂存(staged);已提交(committed)

二 Git下载及安装

打开网页https://git-scm.com/download/win

选择对应版本下载即可,下载后显示安装exe文件如下,点击安装即可(一路next的那种);

安装完之后,按win键可以看到最近添加程序上三个图标,其中:

Git Gui 是git的图形化界面;Git bash是类似于Linux系统命令行操作界面;Git CMD则类似于window系统命令行操作界面;

三 Git配置

git config --global 对全局进行配置,主要是配置用户名和邮箱,以便日后将项目推到远程仓库

git config --global user.name  "用户名"  //设置git的用户名
git config --global user.email  "用户邮箱"  // 配置git的邮箱

配置好之后可以在电脑C:\Users\自己电脑用户名路径下找到.gitconfig文件,打开可以看到刚刚我们写进去的内容,说明配置成功!

四 Git命令(示例)

git status // 项目文件的状态:待提交、文件已入库 文件已修改 暂存状态
git commit -m "消息内容"  //提交到本地仓库  -m是提交的备注信息
git branch [新的分支名] //新建一个分支,但不会立马切换到新建分支
git checkout -b [分支名] // 新建一个分支,并切换到该新建分支
git merge [分支名] // 合并该指定分支名到当前分支
git branch -d [要删除的分支名] // 删除分支
git push origin --delete [branch-name] // 删除远端分支
git branch -dr [remote/branch] // 删除远端分支

五 Git使用示例(以码云为例,gitlab,github同理)

1、准备工作:注册号码云账号

  • 注册好账号后为防止使用ssh方式下载上传代码时老是输入密码,可以给账号设置密钥

密钥生成方式:

ssh-keygen // 在任意路径下执行即可

执行后就会在电脑C:\Users\自己电脑用户名路径下找到.ssh文件,打开其中的id_rsa_pub文件,将其粘贴到码云页面的设置-安全设置-SSH公钥对应位置即可。

2、初始化git仓库

在任意一个空文件下,执行git init命令就可以将这个目录变成git管理的仓库:

执行完命令后可以发现刚才的空文件夹gitLearning下面生成了一个隐藏文件夹.git,这个就是版本库。打开可以看到里面还有好多文件,其中最重要的是暂存区,并且git会为我们自动创建第一个主分支master,以及指向主分支的指针HEAD。一定不要轻易删里面的内容哦~会把刚刚建好的git仓库给破坏掉~

3、在新建的仓库中添加文本文件与查看内容修改、对比文件不同、撤销修改、删除文件

在gitLearning文件夹下新建一个htmlLearning.html文件,内容如下:

<!DOCTYPE html>
<html>
<body><h1 id="id1">我的标题1</h1>
</body>
</html>

将其添加(git add 文件名)到git仓库中的暂存区去:

终端没报错则说明添加成功(此时gitLearning仓库中并没有htmlLearning文件);再利用git commit将刚添加的文件提交到仓库中;

此时我们再修改一下我们的htmlLearning.html文件,

添加内容如下:

<!DOCTYPE html>
<html>
<body><h1 id="id1">我的标题1</h1>
<p1>这是第一段</p1>     // 添加的内容
</body>
</html>

此时可以通过git diff htmlLearning.html命令查看修改了哪些内容:

  • 对比工作区和版本库某个文件的区别----git diff HEAD 文件名
  • 对比两个版本中某个文件的区别----如 git diff HEAD HEAD^  --文件名

内容表示:  减号--- 表示第一个参数的不同;加号表示第二个参数的不同, 如下面表示当前文件比版本库中多了一行内容

终端显示前面带绿色加号的则正是我们刚刚添加的内容,这样我们就可以放心提交了(记住也是要先git add,然后才能git commit,否则会提示暂存区里没有文件需要提交Changes not staged for commit)。

可随时使用git status 命令查看git仓库中文本状态;

可随时使用git log命令查看git仓库中提交的文本记录;

可随时使用git reset --hard HEAD^将版本回退到上个版本,回退多个版本时用git reset --hard HEAD~版本数(如 git reset --hard HEAD~20将会回退到前20个版本)

可以看到回到了我们提交的第一个版本(还能够看到版本号4cfdc30);

但是,我如果又想恢复到刚刚我提交的最新版本可咋办嘞:

  • 通过最新的版本号 执行命令 git reset --hard 最新版本号
  • 如何知道我的最新的版本好呢? 通过执行命令 git reflog

可以看到第二条对应的就是我刚刚最新提交的被删除的记录,版本号是26f4d41,

可以看到通过reset命令,HEAD又回到了最新的版本。

删除仓库中的文件一般是两种方法:

  • 在仓库目录中直接删掉即可,并git commit -a一下;
  • 使用命令rm -文件名,并git commit -a一下;

撤销修改分为三种情况:

  • 撤销工作区的修改-----使用git checkout --文件名
  • 撤销暂存区的修改(并没有commit)-----第一步git reset HEAD 文件名,第二部git checkout --文件名
  • 撤销已经commit的修改-----执行版本回退操作(git reset --hard 版本号)

4、远程仓库

  • 创建远程仓库

登录事先注册好的码云账号,点击右上角+,可以看到新建仓库,

根据需要创建自己的代码仓库即可;

创建后远程仓库之后,会跳转一些命令提示,

  • 我们可以将本地的项目与远程仓库进行关联,通过在本地仓库htmlLearning路径下执行标橘色的代码(-u在第一次建立远程分支与本地分支时要加上):

这样就实现了本地仓库与远程仓库关联,可以看到我们的远程仓库iotLearning和本地仓库htmlLearning内容是一样的了:

如果本地再添加或修改文件之后,在本地进行提交(add+commit)之后,一定要执行git push origin master命令哦,这样二者才能保持同步~

  • 从远程仓库克隆

我们可以随便找一个代码库,去克隆开源代码:

git clone https://gitee.com/wuhou123/mui-vue2.git
  • 创建、切换、合并分支
git checkout -b dev // 创建分支dev,并将当前分支转为dev

上面命令等于如下两条命令:

git branch dev  // 创建分支dev
git checkout dev  //将当前分支转为dev

查看所有分支:

git branch // 查看所有分支

在分支dev上添加文件htmlLearning1.html,并在本地提交,可以看到dev分支上是有刚刚新添加的htmlLearniing1.html文件的,但master分支上是没有的哦!

将dev分支的内容合并到主分支master(要切换到合并到的那个分支上,如主分支上):

git merge dev  // 合并dev分支到当前分支master

合并分支时,一般采用的是Fast forward模式(这样有可能会导致在删除分支后,丢掉分支信息),可以通过-no-ff选项禁用该模式;

git merge -no-ff 要合并的分支名

这样在git.log下还是能看到被删除的git分支信息;

删除分支:

git branch -d 要删除的分支

如果你提交的代码和别人提交的代码出现冲突,要根据冲突提示,在本地修改完冲突(保留还是删除),重新提交代码即可;

  • 暂时存储代码

工作中经常会遇到很多bug,通常在改存在两个bug的同一个文件,有一个bug着急提交,但是令一个bug还未完全修复,这时候我们只改着急提交的代码,又不想删掉已经改过的代码,这个时候应该怎么做呢?答案是可以将它们放到暂存区:

git stash // 将当前代码暂存

如,我改动了text.txt:

可以看到text已被改动,执行完git stash之后代码便被存在了工作文件夹下,此时查看文件状态:

已经不显示我们改动的text文件了;

此时我们在master分支下新建一个bug分支,在这个分支上修改我们的text文件,并推送到远程。

合并到master分支下

最后切换回dev分支下,在该分支下,我们释放被存起来的文件,

git stash list // 查看被存起来的文件
git stash pop // 恢复被存起来的文件,并将工作区的缓存文件删掉
或
git stash apply // 仅恢复被存起来的文件,工作区中还有缓存文件

发现有冲突,打开文件,显示:

将冲突解决掉,继续修改文件bug,修改后提交即可!

  • 多人协作

在公司,基本上有多个人做同一个项目,每个人基本上都会有属于自己的分支,这样工作起来效率更高;

git remote // 查看远程库信息
git remote -v // 查看远程库的详细信息

推送本地代码到远程仓库:

git push 远程库 远程分支 // 远程库一般是origin 通过git remote查看

抓取分支(解决冲突):

git pull  远程库 要拉取的远程分支

解决完冲突之后重新提交、推送即可。

思维导图总结:

参考链接:

Git 大全 - Gitee.com

Git教程---Windows安装及命令使用(详细例子)相关推荐

  1. git有本地化环境吗Linux,msysgit之Git for Windows 安装与使用教程

    git for windows是专为windows平台开发的一套轻量化.本地化git scm工具,支持所有git功能特性.msysgit包含一个命令行工具git bash和一个gui工具git gui ...

  2. Git教程--如何安装Git 如何高效地使用Git 合理使用Git分支

    原作者:杰森科茨  翻译&转载:https://www.digitalocean.com/community/tutorials/how-to-use-git-effectively 介绍 现 ...

  3. git修改服务器的命令行,Git版本控制工具安装及命令行操作

    很多小伙伴不知道如何来安装Git版本控制工具,对于命令操作比较陌生.本文做了一个详细的文档,希望对大家有所帮助. 1.git 是什么一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制 ...

  4. 《软件安装与使用教程》— 安装Proteus8仿真软件最新详细教程

    安装Proteus专业版仿真软件详细教程 本文以Proteus8在Windows 10系统上安装为例. 来自百度百科-- Proteus软件是英国Lab Center Electronics公司出版的 ...

  5. beeware教程: 一 安装与命令详解

    安装与命令详解 beeware介绍 安装 命令详解 新建项目 运行项目 打包 beeware介绍 beeware官网:https://beeware.org/ One codebase. Multip ...

  6. windows安装postgreSQL(超详细步骤)

    postgreSQL 1,在windows安装postgresql的时候需要查看一下系统类型是多少位的 2,资源下载 3,开始安装,双击运行下载好的文件 4,使用连接工具来测试是否安装成功(我这里使用 ...

  7. ubuntu详细教程[软件安装,命令大全,常用快捷键]

    作为一个程序猿,当从windows转到Linux上的时候,还是很不习惯的,毕竟windows用起来确实蛮方便的,但是有些时候,尤其是开发,linux却有很大的优势,学习一下linux还是有必要的. 本 ...

  8. windows安装mysql5.7简单详细教程(带百度云)

    1.安装包下载: ①.Net framework 4.6(win7电脑需要) 网盘地址:https://pan.baidu.com/s/1JG0dAXdYkvFQVOaMYyIUVQ 提取码:w9rf ...

  9. Windows安装Linux虚拟机超详细教程(CentOS Stream 9)

    目录 一.安装虚拟机软件VMware workstation pro 16 1.下载虚拟机软件VMware 2.安装VMware (1)双击下载好的Vmware安装程序 (2)点击"下一步& ...

最新文章

  1. 简洁好用的项目管理工具推荐~马起来
  2. 十二、八皇后问题(递归回溯)
  3. MATLAB找不到遗传算法工具箱,用不了gatool命令的解决方案
  4. phpgif图片包_PHP生成GIF动态图片验证码
  5. 数据结构和算法系列13 五大查找之哈希查找
  6. redis的批量操作命令pipeline(PHP实现)
  7. 机器学习基石笔记9——机器可以怎样学习(1)
  8. visual studio for mac在线安装网络错误
  9. CRC校验算法——C语言实现
  10. Python调用搜狗语音API实现文字转音频
  11. 数据库三大范式、BCNF范式、反范式
  12. Pentaho Report Designer
  13. 安装mysql staring server 一直停滞,乃至失败-已解决
  14. 修改计算机显示颜色16位色,教你win10怎么调成16位色
  15. 一键定位电脑弹出垃圾广告,屏蔽删除终止,windows神器!
  16. 采用DotAsterisk(点星PBX)系统组建跨地区总公司和分公司之间的免费VoIP电话呼叫
  17. 在 Windows 10 中保存和恢复桌面图标位置的 2 个免费工具
  18. Linux内核之32/64位除法
  19. 清除 WindowsOffice KMS激活
  20. java.sql.SQLException: 批处理中出现错误: batch must be either executed or cleared

热门文章

  1. CSS | 隐藏滚动条,但保持页面依旧能够滚动
  2. 《移动软件开发》实验3:视频播放小程序
  3. Linux驱动——sd type card(七)
  4. Matlab 图像去雾
  5. Cesium-popup点击弹窗功能
  6. Linux下Qt 5.15.2源码下载及编译
  7. 终其一生,你不会因为优秀而被爱
  8. python 3.x 全栈开发从入门到精通_GitHub - cxinping/PythonFullStack: 《Python 3 全栈开发从入门到精通》配套代码...
  9. 没钱买 mac ? 一招教你如何让 Windows 秒变【苹果电脑】
  10. ️Rust 移动端开发体验