一,文件上传到gitee
1.先在gitee中新建一个仓库获取地址:[email protected]:weixinwen/practice.git
如下图
2.简易的命令行入门教程:
Git 全局设置:
git config --global user.name "xxxx"
git config --global user.email "xxxxxx"
创建 git 仓库:
mkdir practice
cd practice
git init
touch README.md
git add README.md
git add . //补充
git commit -m "first commit"
git remote add origin +地址
[email protected]:weixinwen/practice.git//是地址
//上面地址容易出现如下两个错误
git remote -v //查看远程地址
git remote set-url origin [email protected]:weixinwen/front-end-learning-resources.git //更换远程地址。在传别的仓库时地址要手动更换
git pull --rebase origin master
git push -u origin "master"
//push时的错误解决
已有仓库?
cd existing_git_repo
git remote add origin [email protected]:weixinwen/practice.git
git push -u origin "master"
3.问题1:当执行到push时,就会报错,报错代码如下:
24935@DESKTOP-HPT7I5C MINGW64 ~/Desktop/练习/practice (master)
$ git push -u origin "master"
To gitee.com:weixinwen/practice.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'gitee.com:weixinwen/practice.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
出现这个问题是因为github中的README.md文件不在本地代码目录中,可以通过如下命令进行代码合并
git pull --rebase origin master
此时再执行语句
git push -u origin master
然后就可以了
4.问题2:今天在提交Git的时候,遇到了几个问题,记录一下,方便以后查找O(∩_∩)O
- 第一个问题
git remote add origin**************
fatal: remote origin already exists.(报错远程起源已经存在。)
上网查了下,有很多小白遇到过这个问题,以下是网上摘取的解决办法,
解决办法如下:
1、先输入 git remote rm origin
2、再输入 git remote add origin**************
这样就不会报错了!
- 第二个问题
git remote add origin******
The authenticity of host 'github.com ' can't be established(无法建立主机“github.com”的真实性)
这是由于你的git地址采用了ssh方式,切换为https方式即可,也可能是你的仓库地址不对,可以用命令先查看一下:
git remote -v
如果跟你的github地址不一样,那就去你的github上复制一下仓库地址
然后在终端中输入:
git remote set-url origin https://github.com/yourname/learngit.git (这个是你的复制的仓库地址)
最后再push下就可以了!
git push origin master
二,删除gitee远程文件,文件夹和本地文件,文件夹,误删找回
1.删除文件,执行命令:
git rm 想要删除的文件的名字及其后缀
但是如果不加文件后缀的话,会发现提示匹配不到文件,所以必须给全名。
之后可以发现本地仓库已经没有这个文件了,但是刷新远程仓库会发现,这个文件依然存在, 这是因为在本地仓库改动过后,没有将现在的状态同步到远程仓库,所以需要执行一下commit和push命令:
git commit -m "对本次提交的描述信息"
git push
2.删除文件夹,执行命令:
git rm 想要删除的文件夹的名字 -r
git commit -m "对本次提交的描述信息"
git push
3.删除本地的仓库git文件
删除仓库,就是需要删除仓库文件夹下隐藏的 .git 文件夹!!!
进入项目所在目录,打开git bash,开始删除本地仓库:
显示所有本地分支(初始化时只有一个master分支)
$ git branch
初始化本地版本库(重新初始化一次,可以忽略)
$ git init
找到目录下隐藏的 .git
$ ls -a
删除 .git
$ rm -rf .git
4.找回误删文件、文件夹
git对于版本的管理本质是对提交的管理,所以在每个操作后最好提交一下,便于之后需要回退。
(1)如果你现在正在进行某些更改,需要先推送远程仓库,否则回退之后,最新状态的内容就没有了。
(2)执行命令:
git log
这个命令会显示出提交日志,可以看到有一个增加了2个文件(test1.txt和test2.txt)的提交和删除test1.txt的提交:
每个提交都有自己的唯一标识,所以想要找回文件test1.txt,需要回退到提交删除操作的前一个状态,所以这里是回退到添加文件状态,执行命令:
git reset --hard 需要回退到的状态的commit标识号
该命令的原理:git有个指向当前版本的HEAD指针,执行回退操作本质上是git把HEAD指针从当前状态指向想要回退到的状态,
所以回退的速度很快,需要回退到哪里,就让HEAD指向哪里就行,
可以看到提示说HEAD已经处于添加文件的状态了,此时查看文件也可以看到test1.txt文件。
(3).如果在这个状态和最新状态之间又提交过很多文件,需要手动把这个找回的test1.txt文件拷贝出去一份,
再执行reset命令回到最新的状态:
git reset --hard 最新状态的commit标识号
(4).最新状态是没有刚刚找回的这个文件的,把test1.txt文件拷贝进本地仓库中,然后推送到远程仓库即可,执行命令:
git add .
git commit -m "对本次提交的描述"
git push
这样就可以既找回了之前误删的文件,又没有丢掉中间状态的很多文件。
找回误删的文件夹和找回误删的文件操作完全相同,因为git不会识别你找回的是什么,只是回退到相应的状态而已。
过程示意图:
commit:1——>commit:2——>commit:3——>commit:4——>commit:5
误删 最新状态
当你想要找回删除的文件的时候,先保存现在的状态即最新状态commit:5,然后回退到误删的前一个状态也就是commit:2,
这时候可以获取到已经删除的文件,把它拷贝出去保存一份,然后回到最新状态commit:5, 该状态下是没有已经删除的文件的,但是刚刚我们找到了它并拷贝了一份,现在把这个文件再拷贝进来到本地仓库中, 然后执行提交推送操作,会产生一个新的commit状态,这个就是在commit:5的基础上找回已删除文件后产生的最最新的状态。