gitee的使用(七)

一、gitee的使用

origin 起源
remote 远程

reset 重置

1.1git的使用

1.创建仓库:

a.创建远程仓库

登入Gitee后,点击头像旁边的"+"加号-->新建项目

 填写项目基本信息后直接点击创建,这样一个远程仓库就已经创建完成了。

b.初始化本地仓库

1)Git Bash安装(安装git的过程不再赘述)

本地仓库的初始化需要借助软件Git Bash 来完成。点击前往Git官网

下载适用您的电脑的Git版本,下载完成后运行安装程序,过程中使用默认选项即可,若须修改安装路径,须保证安装路径为全英文。

2)获取SSHKey

首先要在本地创建一个ssh key 这个的目的就是你现在需要在你电脑上获得一个密匙。:Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。

注意:这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。

按如下命令来生成sshkey:

$ ssh-keygen -t rsa -C "youremail@youremail.com"       我的:ssh-keygen -t rsa -C 2422xxxx326@qq.com

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

查看你的 public key

$ cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2E... youremail@youremail.com

并把他添加到Gitee(gitee.com SSHKey添加地址

 添加后,在终端中输入(他这里是将gitee与github进行对比,我们只用gittee的命令就行了)

#Gitee
$ ssh -T git@gitee.com

#GitHub
$ ssh -T git@github.com

第一次绑定的时候输入上边的代码之后会提示是否continue,输入yes后程序会自动连接,如果要求登录,直接输入登录信息即可。

再次执行上面的命令,检查是否成功连接,如果返回一下信息,则表示添加成功。

#Gitee
Welcome to Gitee.com, YourName!
 
#GitHub
You've successfully authenticated, but GitHub does not provide shell access.

首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access. 内容,则证明添加成功。

 添加成功后,就可以使用SSH协议对仓库进行操作了。

3) 设置基本信息

 接下来还需要简单的设置一些东西。

name尽量和码云或GitHub保持一致,但email必须是码云或GitHub注册时使用的邮箱。命令不分前后,没有顺序。

$ git config --global user.name "yourname"
$ git config --global user.email "youremail@youremail.com"

这里是在配置提交代码时,会用到的全局用户名与邮箱,用来标识是谁提交的代码的,我在使用github时,已经配置过了,这里不再配置了。

4)初始化本地库

然后就是将你的远程仓库克隆到本地,或者你可以在本地初始化一个项目后再进行云端绑定。

克隆

#Gitee
$ git clone https://gitee.com/yourname/repository

#Github
$ git clone https://github.com/yourname/repository.git

#yourname  您在码云或github注册的用户名
#repository  您创建的远程仓库名称

本地初始化

#Gitee
$ cd d:/test //首先在文件系统中创建一个项目文件夹,然后在Git中 cd 到这个工程目录
$ git init //初始化本地项目
$ git remote add origin <远程仓库地址> //绑定远程仓库
#注:地址形式为 https://gitee.com/yourname/test.git 或 git@gitee.com:yourname/test.git

我的:git remote add origin https://gitee.com/be-careful-at-the-xxx/demo.git
#Github $ cd d:/test $ git init $ git remote add origin <远程仓库地址> #注:地址形式为 https://github.com/yourname/test.git

c.更新到远程仓库

在本地进行编辑后,更新到远程仓库

git add .    //指定更新内容    . 表示全部更新,test.txt 表示更新指定文件
git commit -m "一些注释说明"     //添加更新说明
git push origin master            //执行更新操作

在执行更新操作时,由于需要验证远程仓库的用户信息,程序反应较慢,不要以为Git Bash挂掉了哦

如果是第一次更新,那么可能会跳出下面这样的窗口,输入您的用户名和密码,点击登录即可。

用户名并不是注册时的姓名,而是下面这个鬼:

 

如下图,是我自己的操作:

 

初始化后,执行

 git remote add origin https://gitee.com/be-careful-at-the-beginning/demo.git

没有任何反应,也没有提示让输入用户名,密码;去gitee上看,也没有提交上去任何东西。

 然后我就直接新建了一个1.txt文件,执行完

git add 1.txt
git add .    为暂存所有文件
git commit -m 首次提交

