唠叨剧 發表於 2021-2-5 22:40:00

gitee远程仓库

<div class="page-inner">
<div class="page-inner">
<div class="search-noresults">
<h3 id="gitee远程仓库">gitee远程仓库</h3>
<p>git是一个分布式版本控制系统,同一个git仓库可以分布在不同的机器上,但是开发团队必须保证在同一个网络中,且必须有一个项目的原始版本,通常的办法就是让一台电脑充当服务器的角色,每天24小时开机,其他每个人都可以在这台"服务器"仓库里克隆一份代码到自己的电脑上。</p>
<p>并且也可以把各自的代码提交到代码仓库里,也能从代码仓库拉取别人的提交。</p>
<p>这样的代码仓库服务器,我们可以自由的搭建,也可以选择使用免费的托管平台。</p>
<p>Git代码托管平台,首先推荐的是Github,世界范围内的开发者都在使用Github托管代码,可以找到大量优秀的开源项目,缺点就是访问可能会卡一点。</p>
<p>其次选择的就是Gitee,国内的代码托管平台,以及自建Gitlab服务器。&nbsp;<img src="https://img2020.cnblogs.com/blog/1419633/202102/1419633-20210205221020628-1970087114.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Gitee 提供免费的 Git 仓库,还集成了代码质量检测、项目演示等功能。对于团队协作开发,Gitee 还提供了项目管理、代码托管、文档管理的服务。</p>
<p>官网地址</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">https://gitee.com/
注册后登录即可
</pre>
</div>
<p>  </p>
</div>
<h3 id="创建空仓库">创建空仓库</h3>
<p>点击右上角的➕,新建仓库</p>
<p><img src="https://img2020.cnblogs.com/blog/1419633/202102/1419633-20210205221030852-2068843181.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>创建完毕空仓库后,页面出现如下仓库使用方式,我们可以选择HTTPS和SSH形式下载代码的方式</p>
<p><img src="https://img2020.cnblogs.com/blog/1419633/202102/1419633-20210205221044350-1762102322.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>到这里,我们仓库就已经创建好了,接着就是要将本地客户端和服务端连接起来,存在于两种情况</p>
<ul>
<li>本地已经有一个git仓库了</li>
<li>本地还没有git仓库</li>
</ul>
<h3 id="配置客户端连接gitee仓库https">配置客户端连接gitee仓库(HTTPS)</h3>
<h4 id="推送本地仓库到远程">推送本地仓库到远程</h4>
<p>HTTPS协议也就指的是使用账号密码连接</p>
<p>1.git全局设置</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">git config --global user.name "pyyu"
git config --global user.email "877348180@qq.com"
</pre>
</div>
<p>  </p>
</div>
<p>2.创建git仓库</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">mkdir gitee_learn
cd gitee_learn
git init
touch README.md
git add README.md
git commit -m "first commit"
# 为本地仓库gitee_learn添加远程仓库别名origin,地址是如下链接
git remote add origin https://gitee.com/yuco/gitee_learn.git
git push -u origin master
# 输入正确gitee账号密码之后即可正确把代码推送到远程仓库
$git push -u origin master
Username for 'https://gitee.com': 877348180@qq.com
Password for 'https://877348180@qq.com@gitee.com':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 203 bytes | 203.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM
To https://gitee.com/yuco/gitee_learn.git
*       master -&gt; master
Branch 'master' set up to track remote branch 'master' from 'origin'.
</pre>
</div>
<p>  </p>
</div>
<p>3.此时可以访问远程代码仓库了,发现本地创建的文件已经推送上去</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">https://gitee.com/yuco/gitee_learn
</pre>
</div>
<p>  </p>
</div>
<h3 id="免密推送代码(ssh)">免密推送代码(SSH)</h3>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">可以直接访问地址
https://gitee.com/profile/sshkeys
</pre>
</div>
<p>  </p>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1419633/202102/1419633-20210205221249820-845013605.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>我们要在客户端生成key,结合gitee实现无密码登录,在linux和windows均可以使用ssh-keygen命令生成,需要注意的是在windows下只能生成rsa加密方式的key。</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 使用如下命令,生成公私钥对
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yuchao/.ssh/id_rsa):
/Users/yuchao/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/yuchao/.ssh/id_rsa.
Your public key has been saved in /Users/yuchao/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:PRbwYXXO1gVueXRb4K9LdNK2a7CXVOvm3fQ2bTCe8 yuchao@yumac
The key's randomart image is:
+-------+
|      . o.. o+X|
|         + . = =o|
|          o   O o|
|         . o + o |
|      S = .o+|
|         . o..=Xo|
|         .. B+=|
|            .=.E*|
|            o++o*|
+---------+

