Git做网盘详细教程。push提示远端意外挂起。推送文件过大无法推送。fatal: the remote end hung up unexpectedly Everything up-to-date

一、git当小文件网盘的详细过程

        今天使用git的时候遇到了一个问题,自己平时备份的一些命令的md文档什么的想去备份下来,放到git上,随时用随时拉下来挺方便。是不是比某云盘快多了。

        有了这个想法就开始干,下边会详细的操作一下这个把git当小文件网盘的详细过程。不需要任何技术跟着来就行。

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。(可以直接配置到idea中,点点点提交) 下载地址:Git - Downloads

插入一个问题提示

PS省流提示:先提一下后边可能会出现的问题,帮大家已经遇到情况的同学们避个坑。这里在push到远程仓库的时候取决于你提交的内容可能会报错。

==首先是 他会在如下这段操作中,一直停留在Writing objects:这里,然后等待很久......我等了...

WANGZI@WANG MINGW64 /f/testgit (master)
$ git push -u origin "master"
Enumerating objects: 34, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 20 threads
Compressing objects: 100% (23/23), done.
Writing objects:  97% (33/34), 3.17 MiB | 356.00 KiB/s

然后会报一个如下错误,翻译过来大概意思是,远程端服务器意外挂了,连接不到。。。。然后就浪费了10多分钟时间,上传失败。

WANGZI@WANG MINGW64 /f/testgit (master)
$ git push -u origin "master"
Enumerating objects: 34, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 20 threads
Compressing objects: 100% (23/23), done.
error: RPC failed; curl 55 SSL_write() returned SYSCALL, errno = 10053
fatal: the remote end hung up unexpectedly6.00 KiB/s
Writing objects: 100% (34/34), 191.25 MiB | 376.00 KiB/s, done.
Total 34 (delta 1), reused 0 (delta 0)
fatal: the remote end hung up unexpectedly
Everything up-to-date

(这里查了很久,有说 因为网络不好,有说协议,有说文件过大,有说修改

命令将缓冲区增加到500MB:git config http.postBuffer 524288000)

我修改了没用。解决的办法,使用SSH去进行联系去推送就行了。

(原因:文件太大!!)

好了开始演示详细过程,以下正常方式和大文件方式都会详细介绍。

二、操作流程

        首先你要装好了git。并且自己注册了Gitee账号。

地址:Gitee - 基于 Git 的代码托管和研发协作平台

        可以直接在本地新建远程仓库,但是这样我觉得不够自由,这里演示,先在远端建好仓库,本地提交文件到暂存区,然后和远端仓库建立联系之后,去push推送内容。(这里就用大文件作展示示例)

1.先去建立一个仓库

        登陆之后点击“+”号,新建仓库。(目的是拿到仓库地址,你原有仓库你想放进去则可以不建立)。

 打开界面填写仓库内容,仓库名称,路径是自己生成(自己可以改,简单点自己下载时候方便好认,手打也快。)

设置好后地址就是:https://gitee.com/你的账号/仓库路径

 然后会进入这个界面,你就拿到了仓库地址了,还有给你的参考执行命令。剩下的就是在本地操作了。

 

简易的命令行入门教程:

Git 全局设置:

git config --global user.name "你的账户名"
git config --global user.email "你的邮箱"

创建 git 仓库:

mkdir testAA         (创建文件夹)
cd testAA            (打开到文件夹)
git init             (任意文件夹下执行命令,出现.git文件夹,就OK了)
touch README.md       (不重要 生成说明文件)
git add README.md     (添加这个文件到暂存区)
git commit -m "first commit"    (提交暂存区到版本库。“引号中的是提交的版本信息”)
git remote add origin https://gitee.com/Binghaohao/testAA.git  (让当前文件夹与远程仓库建立联系)
git push -u origin "master"    (推送到远端master分支)

已有仓库?

cd existing_git_repo
git remote add origin https://gitee.com/Binghaohao/testAA.git
git push -u origin "master"

 然后去本地文件夹执行以下上述命令过程。

