git学习(10):Git的使用--如何将本地项目上传到Github(两种简单、方便的方法)

将本地项目上传到Github(两种简单、方便的方法)
一、第一种方法:

首先你需要一个github账号,所有还没有的话先去注册吧!

https://github.com/

我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可:

https://git-for-windows.github.io/

1.进入Github首页,点击New repository新建一个项目

 2.填写相应信息后点击create即可

Repository name: 仓库名称

Description(可选): 仓库描述介绍

Public, Private : 仓库权限(公开共享,私有或指定合作者)

Initialize this repository with a README: 添加一个README.md

gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore

license: 证书类型,对应生成文件LICENSE

4.点击Clone or dowload会出现一个地址,copy这个地址备用。

5.接下来就到本地操作了,首先右键你的项目,如果你之前安装git成功的话,右键会出现两个新选项,分别为Git Gui Here,Git Bash Here,这里我们选择Git Bash Here,进入如下界面,Test_Bluetooth即为我的项目名。

6.接下来输入如下代码(关键步骤),把github上面的仓库克隆到本地

git clone https://github.com/CKTim/BlueTooth.git(https://github.com/CKTim/BlueTooth.git替换成你之前复制的地址)

 7.这个步骤以后你的本地项目文件夹下面就会多出个文件夹,该文件夹名即为你github上面的项目名,如图我多出了个Test文件夹,我们把本地项目文件夹下的所有文件(除了新多出的那个文件夹不用),其余都复制到那个新多出的文件夹下,

8.接着继续输入命令 cd Test,进入Test文件夹

9.接下来依次输入以下代码即可完成其他剩余操作:

git add .        (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)

git commit  -m  "提交信息"  (注:“提交信息”里面换成你需要,如“first commit”)

git push -u origin master   (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)


二、第二种方法:


第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。

       你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。

       现在我通过命令行在桌面新建一个TEST文件夹(你也可以在其他任何地方创建这个文件夹),并且进入这个文件夹

                                          

        

       第二步:通过命令git init把这个文件夹变成Git可管理的仓库

       

       这时你会发现TEST里面多了个.git文件夹,它是Git用来跟踪和管理版本库的。如果你看不到,是因为它默认是隐藏文件,那你就需要设置一下让隐藏文件可见。

       

       第三步:这时候你就可以把你的项目粘贴到这个本地Git仓库里面(粘贴后你可以通过git status来查看你当前的状态),然后通过git add把项目添加到仓库(或git add .把该目录下的所有文件添加到仓库,注意点是用空格隔开的)。在这个过程中你其实可以一直使用git status来查看你当前的状态。

       

       

       这里提示你虽然把项目粘贴过来了,但还没有add到Git仓库上,然后我们通过git add .把刚才复制过来的项目全部添加到仓库上。

       

        第四步:用git commit把项目提交到仓库。

        

        -m后面引号里面是本次提交的注释内容,这个可以不写,但最好写上,不然会报错,详情自行Google。 好了,我们本地Git仓库这边的工作做完了,下面就到了连接远程仓库(也就是连接Github)

      由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下:

      第五步:创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件,有就跳到下一步,没有就通过下面命令创建

   $ ssh-keygen -t rsa -C "youremail@example.com"

       然后一路回车。这时你就会在用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件   

       

      第六步:登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。


      

        第七步:在Github上创建一个Git仓库。

     你可以直接点New repository来创建,比如我创建了一个TEST2的仓库(因为我里面已经有了一个test的仓库,所以不能再创建TEST仓库)。

   

        第八步:在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git仓库页面的提示,可以在本地TEST仓库的命令行输入:

$ git remote add origin https://github.com/guyibang/TEST2.git

        

        注意origin后面加的是你Github上创建好的仓库的地址。

        

      第九步:关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了,通过:

$ git push -u origin master

       由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:

