草庐IT

2022新版Git教程 从入门到实战(四)Git远程仓库Gitee的使用

小鱼干儿♛ 2023-04-28 原文

文章目录

因为GitHub服务器在国外,访问起来可能有一些问题,所以这一章的教学主要以码云(Gitee)为主,码云和GitHub使用起来很相似,所以学会使用码云,在使用Github就很容易上手了

远程仓库作用

远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。

使用码云(Gitee)

网址 :https://gitee.com/

注册账号

首先需要注册一个码云的账号

创建仓库

  • 在码云创建一个新仓库

  • 新建仓库设置仓库名称和仓库路径,一般建议名称和路径和项目使用同一个

  • 创建仓库成功以后我们可以看到,有两个链接,这两个链接是远程仓库的地址

建立项目和本地仓库

建立一个git-dome的项目目录,里面添加一个fish.txt

初始化并提交

git init 
git add .
git commit -m'first'

添加远程仓库

git remote add 别名 远程库的链接

git remote add git-dome https://gitee.com/liu/git-dome.git

这里的别名通常是用 origin 这里为了强调它只是一个别名的作用特意换了一个
最后的链接是你远程项目的地址可以是https也可以是ssh只不过选择不同的后面的验证方式有所不同

推送到远程仓库

git push <remote> <branch>
git push <远程连接的别名> <分支名>

git push -u git-dome master

我们第一次推送分支时,加上了-u参数,Git不但会把本地的分支内容推送的远程新的分支,还会把本地的分支和远程的分支关联起来,在以后的推送或者拉取时就可以简化命令git push或者git push <remote> <branch>

这里就是将本地的master分支和远程的master分支关联了起来

注意:推送的单位是分支

如果是第一次使用git,并且刚才使用的是https协议的链接,则在推送的时候会出一个弹窗,让你输入用户名和密码,这里的用户名和密码是码云的用户名和密码,主要是用来让网站验证你的身份。这里的用户名和密码存到凭据管理器,以后需要修改密码的时候可以去凭据管理器中更改,可以参考这个博客

推送成功
注意最下面的一行内容,这个就是代表本地分支和远程分支绑定起来

查看远程仓库

查看全部的远程仓库

# 查看的是简略信息
git remote 
# 详细信息
git remote -v


通过git remote -v 你会发现自己只添加了一个远程仓库,但是结果为什么有两个,这两个分别代表一个拥有拉取权限一个代表拥有推送权限

推送成功以后我们查看一下远程仓库中是否有内容,已经看到内容已经添加到里面了

查看某个远程仓库

 git remote show < 远程的别名 >
 git remote show git-dome


它同样会列出远程仓库的 URL 与跟踪分支的信息。 这些信息非常有用,它告诉你正处于 master 分支,并且如果运行 git pull, 就会抓取所有的远程引用,然后将远程 master 分支合并到本地 master 分支。 它也会列出拉取到的所有远程引用

拉取远程库

git pull 别名 分支名
git pull git-dome master

拉取动作会自动提交本地库以及自动合并

使用ssh协议

上面我们用的是https协议,因为码云在国内所以使用https协议的速度还是很快的,但是如果要使用Github在使用https协议的就对网络的要求比较高,很容易出现超时的情况,使用ssh协议连接速度会快一些

创建私钥和公钥

首先查看自己本地是否有私钥和公钥,打开C盘下当前用户,是否有.ssh隐藏文件夹,如果有就删除

在当前用户目录下进入Git Bash
使用 ssh-keygen命令生成公钥和私钥

ssh-keygen -t rsa -C youemail@fish.com
# 最后的邮箱是你自己的可以,随便编的可以

执行命令后,中间会有三次停顿,什么也不用输,直接回车就行
最后的结果

此时文件中多出了一个.ssh的目录,里面有两个文件

绑定公钥

用记事本本打开公钥,将里面的内容复制下来,添加到Gitee里面


添加完成后就可以使用ssh链接

使用ssh拉取远程库

我们先在gitee中修改一下文件
原来的内容只有第一行,现在添加内容并提交

 git pull 远程连接  分支
 git pull git@gitee.com:liu/git-dome.git master

同样这个ssh的连接也可以通过 git remote来添加别名

查看本地的内容

克隆远程仓库

这次我们克隆远程那个git-dome的项目。因为是要克隆项目,所以就在一个新的文件夹中克隆下来git-dome的项目
在新文件夹下打开Git Bash

git clone 远程仓库的链接
git clone https://gitee.com/liu/git-dome.git


查看本地,同样也发现本地新的文件夹下也有了刚才的项目
查看克隆下来的项目的远程连接

git remote -v 


此时会发现,远程连接的别名是origin 这个别名是Git默认的

这时我们就发现项目已经被克隆下来了,项目已经是你自己本地的项目了,随你自己进行修改

远程仓库的重命名与移除

重命名远程仓库

修改一个远程仓库的别名,

 git remote rename  old_name new_name


查看此时远程仓库的名称

移除远程仓库

如果因为一些原因想要移除一个远程仓库可以使用 git remote removegit remote rm

# 删除远程仓库
git remote remove new-dome

此时再查看

这里的修改和删除都是针对本地,不会删除远程的仓库

常用流程

首次使用

# 初始化本地仓库
git init
# 添加暂存区
git add .
# 提交到本地仓库
git commit -m 'XXX'
# 更新项目,如果有冲突需要解决冲突
git pull 项目链接 
# 给项目链接设置一个别名,以后就可以通过别名使用
git remote add origin 项目链接  
# 初次推送到远程
# 将本地分支和远程分支绑定
git push -u origin master

之后提交

git add .
git commit -m 'XXX'
git pull origin master  # 如果有冲突就先解决冲突以后再commint一遍
git push origin master

建议还是要先理解原理,不然只是使用命令,等遇到问题时自己不知道怎么解决

本章小结

本章我们学习了远程库的一些使用技巧,学会了如何在代码托管平台建立新的仓库,将本地仓库和远程仓库关联起来、推送和拉取远程的项目、克隆远程的项目到本地,以及远程仓库的重命名与移除。

本章使用的命令

命令作用
git remote add < 别名 > 链接添加远程库的连接并设置别名
git push < 别名 > < 分支 >推送指定分支到远程仓库
git remote查看有几个远链接
git remote -v查看远程链接
git remote show < 别名 >查看指定的远程仓库的信息
git pull < 别名 > < 分支>拉取指定远程仓库指定分支
git clone < 远程仓库链接 >克隆远程仓库
git remote rename < old_别名 > < new_别名 >重命名
git remote remove < 别名 >删除远程仓库
git remote rm < 别名 >删除远程仓库
ssh-keygen -t rsa -C < 邮箱 >生成SSH的公钥和私钥

有关2022新版Git教程 从入门到实战(四)Git远程仓库Gitee的使用的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  10. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

随机推荐