当前位置:   article > 正文

Git学习笔记--Git操作常见问题及解决方案_source tree git 文件夹不是空目录

source tree git 文件夹不是空目录

写在前面

该学习笔记是观看下方的bilibili视频教程所记笔记。
https://www.bilibili.com/video/BV1sJ411D7xN?p=16&spm_id_from=pageDriver
该学习笔记记录了我在Git指令上遇到的各种问题,以及Github加速问题。
上述大部分问题,都可以经过查阅博客、文章得以解决。
每个人遇到的问题不一定完全相同,方法仅供参考。

Git

Git是分布式版本控制系统

Git与GitHub

Git是一个分布式版本控制系统,简单的说其就是一个软件, 用于记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的软件。

Github (https://www.github.com)是一个为用户提供Git服务的网站,简单说就是一个可以放代码的地方(不过可以放的当然不仅是代码)。Github 除了提供管理Git的web界面外,还提供了订阅、关注、讨论组、在线编辑器等中富的功能。Github 被称之为全球最大的基友网站。

GitHub登录

通过修改host文件登录(我已保存书签不知道能用多久)

GitHub 访问不了?教你几招轻松解决 - 知乎 (zhihu.com)

辅助工具:IP查询网站: IP地址查询 - 在线工具 (tool.lu)

另一种IP查询方式: (5条消息) GitHub登录不上解决办法(绝对可行)_我在北国不背锅的博客-CSDN博客_git 登录不上

链接: [多个地点pinggithub.com]服务器-网站测速-站长工具 (chinaz.com)

【https://www.dogfight360.com/blog/686/】

【上述网站为一个修改host的软件,可以加速github社区10.27-18:34】

Git下载

不推荐去官网下载(慢),下方链接是镜像下载地址

https://npm.taobao.org/mirrors/git-for-windows/

路径为纯英路径,配置默认即可(next→next→next→…)

在这里插入图片描述
桌面右击出现新选项

Git的使用

1、原理图

在这里插入图片描述

2、本地仓库操作

​ 什么是仓库呢?仓库又名版本库,英文名repository, 我们可以简单理解成是一个目录,用于存放代码的,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到。

①在安装好后首次使用需要先进行全局配置
桌面空白处右键,点击“Git Bash Here”以打开Git命令行窗口,输入下列内容(用户名和邮箱是GitHub的)

$ git config --global user.name "用户名”
$ git config --global user.email "邮箱地址"
  • 1
  • 2

②创建仓库
当我们需要让Git 去管理某个新项目/已存在项目的时候,就需要创建仓库了。注意,创建仓库时使用的目录不一定要求是空目录,选择一个非空目录也是可以的,但是不建议在
现有项目上来学习Git。
注意:为了避免在学习或使用过程中出现各种奇葩问题,请不要使用包含中文的目录名(父目录亦是如此)。

在这里插入图片描述

如图所示,

a.创建空目录 mkdir 文件名

b.在命令行中进入目录 cd 文件名

c.Git仓库初始化(让Git指导,它需要来管理这个目录) git init (记得显示 隐藏文件)

③Git常用指令操作
查看当前状态: git status [非必要]
添加到缓存区: git add 文件名

说明: git add指令,可以添加一个文件,也可以同时添加多个文件。
语法1: git add 文件名
语法2: git add 文件名1 文件名2 文件名3
语法3: git add .	[添加当前目录到缓存区中]
  • 1
  • 2
  • 3
  • 4

提交至版本库: git commit -m“注释内容”

在后续对于文件(可以操作1个或多个)操作之后,重复使用git add与git commit指令即
可。

3、版本回退(时光穿梭机)

版本回退分为两步骤进行操作:
①查看版本,确定需基回到的时刻点
指令: git log

git log --pretty=oneline(推荐用)
②回退操作
指令: git reset --hard 版本号黄色标识字符

在这里插入图片描述

注意:回到过去之后,要想再回到之前最新的版本的时候,则需要使用指令去查看历史操作,
以得到最新的commit id(版本号).
指令: git reflog

小结: .
a.要想回到过去,必须先得到commit id,然后通过git reset -hard进行回退:
b.要想回到未来,需要使用git rflg进行历史操作查看,得到最新的commit id;
c.在写回退指令的时候commit id可以不用写全,git 会自动识别,但是也不能写太少,至
少需要写前4位字符。

GitHub远程仓库的创建

通过GitHub创建即可,简单易用。【仓库名称(repository name)要求在当前账号下唯一】

远程仓库的使用

基于https协议

提交本地仓库

在这里插入图片描述

1、新建一个空的目录并进入【mkdir 文件名

2、使用clone指令将线上仓库克隆到本地 【 git clone 线上仓库地址

3、在仓库上做对应的操作(提交暂存区、提交本地仓库、拉取线上仓库

clone–操作–add–commit–push

​ 提交到线上仓库的指令: git push

此处易出现的问题为

在这里插入图片描述

连接超时443问题 Failed to connect to github.com port 443:connection timed out

10.27 有效解决方案 克隆地址的https改为git

以及第一次的权限403问题

参考视频即可 隐藏的git文件中的config文件https://后加上账号和密码(密码已废除,用令牌)

但是代码托管平台 GitHub 于21年 8 月 13 日周五这天正式废除了基于密码的 Git 身份验证。

(5条消息) 忽然发现GitHub用不了了,原来git的账密验证已经弃用,改用 token 或 SSH 密钥_从零开始-CSDN博客

(5条消息) github使用pull或push失效,需要改用token登录的流程_这道题太难了!的博客-CSDN博客

新验证方式如上。

在这里插入图片描述

在这里插入图片描述

终于成功了,如上图所示。

拉取线上仓库

在GitHub上创建一个文件

在这里插入图片描述

Add file→ 输入文件名,内容,注释→创建即可。

拉取线上仓库指令: git pull

在这里插入图片描述

每天第一件事情就是git pull(拉取线上仓库最新版本),最后一件事git push(本地代码提交到仓库)

基于ssh协议

在这里插入图片描述

略。

Git的分支操作

在版本回退的章节里,每次提交后都会有记录,Git 把它们串成时间线,形成类似于时
闻轴的东西,这个时间轴就是一一个分支,我们称之为master分支。
在开发的时候往往是团队协作,多人进行开发,因此光有一一个分支是无法满足多人同时
开发的需求的,并且在分支上工作并不影响其他分支的正常使用,会更加安全,Git 鼓励开发者使用分支去完成一些开发任务。

分支相关指令:
查看分支: git branch
创建分支: git branch 分支名
切换分支: git checkout 分支名
删除分支: git branch -d 分支名
合并分支: git merge 被合并的分支名
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

查看—创建—切换

在这里插入图片描述

新增一行内容到分支login,并提交到本地

在这里插入图片描述

再切回master,readme文件中的新增行消失。此时需要合并。

合并后,login分支可删除了。

在这里插入图片描述

【在删除分支时,一定要先退出要删除的分支】

【此时git push 又超时了443,尝试一番,发现GitHub必须在线。(刷新GitHub或重新打开)】

https://zhuanlan.zhihu.com/p/364453651?utm_source=qq&utm_medium=social&utm_oi=1022579437115572224

【上述网站为一个修改host的软件,可以加速github社区】

Git实用技能

1、图形化管理工具

【Github for Desktop】【Source tree】

2、忽略文件

场景:在项目目录下有很多万年不变的文件目录,例如css、js、images 等,或者还有一些目录即便有改动,我们也不想让其提交到远程仓库的文档。此时我们可以使用“忽略文
件”机制来实现需求。
忽略文件需要新建一个名为.gitignore 的文件,该文件用于声明忽略文件或不忽略文件
的规则,规则对当前目录及其子目录生效。
注意:该文件因为没有文件名,没办法直接在windows 目录下直接创建,可以通过命
令行Git Bash来touch创建。
常见规则写法有如下几种:

1) /mtk/			  过滤整个文件夹

3)* .zip			  过滤所有zip文件