$ git push origin master

        上传项目的过程可能需要等一段时间,完成之后是这样的:

        

        这时候你再重新刷新你的Github页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了:

      

        至此就完成了将本地项目上传到Github的整个过程。

      另外,这里有个坑需要注意一下,就是在上面第七步创建远程仓库的时候,如果你勾选了Initialize this repository with a README(就是创建仓库的时候自动给你创建一个README文件),那么到了第九步你将本地仓库内容推送到远程仓库的时候就会报一个failed to push some refs to https://github.com/guyibang/TEST2.git的错。

      

      这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并以下:

$ git pull --rebase origin master

       

       这时你再push就能成功了。


     总结:其实只需要进行下面几步就能把本地项目上传到Github

     1、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库;

     2、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;

     3、再通过git commit -m "注释内容"把项目提交到仓库;

     4、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remote add origin https://github.com/guyibang/TEST2.git将本地仓库和远程仓库进行关联;

     5、最后通过git push -u origin master把本地仓库的项目推送到远程仓库(也就是Github)上;(若新建远程仓库的时候自动创建了README文件会报错,解决办法看上面)。

三、Git命令

查看、添加、提交、删除、找回,重置修改文件

    git help <command> # 显示command的help
     
    git show # 显示某次提交的内容 git show $id
     
    git co -- <file> # 抛弃工作区修改
     
    git co . # 抛弃工作区修改
     
    git add <file> # 将工作文件修改提交到本地暂存区
     
    git add . # 将所有修改过的工作文件提交暂存区
     
    git rm <file> # 从版本库中删除文件
     
    git rm <file> --cached # 从版本库中删除文件,但不删除文件
     
    git reset <file> # 从暂存区恢复到工作文件
     
    git reset -- . # 从暂存区恢复到工作文件
     
    git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
     
    git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"
     
    git ci --amend # 修改最后一次提交记录
     
    git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
     
    git revert HEAD # 恢复最后一次提交的状态


查看文件diff

    git help <command> # 显示command的help
     
    git show # 显示某次提交的内容 git show $id
     
    git co -- <file> # 抛弃工作区修改
     
    git co . # 抛弃工作区修改
     
    git add <file> # 将工作文件修改提交到本地暂存区
     
    git add . # 将所有修改过的工作文件提交暂存区
     
    git rm <file> # 从版本库中删除文件
     
    git rm <file> --cached # 从版本库中删除文件,但不删除文件
     
    git reset <file> # 从暂存区恢复到工作文件
     
    git reset -- . # 从暂存区恢复到工作文件
     
    git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
     
    git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"
     
    git ci --amend # 修改最后一次提交记录
     
    git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
     
    git revert HEAD # 恢复最后一次提交的状态
     

 

查看提交记录

    git log git log <file> # 查看该文件每次提交记录
     
    git log -p <file> # 查看每次详细修改内容的diff
     
    git log -p -2 # 查看最近两次详细修改内容的diff
     
    git log --stat #查看提交统计信息
     


tig

Mac上可以使用tig代替diff和log,brew install tig


Git 本地分支管理
查看、切换、创建和删除分支

    git br -r # 查看远程分支
     
    git br <new_branch> # 创建新的分支
     
    git br -v # 查看各个分支最后提交信息
     
    git br --merged # 查看已经被合并到当前分支的分支
     
    git br --no-merged # 查看尚未被合并到当前分支的分支
     
    git co <branch> # 切换到某个分支
     
    git co -b <new_branch> # 创建新的分支,并且切换过去
     
    git co -b <new_branch> <branch> # 基于branch创建新的new_branch
     
    git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
     
    git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
     
    git br -d <branch> # 删除某个分支
     
    git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
     


 分支合并和reba

    git merge <branch> # 将branch分支合并到当前分支
     
    git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
     
    git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
     


 Git补丁管理(方便在多台机器上开发同步时用)

    git merge <branch> # 将branch分支合并到当前分支
     
    git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
     
    git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
     

 

 Git暂存管

    git stash # 暂存
     
    git stash list # 列所有stash
     
    git stash apply # 恢复暂存的内容
     
    git stash drop # 删除暂存区
     
    Git远程分支管理
     
    git pull # 抓取远程仓库所有分支更新并合并到本地
     
    git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
     
    git fetch origin # 抓取远程仓库更新
     
    git merge origin/master # 将远程主分支合并到本地当前分支
     
    git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
     
    git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
     

 

