草庐IT

Git与GitHub,实现远程上传、下拉、更新项目

学会微笑的疯子 2024-01-08 原文

2022/12/3 —— Git学习记录
因个人原因在广州呆了一个学期,回学校后疯狂补作业和报告还有应付期末考试
离下一次考试还有五天,最后一天再复习嘻嘻。

今天咱们学Git的一些基本操作,虽然之前用过但没系统学过,都忘了。
接下来打算复盘之前做过的两个项目为就业做准备,后续不定期更新

纯纯的学习记录,按照宁一姐说的那啥以教促学

在猫宁一公众号学习的GitHub基本操作 宁一姐的教程链接

以程序员做饭指南为例,程序员YYDS!哈哈


本文导航

1.安装Git

这里的学自廖雪峰老师的博客

廖雪峰官方链接

Linux安装Git

  • sudo apt-get install git
    

Mac OS上安装Git

直接从AppStore上安装Xcode,Xcode上集成了Git,不过默认没有安装,选择菜单“Xcode”->“Preferences”,在弹出窗口到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

Windows上安装Git

  • Git官网下载即可

  • 安装后的配置

    git config --global user.name "用户名"
    git config --global user.email "邮箱地址"
    

2.本地创建版本库(仓库)

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

  • 创建一个空目录
mkdir Hello_Git
cd Hello_Git
pwd #显示当前的绝对路径 
  • 告诉Git 把这个空目录变成Git可以管理的仓库
git init
成功功后显示
Initialized empty Git repository in "路径"
  • 在Hello_Git目录下创建一个readme.txt文件

    使用Windows系统的注意不要用系统自带的文本编辑器来编写.txt文件,可能后面运行项目会有BUG

    touch readme.txt
    
  • 然后用上面我们说过的基本操作命令行了

    git add readme.txt  			 #将readme.txt文件添加到缓存
    git commit -m "这是一个学习记录" 	#将缓存区的内容添加到仓库
    

    成功后会显示这些提示信息,告诉俺们有几个文件改动,加入了几行

    1 file changed,num insertions(+)

    create mode 100644 readme.txt



3.在GitHub创建存储库

没有账号的先建一个账号吧 GitHub

  • 创建存储库

点击GitHub页面右上角头像 --> 点击Your repositories(存储库的英文好长啊O.O)
–> 点击NEW -->写一下仓库名称,选Public就可以创建啦!



4.生成SSH KEY

本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证本地电脑的SSH key。我们需要在本地生成SSH key

宁一姐的原话O.O

  • 首先进入咱们之前创建好的仓库目录

    cd "路径"
    
  • 而后生成SSH KEY

    ssh-keygen -t rsa -C 注册github用的邮箱  #注意后面那个C要大写
    #成功后你会看到这些
    Enter passphrase (empty for no passphrase):#设置密码直接回车
    Enter same passphrase again:#回车
    Your identification has been saved in C:\Users\Administrator/.ssh/id_rsa.
    Your public key has been saved in C:
    \Users\Administrator/.ssh/id_rsa.pub.   #你密码的存储路径
    The key fingerprint is:
    xxx
    The key's randomart image is:
    +---[RSA 3072]----+
    |             o|
    | E     o     + .o|
    |  .   o o .|
    |   o o B = o *o..|
    |    o * S ooo..|
    |     o.+.o  o|
    |       +o  . |
    |      .o      |
    +----[SHA256]-----+
    
  • 然后根据SSH KEY的存储路径查看并复制密码

    cat 路径 	#路径在生成SSH KEY时候页面有显示喔"Your public key has been saved in:"
    #Windows下可以直接找到那个文件夹打开,也可以在开始处搜索git bash,在那里就可以运行这个命令了
    
  • 将SSH KEY 部署到GitHub

    点击GitHub页面右上角头像 --> 点击Settings --> 点击左边的SSH AND GPG KEYS -->然后建立一个新的SSH KEY --> title随便填,密码把之前复制的密码粘贴进去


进行到这儿,准备工作就做完啦!开始上传下拉吧!


5.本地上传与云端下拉

  • 远程连接GitHub

    首先咱们之前在GitHub创建的仓库是空的,咱们先打开那个仓库可以看到
    code页面让俺们上传一些东西,复制那个链接。
    或者直接执行下面那行圈起来的命令
    

    git remote add origin 复制的链接地址  
    git remote   #查看当前连接的仓库别名
    

  • 本地代码提交到GitHub的仓库