3) /mtk/do.c		  过滤某个具体文件

4)lindex.php		  不过滤具体某个文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

又遇到一个错误,方法如下

我们在使用git初始化一个项目时,尤其是通过git submodule update --init --remote初始化子模块时,可能会遇到下面这个错误:

fatal: unable to access 'https://myserver.com/gogs/user1/myapp/': SSL certificate problem: unable to get local issuer certificate
  • 1

这是由于当你通过HTTPS访问Git远程仓库的时候,如果服务器上的SSL证书未经过第三方机构认证,git就会报错。原因是因为未知的没有签署过的证书意味着可能存在很大的风险。解决办法就是通过下面的命令将git中的sslverify关掉:

git config --global http.sslverify false
  • 1

添加一个js目录并写一个js文件,然后提交。之后,忽略文件的添加

在这里插入图片描述

在这里插入图片描述

之后,再在js目录里加了一个js文件。再次提交,在github仓库可看到效果。

在这里插入图片描述

实例操作

1、我在github新建了一个仓库repository。

在这里插入图片描述

2、clone–cd–写代码–add–commit–push (完成啦!)

在这里插入图片描述

依次输入

在这里插入图片描述

拉取一下。(我把title在github上修改了)

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/636664
推荐阅读
相关标签
  

闽ICP备14008679号