zoukankan      html  css  js  c++  java
  • 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

    如果错过太阳时你流了泪,那你也要错过群星了。
    在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。
    不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。
  • 相关阅读:
    静水流深,沧笙踏歌
    iOS 进阶 第二十二天(0603)
    iOS 进阶 第二十一天(0531)
    iOS 进阶 第二十天(0520)
    iOS 进阶 第十九天(0423)
    iOS 进阶 第十八天(0423)
    iOS 进阶 第十七天(0420)
    iOS 进阶 第十六天(0419)
    iOS 进阶 第十五天(0417)
    iOS 进阶 第十四天(0416)
  • 原文地址:https://www.cnblogs.com/szrs/p/15315347.html
Copyright © 2011-2022 走看看