这里就要用到写到的刚开始的Git基本命令
首先将待打包上传的项目复制到咱的本地仓库,而后进入项目文件夹目录,可以随便选个程序来做测试,我这里是用的大二的课设来做测试。然后

git add . #将当前目录下的所有文件的都放到缓存空间
git commit -m "智能小车硬件源码V1.0" #将缓存空间的所有文件放到仓库
git push -u origin master #上传到GitHub仓库 其中origin是仓库别名,
#master是仓库下的分支名

然后我们刷新一下GitHub页面,会发现我们想上传的文件都上传上来了!


  • 云端下拉刚刚上传的项目(这里的图片都在下面哈O.O)

与本地上传时操作差不多,复习一遍!

ssh @用户名 云服务器公网IP	#远程连接云服务器
mkdir IntelligentCar_V1.0 #创建一个目录也就是本地仓库,后面那个是目录名
cd IntelligentCar_V1.0    #进入刚刚创建的目录
git init				  #告诉git,这个目录归咱管了
ssh-keygen -t rsa -C 注册github用的邮箱 #生成SSH KEY
cat 保存SSH KEY的文件路径  #复制打印出来的密码

然后咱就去GitHub上点击头像 --> 点击Settings --> 点击左侧的SSH and GPG keys --> 创建新的SSH KEY 具体操作与上面一样的,可以看上面的喔

在GitHub上打开咱们刚刚上传的项目 --> 点击Code -->点击SSH方式 复制那个链接

  git remote add origin 复制的链接地址  #连接GitHub的仓库;其中origin是仓库别名,可自命名
  git pull origin master #下拉到当前目录;其中origin是仓库别名,master是仓库下的分支名
  ls #查看是不是下载下来了

远程连接云服务器

选择SSH方式

生成SSH KEY、连接远程仓库、pull下载到指定目录

查看是否下载成功


6.克隆项目并创建新分支更新项目

这里我们克隆下项目并且修改后再提交,即更新项目,提供两个项目链接

程序员做饭指南

智能小车硬件源码

  • 打开程序员做饭指南点击fork(克隆)到自己的仓库
  • - 选择SSH方式



  • 克隆到本地
git clone 链接地址

  • 用sublime打开HowToCook文件夹,在dishes目录下的某个分类里创建一个新的菜单(记得复制模板,以及不要有太多空行!!!)


  • Readme.txt处添加该菜单路径,即目录

  • 上传到GitHub

    cd HowToWook  #进入项目目录
    gid add .	  #将当前路径下的所有文件防止缓存空间
    git commit -m "添加蛋煎糍粑菜谱" #将缓存空间文件放置仓库
    git push origin master #上传
    

  • 打开GitHub原项目,点击Pull requests

  • 点击New pull request

  • 打开分叉,在head repository选择自己刚刚上传的分支

  • 签署协议,查看协议后点击Create pull resquests

  • 可以看到审核的地方有我们的申请了


7.总结

经过这些操作,一些基本基本操作应该如下

- 创建一个目录也就是本地仓库
- git init    #告诉git这是本地仓库归你管
- ssh-keygen -t rsa -C注册github用的邮箱      #生成SSH KEY
- 将生成的SSH KEY保存在github的设置中
- git add 文件名   #将要上传的文件放到缓存空间
- git add .  #将当前目录下的所有文件放到缓存空间
- git commit -m "备注信息"  #将缓存空间的所有文件放到仓库
- git remote add origin 链接地址     #连接远程仓库
- git push -u origin master   #将仓库里的文件上传到GitHub指定仓库的分支,定义仓库别名为origin,分支名为master
- git pull origin master #将别名为origin仓库下的master分支的文件下载到当前目录
- git clone 项目链接 #克隆项目到本地

要好好生活~
天天开心呀~

有关Git与GitHub,实现远程上传、下拉、更新项目的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby - 我可以使用 aws-sdk-ruby 在 AWS S3 上使用事务性文件删除/上传吗? - 2

    我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  5. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  6. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  7. ruby-on-rails - 添加回形针新样式不影响旧上传的图像 - 2

    我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司

  8. ruby-on-rails - 有没有办法为 CarrierWave/Fog 设置上传进度指示器? - 2

    我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r

  9. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  10. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

随机推荐