gitee的使用(七)
<h1>一、gitee的使用</h1><div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">origin 起源<br>
remote 远程<br><br>reset 重置</span></pre>
</div>
<h2>1.1git的使用</h2>
<p><strong>1.创建仓库:</strong></p>
<p><strong>a.创建远程仓库</strong></p>
<p>登入Gitee后,点击头像旁边的"+"加号-->新建项目</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920113541131-25970889.png" alt="" loading="lazy"></p>
<p> 填写项目基本信息后直接点击创建,这样一个远程仓库就已经创建完成了。</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920113609953-358939942.png" alt="" loading="lazy"></p>
<p><strong>b.初始化本地仓库</strong></p>
<p><strong>1)Git Bash安装(安装git的过程不再赘述)</strong></p>
<p>本地仓库的初始化需要借助软件Git Bash 来完成。点击前往Git官网</p>
<p>下载适用您的电脑的Git版本,下载完成后运行安装程序,过程中使用默认选项即可,若须修改安装路径,须保证安装路径为全英文。</p>
<p><strong>2)获取SSHKey</strong></p>
<p>首先要在本地创建一个ssh key 这个的目的就是你现在需要在你电脑上获得一个密匙。:Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。</p>
<p>注意:这里的 <code>xxxxx@xxxxx.com</code> 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。</p>
<p>按如下命令来生成sshkey:</p>
<div class="cnblogs_code">
<pre>$ ssh-keygen -t rsa -C "youremail@youremail.com"<span> 我的:ssh-keygen -t rsa -C 2422xxxx326@qq.com
# Generating public/<span>private rsa key pair...
# 三次回车即可生成 ssh key</span></span></pre>
</div>
<p>查看你的 public key</p>
<div class="cnblogs_code">
<pre>$ cat ~/.ssh/<span>id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2E... youremail@youremail.com</span></pre>
</div>
<p>并把他添加到Gitee(gitee.com SSHKey添加地址)</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920113941545-1303980877.png" alt="" loading="lazy"></p>
<p> 添加后,在终端中输入(他这里是将gitee与github进行对比,我们只用gittee的命令就行了)</p>
<div class="cnblogs_code">
<pre><span>#Gitee
$ ssh -<span>T git@gitee.com
#GitHub
$ ssh -T git@github.com</span></span></pre>
</div>
<p>第一次绑定的时候输入上边的代码之后会提示是否continue,输入yes后程序会自动连接,如果要求登录,直接输入登录信息即可。</p>
<p>再次执行上面的命令,检查是否成功连接,如果返回一下信息,则表示添加成功。</p>
<div class="cnblogs_code">
<pre><span>#Gitee
Welcome to Gitee.com, YourName!<span>
#GitHub
You've successfully authenticated, but GitHub does not provide shell access.</span></span></pre>
</div>
<p>首次使用需要确认并添加主机到本机SSH可信列表。若返回 <code>Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.</code> 内容,则证明添加成功。</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920114425780-2133415672.png" alt="" loading="lazy"></p>
<p> 添加成功后,就可以使用SSH协议对仓库进行操作了。</p>
<p><strong>3) 设置基本信息</strong></p>
<p> 接下来还需要简单的设置一些东西。</p>
<p>name尽量和码云或GitHub保持一致,但email必须是码云或GitHub注册时使用的邮箱。命令不分前后,没有顺序。</p>
<div class="cnblogs_code">
<pre>$ git config --global user.name "yourname"<span>
$ git config --global user.email "youremail@youremail.com"</span></pre>
</div>
<p>这里是在配置提交代码时,会用到的全局用户名与邮箱,用来标识是谁提交的代码的,我在使用github时,已经配置过了,这里不再配置了。</p>
<p><strong>4)初始化本地库</strong></p>
<p>然后就是将你的远程仓库克隆到本地,或者你可以在本地初始化一个项目后再进行云端绑定。</p>
<p>克隆</p>
<div class="cnblogs_code">
<pre><span>#Gitee
$ git clone https://gitee.com/yourname/repository
<span>
#Github
$ git clone https://github.com/yourname/repository.git
<span>
#yourname您在码云或github注册的用户名
#repository您创建的远程仓库名称</span></span></span></pre>
</div>
<p>本地初始化</p>
<div class="cnblogs_code">
<pre><span>#Gitee
$ cd d:/test //首先在文件系统中创建一个项目文件夹,然后在Git中 cd 到这个工程目录
$ git init //初始化本地项目
$ git remote add origin <远程仓库地址> //绑定远程仓库
#注:地址形式为 https://gitee.com/yourname/test.git 或 git@gitee.com:yourname/test.git<br><br>我的:git remote add origin https://gitee.com/be-careful-at-the-xxx/demo.git<br>
<span>
#Github
$ cd d:/<span>test
$ git init
$ git remote add origin <远程仓库地址><span>
#注:地址形式为 https://github.com/yourname/test.git</span></span></span></span></pre>
</div>
<p><strong>c.更新到远程仓库</strong></p>
<p>在本地进行编辑后,更新到远程仓库</p>
<div class="cnblogs_code">
<pre>使用 git pull origin master命令 //将codeup仓库pull到本地文件夹<br>git add . //指定更新内容 . 表示全部更新,test.txt 表示更新指定文件
git commit -m "一些注释说明" //添加更新说明
git push origin master //执行更新操作</pre>
</div>
<p>在执行更新操作时,由于需要验证远程仓库的用户信息,程序反应较慢,不要以为Git Bash挂掉了哦</p>
<p>如果是第一次更新,那么可能会跳出下面这样的窗口,输入您的用户名和密码,点击登录即可。</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920114834596-1779093254.png" alt="" loading="lazy"></p>
<p>用户名并不是注册时的姓名,而是下面这个鬼:</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920113305996-1112750793.png" alt="" loading="lazy"></p>
<p> <img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920113221850-1712195426.png" alt="" loading="lazy"></p>
<p>如下图,是我自己的操作:</p>
<p> <img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920115242092-753723622.png" alt="" loading="lazy"></p>
<p>初始化后,执行</p>
<div class="cnblogs_code">
<pre> git remote add origin https://gitee.com/be-careful-at-the-beginning/demo.git</pre>
</div>
<p>没有任何反应,也没有提示让输入用户名,密码;去gitee上看,也没有提交上去任何东西。</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920115453988-571116418.png" alt="" loading="lazy"></p>
<p> 然后我就直接新建了一个1.txt文件,执行完</p>
<div class="cnblogs_code">
<pre>git add 1<span>.txt<br></span></pre>
<pre>git add . 为暂存所有文件</pre>
<pre><span>git commit -m 首次提交</span></pre>
</div>
<p>以后。向gitee进行push时,如下图:提示让我输入用户名密码,第一次报错是因为用户名输入错了;第二次提示是因为404,是因为gitee上没有一个叫demo的项目,我再次执行</p>
<div class="cnblogs_code">
<pre> git remote add origin https://gitee.com/be-careful-at-the-beginning/demo.git</pre>
</div>
<p>后,提示:致命:远程原点已经存在。</p>
<div class="cnblogs_code">
<pre>$ git remote add origin https://gitee.com/be-careful-at-the-beginning/demo.git
fatal: remote origin already exists.</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920115900708-1500522267.png" alt="" loading="lazy"></p>
<p>很无语,然后手动在gitee上创建了一个叫demo的项目,再次执行,出现下图提示,push成功,查看gitee,确实提交上去了。</p>
<div class="cnblogs_code">
<pre>git push origin master</pre>
</div>
<p> <img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210920120331248-708860710.png" alt="" loading="lazy"></p>
<p><strong>5)如何从远程仓库同步最新版本到本地</strong></p>
<div class="cnblogs_code">
<pre>$ cd d:/<span>test
$ git pull origin master</span></pre>
</div>
<p><strong>6)如何清屏</strong></p>
<div class="cnblogs_code">
<pre>$ clear</pre>
</div>
<p>参看链接:</p>
<p>https://www.cnblogs.com/einstein-2014731/p/11492637.html</p>
<p>https://blog.csdn.net/qq_38215042/article/details/109406958</p>
<h2>1.2回滚代码</h2>
<p>1、暂存代码</p>
<div class="cnblogs_code">
<pre><span>git add . 提交本地所有变更到暂存区
<br>git add文件名提交指定文件</span></pre>
</div>
<p>2、查看未提交的(未commit的,add的与没有add的都会显示)</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">git status 查看改变的文件列表<br>
git status </span>-s 查看改变的文件列表简化版</pre>
</div>
<p>3、查看已经commit未push的</p>
<div class="cnblogs_code">
<pre>git cherry -v origin/master</pre>
</div>
<p>5、删除本地变更(未add的)</p>
<div class="cnblogs_code">
<pre>git reset --hard <br>
git clean -xdf<br><br></pre>
<p>git checkout 文件名</p>
</div>
<p>6、撤销add</p>
<div class="cnblogs_code">
<pre> git reset HEAD文件名</pre>
</div>
<p>7、查看不在暂存区的文件(即工作区的文件)发生的改变(即本地文件与本地仓库的不同)</p>
<div class="cnblogs_code">
<pre>git diff或者git <span style="color: rgba(0, 0, 255, 1)">diff</span> filename</pre>
</div>
<p>8、查看暂存区与本地仓库的不同</p>
<div class="cnblogs_code">
<pre>git <span style="color: rgba(0, 0, 255, 1)">diff</span> --cached或者git <span style="color: rgba(0, 0, 255, 1)">diff</span> --staged</pre>
</div>
<p>9、查看本地仓库与暂存区、工作区不同的汇总</p>
<div class="cnblogs_code">
<pre>git <span style="color: rgba(0, 0, 255, 1)">diff</span> HEAD是git diff和git <span style="color: rgba(0, 0, 255, 1)">diff</span> --cached的合并</pre>
</div>
<p>10、撤销commit</p>
<p>Git必须知道当前版本是哪个版本,在Git中,用<code>HEAD</code>表示当前版本,也就是最新的提交<code>1094adb...</code>(注意我的提交ID和你的肯定不一样),上一个版本就是<code>HEAD^</code>,上上一个版本就是<code>HEAD^^</code>,当然往上100个版本写100个<code>^</code>比较容易数不过来,所以写成<code>HEAD~100</code>。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">git reset </span>--soft HEAD~<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> 撤回最近一次的commit(撤销commit,不撤销git add)</span>后面跟的数字是第几次commit</pre>
<pre><span style="color: rgba(0, 0, 0, 1)">git reset </span>--mixed HEAD~<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> 撤回最近一次的commit(撤销commit,撤销git add) <br><br>git reset </span>--hard HEAD~<span style="color: rgba(128, 0, 128, 1)">1</span> 撤回最近一次的commit(撤销commit ,撤销git add,还原改动的代码)</pre>
</div>
<p>出现如下报错:</p>
<div class="cnblogs_code">
<pre>$ git reset --hard <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">HEAD^</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
fatal: ambiguous argument </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">HEAD^</span><span style="color: rgba(128, 0, 0, 1)">'</span>: unknown revision or path not <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> the working tree.
Use </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">--</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)"> to separate paths from revisions, like this:
</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">git <command> [<revision>...] -- [<file>...]</span><span style="color: rgba(128, 0, 0, 1)">'</span></pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210922154247413-1160588444.png" alt="" loading="lazy"></p>
<p>查了下原因可能有两种:</p>
<ul>
<li>因为cmd控制台中换行符默认是^,而不是\ ,所以^符号被git编译为换行符了,解决方案:</li>
</ul>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">git reset </span>--hard <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">HEAD^</span><span style="color: rgba(128, 0, 0, 1)">"<br></span><span style="color: rgba(0, 0, 0, 1)">
git reset </span>--hard HEAD~</pre>
</div>
<ul>
<li>该仓库到目前为止只有commit过一次代码,故已经是head版本,也会报这样的错。</li>
</ul>
<p>我这里报这个错误的原因是因为只commit过一次代码。</p>
<p>commit两次代码后,再执行命令:</p>
<div class="cnblogs_code">
<pre>git reset --soft HEAD~<span style="color: rgba(128, 0, 128, 1)">1</span> </pre>
</div>
<p>结果如下图:</p>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210922163123908-1771355109.png" alt="" loading="lazy"></p>
<p> </p>
<p> 通过git log可以看出来,第二次的commit直接没有了,而且本地的变更也删除了,直接退回到了cc5b...这个变更集的内容。</p>
<p>最新的那个版本<code>26c13...</code>已经看不到了!好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办?</p>
<p>办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个26c13...的<code>commit id</code>是26c13...,于是就可以指定回到未来的某个版本:</p>
<div class="cnblogs_code">
<pre>$ git reset --hard 26c13...</pre>
</div>
<p>版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。</p>
<p>Git的版本回退速度非常快,因为Git在内部有个指向当前版本的<code>HEAD</code>指针,当你回退版本的时候,Git仅仅是把HEAD从指向26c13...。</p>
<p>然后顺便把工作区的文件更新了。所以你让<code>HEAD</code>指向哪个版本号,你就把当前版本定位在哪。</p>
<p>现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的<code>commit id</code>怎么办?</p>
<p>在Git中,总是有后悔药可以吃的。当你用<code>$ git reset --hard HEAD^</code>回退到<code>add distributed</code>版本时,再想恢复到<code>append GPL</code>,就必须找到<code>append GPL</code>的commit id。Git提供了一个命令<code>git reflog</code>用来记录你的每一次命令:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">$ git reflog
e475afc HEAD@{</span><span style="color: rgba(128, 0, 128, 1)">1</span>}: reset: moving to HEAD^<span style="color: rgba(0, 0, 0, 1)">
1094adb (HEAD </span>-> master) HEAD@{<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">}: commit: append GPL
e475afc HEAD@{</span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">}: commit: add distributed
eaadf4e HEAD@{</span><span style="color: rgba(128, 0, 128, 1)">4</span>}: commit (initial): wrote a readme <span style="color: rgba(0, 0, 255, 1)">file</span></pre>
</div>
<p>终于舒了口气,从输出可知,<code>append GPL</code>的commit id是<code>1094adb</code>,现在,你又可以乘坐时光机回到未来了。</p>
<p>11、查看提交日志</p>
<div class="cnblogs_code">
<pre>git log</pre>
<pre><code class="ruby">git log --pretty=oneline</code></pre>
</div>
<p>12、丢弃工作区的修改</p>
<div class="cnblogs_code">
<pre>git checkout -- <span style="color: rgba(0, 0, 255, 1)">file</span></pre>
</div>
<p><code>git checkout -- file</code>命令中的<code>--</code>很重要,没有<code>--</code>,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到<code>git checkout</code>命令。</p>
<p>13、删除文件</p>
<p>在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件<code>test.txt</code>到Git并且提交:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">$ git add test.txt
$ git commit </span>-m <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">add test.txt</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
add test.txt
</span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">file</span> changed, <span style="color: rgba(128, 0, 128, 1)">1</span> insertion(+<span style="color: rgba(0, 0, 0, 1)">)
create mode </span><span style="color: rgba(128, 0, 128, 1)">100644</span> test.txt</pre>
</div>
<p>一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用<code>rm</code>命令删了:</p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">rm</span> test.txt</pre>
</div>
<p>这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,<code>git status</code>命令会立刻告诉你哪些文件被删除了:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">$ git status
On branch master
Changes not staged </span><span style="color: rgba(0, 0, 255, 1)">for</span><span style="color: rgba(0, 0, 0, 1)"> commit:
(use </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">git add/rm <file>...</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> to update what will be committed)
(use </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">git checkout -- <file>...</span><span style="color: rgba(128, 0, 0, 1)">"</span> to discard changes <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> working directory)
deleted: test.txt
no changes added to commit (use </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">git add</span><span style="color: rgba(128, 0, 0, 1)">"</span> and/or <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">git commit -a</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p>现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令<code>git rm</code>删掉,并且<code>git commit</code>:</p>
<div class="cnblogs_code">
<pre>$ git <span style="color: rgba(0, 0, 255, 1)">rm</span><span style="color: rgba(0, 0, 0, 1)"> test.txt
</span><span style="color: rgba(0, 0, 255, 1)">rm</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">test.txt</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
$ git commit </span>-m <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">remove test.txt</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
remove test.txt
</span><span style="color: rgba(128, 0, 128, 1)">1</span> <span style="color: rgba(0, 0, 255, 1)">file</span> changed, <span style="color: rgba(128, 0, 128, 1)">1</span> deletion(-<span style="color: rgba(0, 0, 0, 1)">)
delete mode </span><span style="color: rgba(128, 0, 128, 1)">100644</span> test.txt</pre>
</div>
<p>现在,文件就从版本库中被删除了。</p>
<p>12、更新代码</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">git fetch
git pull</span></pre>
</div>
<p>13、推送代码到远程仓库</p>
<div class="cnblogs_code">
<pre>git push</pre>
</div>
<p>14、先存储代码到本地</p>
<div class="cnblogs_code">
<pre>git stash</pre>
</div>
<p>参看链接:</p>
<p>https://www.liaoxuefeng.com/wiki/896043488029600/896954074659008</p>
<h1>二、起别名</h1>
<p>参看链接:https://www.liaoxuefeng.com/wiki/896043488029600/898732837407424</p>
<h1>三、idea连接gitee </h1>
<h2>3.1idea连接gitee</h2>
<p><img src="https://img2020.cnblogs.com/blog/1864491/202109/1864491-20210925220257163-1524172100.png" alt="" loading="lazy"></p>
<p>参看链接:https://blog.csdn.net/seventeenliu/article/details/110187861</p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
如果错过太阳时你流了泪,那你也要错过群星了。<br/>在所有的矛盾中,要优先解决主要矛盾,其他矛盾也就迎刃而解。<br/>不要做个笨蛋,为失去的郁郁寡欢,聪明的人,已经找到了解决问题的办法,或正在寻找。<br><br>
来源:https://www.cnblogs.com/szrs/p/15315347.html
頁:
[1]