# 我们把公钥信息复制到gitee中
$cat /Users/yuchao/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDBmqRVCYkYg6PHxugxTjBcAkl1WrMkx3OkMD/ltQAwNM+R/wKozlNwbPLY1ZMUx2A6nKmBoTdvy0rKyX2OhxzbOwoUJsW+InhDoBuY8CGUyFoqhN96lVVxa+9v8/+LYNJOXePS7FArSbo0B23yeRnL389fPVLiHXIiLtFpxFRUEv3pEUcQNdZKeKLKcdboGjHxDNZQpHmVSgWSy039oGd7f8uC4VaM6Lk6qYq4i8lUwR3CudHxcgzkjnfiMGmZdxCdnPHcWdzQvjv4AmyeBSNfrjgaNYnHxrw/OF8GwfJsqfv+xhCG9XINQQgzVp+METIu0qE4GnyXiGB/7KgFeb3t/tR0gI40s19MlgCsS6uCQrHF8Z9qc0qbhdVCVjvk/PYuFWidZHzsz25o1Ay2s5b/yoxUYDaG+drvA95G7uKti6TJ9YLM+cAJMUlgQCmLHKiwxbeKdZuboKG9Z3JzAtLqBSgqgoIFB8b/03S6y6dozciNYEBal6XSOPy+Pltv8= yuchao@yumac
</pre>
</div>
<p>  </p>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1419633/202102/1419633-20210205223744879-1599448146.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>此时我们就得修改代码仓库的远程别名,修改如下</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 查看当前远程配置
$git remote -v
origin    https://gitee.com/yuco/gitee_learn.git (fetch)
origin    https://gitee.com/yuco/gitee_learn.git (push)

# 修改为ssh协议的url
$git remote set-url origin git@gitee.com:yuco/gitee_learn.git
$git remote -v
origin    git@gitee.com:yuco/gitee_learn.git (fetch)
origin    git@gitee.com:yuco/gitee_learn.git (push)

# 可以新增一个文件,用git管理提交到本地仓库后,推送到gitee
# -u指定服务器地址
# 代码推送到远程主机的master主干
$git push -u origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 313 bytes | 313.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM
To gitee.com:yuco/gitee_learn.git
   5c29d38..74c25bemaster -&gt; master
Branch 'master' set up to track remote branch 'master' from 'origin'.
</pre>
</div>
<p>  </p>
</div>
<h4 id="克隆远程仓库到本地">克隆远程仓库到本地</h4>
<p>如果我们在任意一个其他的客户端想要获取仓库的代码,我们只需要克隆一份远程仓库代码即可,在克隆之前,仍然要配置好客户端和gitee的认证关系,或是使用账号密码下载即可。</p>
<p>此时可以再准备一台linux机器,模拟另一个客户端</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 以配置好了ssh-key为准,直接使用ssh协议的下载
$git clone git@gitee.com:yuco/gitee_learn.git
Cloning into 'gitee_learn'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (6/6), done.

# 克隆好了之后,我们本地已然有了代码
$ls gitee_learn/
README.md    git.txt

# 此时该用户也可以继续开发新功能,然后推送到远程代码仓库,供他人下载
$echo "我是程序员小于,我新建了一个文件" &gt;&gt; cc.txt
$
$git add .
$git commit -m "add cc.txt by 小于"
add cc.txt by 小于
1 file changed, 1 insertion(+)
create mode 100644 cc.txt
$
$
$git push -u origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 360 bytes | 360.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM
To gitee.com:yuco/gitee_learn.git
   74c25be..bfcf9d4master -&gt; master
Branch 'master' set up to track remote branch 'master' from 'origin'.


# 此时远程仓库又有了新的代码
https://gitee.com/yuco/gitee_learn
</pre>
</div>
<p>  </p>
</div>
<h3 id="git-fetch使用">git fetch使用</h3>
<p>上述案例,我们在另一个客户端推送了新的代码,此时代码仓库中是最新的,但是其他客户端代码是不是已经旧了,我们得更新代码对把。需要把代码仓库里的更新取回本地,这就得用到git fetch命令。</p>
<p><code>git fetch</code>作用是取回所有分支(branch)的更新,如果只想更新特定的分支代码,可以指定分支名,比如取回远程origin仓库的master分支代码,即可这么写</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">git fetch origin master
</pre>
</div>
<p>  </p>
</div>
<p>案例</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">$git fetch
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From gitee.com:yuco/gitee_learn
   74c25be..bfcf9d4master   -&gt; origin/master
</pre>
</div>
<p>  </p>
</div>
<p>取回来的更新,要在本地主机上采用<code>远程主机名/分支名</code>的形式读取,比如origin主机上的master,那就是origin/master来读取。</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">可以采用git branch -r选项,查看远程分支,-a查看所有分支
$git branch -r
origin/master
$git branch -a
* master
remotes/origin/master
</pre>
</div>
<p>  </p>
</div>
<p>取回远程主机的更新以后,可以在其基础上,使用git checkout命令创建一个新分支,待会用于合并。</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">$git checkout -b remote-master origin/master
Branch 'remote-master' set up to track remote branch 'master' from 'origin'.
Switched to a new branch 'remote-master'

# 此时查看的是远程分支上的数据
$ls
README.md    cc.txt      git.txt
$git branch
master
* remote-master
</pre>
</div>
<p>  </p>
</div>
<p>使用<code>git merge命令</code>合并远程分支的代码到master主干</p>
<div class="code-wrapper">
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;"># 回到master,合并分支
# 切换分支时,git已经提示你,master分支的代码已经落后了,可以更新了
$git checkout master
Switched to branch 'master'
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)

# 将分支代码合并到主干,结束操作
$git merge remote-master
Updating 74c25be..bfcf9d4
Fast-forward
cc.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 cc.txt
</pre>
</div>
<p>  </p>
</div>
<span class="copyright"><br></span></div>
</div>
</div>
<style>img { cursor: pointer }</style><br><br>
来源:https://www.cnblogs.com/abc1234567/p/14380088.html
頁: [1]
查看完整版本: gitee远程仓库