在测试的testgit文件夹下放了个写文件夹和文件(压缩包是大文件,使用https会出现上述问题,远程服务端以为挂掉,这里点击SSH使用SSH的地址,复制下来后边使用。)

 在当前目录中右键,选择Git Bash Here这个,出现一个命令窗口,输入命令

 输入第一条命令  
git init

 之后文件夹下会多了一个.git文件夹,这是放版本的地方(不推到远端,在本地端提交后,也是能版本回滚、版本切换的)。

git status     

查看当前工作区和暂存区文件情况,现在有没有提交到暂存区。

绿色已提交到暂存区,红色未提交

 下一步提交

git add *     

提交所有

或者 * 改为指定文件 或者指定文件夹下都行  这里直接所有 *

 

 提示已经放到工作区了,再看一下状态查询 git status

 绿色已经提交到暂存区了,(如果这时候做了文件修改,或者添加新文件到文件夹,git status有不是绿色的,就重新add 添加一下就行。)然后我们使用命令提交到版本库。

使用命令

git commit -m "自定义版本说明信息"

 

 已经提交到版本库了,查看一下‘

使用命令

git log

 黄色的就是版本编号,用来切换版本 回滚就用他。

下一步建立远程仓库和本地仓库的联系,然后push推送到远程仓库。

命令

$ git remote add origin https://gitee.com/Binghaohao/testAA.git                    

        地址就是复制远程仓库的那一段,现在是https的,*(不适用大文件)

$ git remote add origin git@gitee.com:Binghaohao/testAA.git                        

现在是SSH的地址,适用上传大文件。

 

这就是已经本地仓库和远程仓库建立联系了,下边push推送,(以后可以使用别的分值,或者标签管理更方便。)

命令   推送的远程master仓库中

git push -u origin "master"

 

 

 成功了,现在使用的是SSH,如果是https就会出现前文提到的那个错误了。

这个时候就成功提交到远程仓库了,刷新一下。

梳理一下完整过程

SSH(上述方法)

git init

git status

git add *

git status

git commit -m "自定义信息"

git log

git remote add origin git@gitee.com:Binghaohao/testAA.git

git push -u origin "master"

HTTPS(https则这样)

git init

git status

git add *

git status

git commit -m "自定义信息"

git log

git remote add origin https://gitee.com/Binghaohao/testAA.git

git push -u origin "master"

三、克隆clone或者pull拉取

1.clone方式

在任意文件夹下,要没有和其他远端建立联系的文件夹下。(用https或者SSH都行)

Git init

Git clone git@gitee.com:Binghaohao/testAA.git

2.pull方式

在任意文件夹下,要没有和其他远端建立联系的文件夹下。(用https或者SSH都行)

在pull之前首先要使本地仓库和远程仓库之间建立联系

git init

git remote add origin git@gitee.com:Binghaohao/testAA.git

git pull origin master:master

 

到此结束,学会了吗?

还有不少关于绑定什么的问题,大家遇到一起交流。告诉你我的解决的办法。

准备一份常用的git命令给大家

 git常用命令

查看配置信息

git config --list

本地仓库常用命令如下

  • git status 查看文件状态

  • git add 将文件的修改加入暂存区

  • git reset 将暂存区的文件取消暂存或者是切换到指定版本

  • git commit 将暂存区的文件修改提交到版本库

  • git log 查看日志

远程仓库操作

  • git remote 查看远程仓库

  • git remote add 添加远程仓库

  • git clone 从远程仓库克隆

  • git pull 从远程仓库拉取

  • git push 推送到远程仓库

分支的相关命令,具体命令如下:

  • git branch 查看分支

  • git branch [name] 创建分支

  • git checkout [name] 切换分支

  • git push shortName 推送至远程仓库分支

  • git merge [name] 合并分支

查看分支命令:git branch

git branch 列出所有本地分支

git branch -r 列出所有远程分支

git branch -a 列出所有本地分支和远程分支

创建分支命令格式:git branch 分支名称

一个仓库中可以有多个分支,切换分支命令格式:git checkout 分支名称

推送至远程仓库分支命令格式:git push 远程仓库简称 分支命令

合并分支就是将两个分支的文件进行合并处理,命令格式:git merge 分支命令