以后。向gitee进行push时,如下图:提示让我输入用户名密码,第一次报错是因为用户名输入错了;第二次提示是因为404,是因为gitee上没有一个叫demo的项目,我再次执行

 git remote add origin https://gitee.com/be-careful-at-the-beginning/demo.git

后,提示:致命:远程原点已经存在。

$ git remote add origin https://gitee.com/be-careful-at-the-beginning/demo.git
fatal: remote origin already exists.

很无语,然后手动在gitee上创建了一个叫demo的项目,再次执行,出现下图提示,push成功,查看gitee,确实提交上去了。

git push origin master

 

5)如何从远程仓库同步最新版本到本地

$ cd d:/test
$ git pull origin master

6)如何清屏

$ clear

参看链接:

https://www.cnblogs.com/einstein-2014731/p/11492637.html

https://blog.csdn.net/qq_38215042/article/details/109406958

1.2回滚代码

1、暂存代码

git add . 提交本地所有变更到暂存区

git add 文件名 提交指定文件

2、查看未提交的(未commit的,add的与没有add的都会显示)

git status 查看改变的文件列表
git status
-s 查看改变的文件列表简化版

3、查看已经commit未push的

git cherry -v origin/master

5、删除本地变更(未add的)

git reset --hard 
git clean -xdf

git checkout 文件名

6、撤销add

 git reset HEAD  文件名

7、查看不在暂存区的文件(即工作区的文件)发生的改变(即本地文件与本地仓库的不同)

git diff或者git diff filename

8、查看暂存区与本地仓库的不同

git diff --cached或者git diff --staged

9、查看本地仓库与暂存区、工作区不同的汇总

git diff HEAD是git diff和git diff --cached的合并

10、撤销commit

Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset --soft HEAD~1    撤回最近一次的commit(撤销commit,不撤销git add)后面跟的数字是第几次commit
git reset --mixed HEAD~1 撤回最近一次的commit(撤销commit,撤销git add) 

git reset
--hard HEAD~1 撤回最近一次的commit(撤销commit ,撤销git add,还原改动的代码)

出现如下报错:

$ git reset --hard "HEAD^"
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

查了下原因可能有两种:

  • 因为cmd控制台中换行符默认是^,而不是 ,所以^符号被git编译为换行符了,解决方案:
git reset --hard "HEAD^"
git reset --hard HEAD~[return times]
  • 该仓库到目前为止只有commit过一次代码,故已经是head版本,也会报这样的错。

我这里报这个错误的原因是因为只commit过一次代码。

commit两次代码后,再执行命令:

git reset --soft HEAD~1 

结果如下图:

 通过git log可以看出来,第二次的commit直接没有了,而且本地的变更也删除了,直接退回到了cc5b...这个变更集的内容。

最新的那个版本26c13...已经看不到了!好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办?

办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个26c13...的commit id是26c13...,于是就可以指定回到未来的某个版本:

$ git reset --hard 26c13...

版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向26c13...。

然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:

$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file

终于舒了口气,从输出可知,append GPL的commit id是1094adb,现在,你又可以乘坐时光机回到未来了。

11、查看提交日志

git log
git log --pretty=oneline

12、丢弃工作区的修改

git checkout -- file

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

13、删除文件

在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:

$ git add test.txt

$ git commit -m "add test.txt"
[master b84166e] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:

$ rm test.txt

这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    deleted:    test.txt

no changes added to commit (use "git add" and/or "git commit -a")

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

现在,文件就从版本库中被删除了。

12、更新代码

git fetch

git pull

13、推送代码到远程仓库

git push

14、先存储代码到本地

git stash

参看链接:

https://www.liaoxuefeng.com/wiki/896043488029600/896954074659008

二、起别名

参看链接:https://www.liaoxuefeng.com/wiki/896043488029600/898732837407424

三、idea连接gitee 

3.1idea连接gitee

参看链接:https://blog.csdn.net/seventeenliu/article/details/110187861

如果错过太阳时你流了泪,那你也要错过群星了。
在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。
不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。
原文地址:https://www.cnblogs.com/szrs/p/15315347.html