git push # push所有分支

    git push origin master # 将本地主分支推到远程主分支
     
    git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
     
    git push origin <local_branch> # 创建远程分支, origin是远程仓库名
     
    git push origin <local_branch>:<remote_branch> # 创建远程分支
     
    git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支
     

 

Git远程仓库管

    git remote -v # 查看远程服务器地址和仓库名称
     
    git remote show origin # 查看远程服务器仓库状态
     
    git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
     
    git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库
     

 

创建远程仓库

    git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库
     
    scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
     
    mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库
     
    git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址
     
    git push -u origin master # 客户端首次提交
     
    git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
     
    git remote set-head origin master # 设置远程仓库的HEAD指向master分支
     

 

也可以命令设置跟踪远程库和本地库

    git branch --set-upstream master origin/master
     
    git branch --set-upstream develop origin/develop
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET中栈和堆的比较1

原文出处&#xff1a; http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx 尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection)&#xff0c;但是我们还是应该了解它们&#xff0c;以优化我们的…

前端学习(1):HTML和CSS导学

最近为什么捡起前端&#xff0c;主要工作太忙&#xff0c;有时间就会抓一下后端&#xff0c;前端是我以前啃得比较多的 再来一次呢&#xff0c;工作在忙也不能停止学习勒 第一部分 第二部分 第三部分 第四部分 如何学习

Spring Boot----Dubbo原理分析

环境&#xff1a;需要创建一个dubbo.xml 通过ImportResource()导入xml&#xff1a; 1、首先spring启动解析配置文件的每一个标签的总接口是 org.springframework.beans.factory.xml.BeanDefinitionParser 2、DubboBeanDefinitionParser是它的一个实现类&#xff0c;通过调用par…

前端学习(2):什么是html和css

什么是HTML&#xff1f; W3C&#xff1a;万维网联盟&#xff0c;是目前web技术领域最具权威和影响力的标准机构&#xff0c;目前为止&#xff0c;W3C已发布了200多项影响深远的web技术标准及实施指南。 Hypertext markup language:超文本标记语言&#xff0c;该语言书写的代码通…

基于小程序·云开发构建高考查分小程序丨实战

2019高考报名人数达到了 1031 万的新高&#xff0c;作为一名三年前参考高考的准程序猿&#xff0c;赶在高考前&#xff0c;加班加点从零开始做了一款高考查分小程序&#xff0c;算是一名老学长送给学弟学妹们的高考礼。上线仅 1 个月&#xff0c;用户数就突破了 1k&#xff0c;…

前端学习(3):vs code编辑器

下载地址 https://code.visualstudio.com 下载安装教程 变成中文 在编辑器中运行我们的网页 open in browser view in browser 选中文件----首选项----设置 常用快捷键

QuickPart应用系列

在上一篇解决方案包部署与收回篇章中&#xff0c;我只是稍微提了下QuickPart.也许刚接触这块内容的朋友&#xff0c;可能还不是很清楚&#xff0c;QuickPart具体的功能能实现什么。首先要告诉你的是QuickPart的人性化之处&#xff0c;那就是给开发人员开发webpart提供更简洁的方…

前端学习(4):chome浏览器

一、认识浏览器 浏览器是网页显示、运行的平台&#xff0c;常用的浏览器有IE、火狐&#xff08;Firefox&#xff09;、谷歌&#xff08;Chrome&#xff09;、Safari和Opera等。我们平时称为五大浏览器。IE最新版为Edge。 常用浏览器 二、浏览器市场份额 可以通过百度的统计网…

实战 IE8 开发人员工具