注意:分支合并时需注意合并的方向,在Master分支执行操作,需谨慎。

本地分支删除:

git branch -d 分支名称

远程仓库删除分支:

git push origin -d 分支名称

注意:

​ 删除分支操作不能处于当前分支下操作

标签相关的命令:

  • git tag 查看标签

  • git tag [name] 创建标签

  • git push shortName 将标签推送至远程仓库

  • git checkout -b branch 检出标签

批量添加新文件

方法一 文件之间用空格隔开“git add file01 file02 file05” :

方法二 加参数“git add .” : 添加被修改的和新建的文件,不包括被删除的文件;

“git add -u” : 添加所有被修改的和被删除的文件(已经在暂存区的文件),不包括新建的文件;

“git add -A” : 添加被修改、被删除、新建的文件(即所有文件);

法三 添加指定目录下的某类文件“git folder/*”: 添加该文件夹下的所有文件

“git folder/*.js”: 添加该文件夹下的js文件

pull附加命令介绍

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。
$ git pull <远程主机名> <远程分支名>:<本地分支名>

比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。

$ git pull origin next:master

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

$ git pull origin next

上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。

$ git fetch origin
$ git merge origin/next

在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。

Git也允许手动建立追踪关系。

git branch --set-upstream master origin/next

上面命令指定master分支追踪origin/next分支。

如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。

$ git pull origin


上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。

如果当前分支只有一个追踪分支,连远程主机名都可以省略。

在 Git 中,有几种方法可以做版本回滚:

使用 git revert 命令:这个命令会撤销一次提交,并在当前分支上新建一个反向提交。这样可以保留原始提交的信息,但是让新的提交撤销它。例如,要回滚到之前的版本,可以运行:git revert HEAD。

使用 git reset 命令:这个命令用于重置当前分支的指针,回滚到指定版本。它可以删除最近的一次或多次提交,但是这些提交的信息还在。有三种方式可以使用,

git reset --hard 将当前分支的指针指向HEAD的前一个版本,并且把当前分支的所有修改都清除
git reset --soft 将当前分支的指针指向HEAD的前一个版本,保留当前分支的所有修改
git reset 与 git reset --mixed 一样,将当前分支的指针指向HEAD的前一个版本,并且把当前分支的暂存区清除
使用 git checkout 命令:这个命令用于切换到指定版本,并且把当前工作目录更新为该版本。例如,要回滚到之前的版本,可以运行:git checkout HEAD~1。

在使用这些命令之前,请确保已经备份了你的工做文件。
---------------------------------------------------------

当你需要回滚到某个特定的版本时,你可以使用 git revert 命令来完成这个操作。该命令会创建一个新的提交,该提交会撤销之前的提交所做的修改。这样,你就可以将项目回滚到某个特定的版本。

你可以使用下面的命令来回滚到某个版本:
git revert <commit-hash>
其中,<commit-hash> 是你想要回滚到的版本的提交哈希值。

如果你想要回滚到之前的某个版本并且删除之后的提交,你可以使用 git reset 命令。该命令会移除之后的所有提交,并将当前分支重置到指定的版本。

你可以使用下面的命令来回滚到某个版本并删除之后的所有提交:

git reset --hard <commit-hash>
注意这种方法会丢失之后的所有修改,请谨慎使用。

另外,你还可以使用 git checkout 命令来切换到某个版本。这个命令会将当前分支切换到指定的版本,并将工作目录重置到该版本的状态。

你可以使用下面的命令来切换到某个版本:


git checkout <commit-hash>
这个命令会在当前目录下创建一个新的分支, 所有的修改都在这个

回滚到某一次

如果需要删除的 commit 是最新的,那么可以通过 git reset 命令将代码回滚到之前某次提交的状态,但⼀定要将现有的代码做好备份,否则回滚之后的变动都会消失

git reset --hard 9eecfaf11225

误删恢复

仅供参考,数据无价,仅供学习交流。切勿盲目操作,如有不正确请指正一起学习,谢谢。(做好数据备份,盲目操作造成数据丢失概不负责.....)
 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值