今天整理我收藏的漫画的时候发现 风云3 少了两集&#xff08;486、487&#xff09;&#xff0c;这对于收藏者来说基本是不可忍受的&#xff1b; 从风云一到三&#xff0c;应该一集也不能少的&#xff1b; 决定上网去找找&#xff0c;不过溜达一圈常去的分享论坛&#xff0c;由于…

前端学习(6):javascript简介

我们需要思考以下六个问题&#xff1a; 1、javaScript是什么&#xff1f; 2、javaScript的用途是什么&#xff1f; 3、javaScript和ECMAScript的关系是什么&#xff1f; 4、javaScript由哪几部分组成&#xff1f; 5、javaScript的执行原理是怎样的&#xff1f; 6、在页面…

前端学习(7):web的三大技术

HTML(5) 是一门标记型语言&#xff0c;主要由一些具备特殊含义的标签构成&#xff08;建筑物结构&#xff09; 所谓HTML是“超文本标记语言”的英文缩写。我们上网所看到网页&#xff0c;多数都是由HTML写成的。“超文本”是指页面内可以包含图片、链接&#xff0c;甚至音乐、…

scala的foreach和for

一句印象深刻的话&#xff0c;Alan Kay&#xff08;Smalltalk发明者&#xff09;说得一句话&#xff1a;“I’m not against types, but I dont know of any typesystems that arent a complete pain, so I still like dynamic typing”。 并不是静态类型不好&#xff0c;只是静…

前端学习(8):HTML的基本属性和结构

一、HTML文档结构 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>css样式优先级</title> </head> <body> </body> </html> <!DOCTYPE html>声明为HTML5文…

借助云开发轻松实现后台数据批量导出丨实战

小程序导出数据到excel表&#xff0c;借助云开发后台实现excel数据的保存 我们在开发小程序的过程中&#xff0c;可能会有这样的需求&#xff1a;如何将云数据库里的数据批量导出到excel表里&#xff1f; 这个需求可以用强大的云开发轻松实现&#xff01; 这里需要用到云函数&a…

Storm的ack机制在项目应用中的坑

正在学习storm的大兄弟们&#xff0c;我又来传道授业解惑了&#xff0c;是不是觉得自己会用ack了。好吧&#xff0c;那就让我开始啪啪打你们脸吧。 先说一下ACK机制&#xff1a; 为了保证数据能正确的被处理, 对于spout产生的每一个tuple, storm都会进行跟踪。 这里面涉及到ac…

云开发数据库VS传统数据库丨云开发101

云开发数据库与传统数据库的不同 在小程序云开发中&#xff0c;最核心的便是三大组件&#xff1a;数据库、云存储和云函数&#xff0c;从今天开始&#xff0c;我们将开始隔日更的专栏文章&#xff0c;云开发101&#xff0c;在第一周&#xff0c;我们将从最最核心的数据库开始说…

前端学习(10):HTML语义化

我理解的HTML语义化 经过查看别人博文中的一些描述&#xff0c;我将HTML的语义化总结为&#xff1a; 用最恰当的标签来标记内容。 该如何理解呢&#xff1f;比如需要加入一个标题&#xff0c;这个标题的字体比正文的要大写&#xff0c;还要加粗。能够实现这种效果的方法有很多…

博客中gitalk最新评论的获取 github api使用

博客中&#xff0c;对于网友的评论以及每篇文章的评论数还是很重要的。但是基于静态的页面想要存储动态的评论数据是比较难的&#xff0c;一般博客主题中都内置了评论插件&#xff0c;但是博客主题中对于最新评论的支持显示还是很少的&#xff0c;至少目前我是没怎么发现。博客…

前端学习(11):标题和段落

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>标题和段落</title> </head> <body><h1>我是歌谣</h1><h2>我是歌谣</h2><h3>我是歌谣</h3>&l…

Kafka文件存储机制

Kafka是什么 Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、分区的、多副本的、多订阅者&#xff0c;基于zookeeper协调的分布式日志系统(也可以当做MQ系统)&#xff0c;常见可以用于web/nginx日志、访问日志&#xff0c;消息服务等等&#xff0c;Linkedin于2010年贡…