Git的使用--如何将本地项目上传到Github(三种简单、方便的方法)(二)(详解)

news2024/11/17 8:34:05

一、第一种方法:

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

https://github.com/

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

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

2.登陆后,进入Github首页,点击New repository新建一个项目

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

Repository name: 仓库名称(输入名字,最好不要使用中文)

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

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

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

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

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

4.创建成功以后,界面如下,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这两个文件,有就跳到下一步,没有就通过下面命令创建。

1、输入下边的命令

1

$ ssh-keygen -t rsa -C "youremail@example.com" 注意ssh-keygen之间没有空格

 2、然后回车,询问保存key的位置,默认是在括号里的路径下,你可以修改,也可以不做修改。如下图所示:

3、这里不修改,回车,提示已存在,是否覆盖。因为我这是第二次,所以有这个提示如下题所示:

4、输入Y,回车,提示输入密码,如下图所示:

5、为了不必要麻烦,还是不要设置密码,因为容易忘记,不输入密码,回车,如下图所示:

6、确认密码不输入,回车,如图所示:

 出现上图结果,表明创建key成功!

7、这时你就会在用户下的.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仓库的命令行输入:

1

$ 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客户端安装好

第二步:github注册好账号

第三步:本地电脑随便建立一个文件夹,如:github,进入此文件夹,在地址栏中输入cmd

第四步:点击->,进入docs命令窗口,输入git命令,出现如下图说明git安装成功。

第五步:回到之前的github界面,下面几个指令告诉你如何将代码上传

1

2

3

4

5

git init

git add README.md

git commit -m "first commit"

git remote add origin https://github.com/hongduhong/test.git

git push -u origin master

 

第六步:在上面创建的github文件中,放入要上传的代码,然后按照上面的指令开始操作,执行指令

1、git init      (建立本地仓库)

2、git add  *  (将代码添加到本地仓库,《*是添加全部代码,代码全部更新》)

3、git commit -m "first commit"  (提交到本地缓冲,《引号里说明提交了什么东西,说白了就是注释》)

4、git remote add origin https://github.com/hongduhong/test.git   (将本地仓库的代码提交远程github的仓库,《后面的地址就是之前创建github的远程仓库地址》)

5、git push -u origin master    (将远程仓库的代码 push到master分支上)

6、代码上传成功如下图所示:

四、Git命令

  1 查看、添加、提交、删除、找回,重置修改文件
  2 
  3 
  4 git help <command> # 显示command的help
  5 
  6 git show # 显示某次提交的内容 git show $id
  7 
  8 git co -- <file> # 抛弃工作区修改
  9 
 10 git co . # 抛弃工作区修改
 11 
 12 git add <file> # 将工作文件修改提交到本地暂存区
 13 
 14 git add . # 将所有修改过的工作文件提交暂存区
 15 
 16 git rm <file> # 从版本库中删除文件
 17 
 18 git rm <file> --cached # 从版本库中删除文件,但不删除文件
 19 
 20 git reset <file> # 从暂存区恢复到工作文件
 21 
 22 git reset -- . # 从暂存区恢复到工作文件
 23 
 24 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
 25 
 26 git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做                                    git ci -am "some comments"
 27 
 28 git ci --amend # 修改最后一次提交记录
 29 
 30 git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
 31 
 32 git revert HEAD # 恢复最后一次提交的状态
 33 
 34 查看文件diff
 35 
 36 
 37 git help <command> # 显示command的help
 38 
 39 git show # 显示某次提交的内容 git show $id
 40 
 41 git co -- <file> # 抛弃工作区修改
 42 
 43 git co . # 抛弃工作区修改
 44 
 45 git add <file> # 将工作文件修改提交到本地暂存区
 46 
 47 git add . # 将所有修改过的工作文件提交暂存区
 48 
 49 git rm <file> # 从版本库中删除文件
 50 
 51 git rm <file> --cached # 从版本库中删除文件,但不删除文件
 52 
 53 git reset <file> # 从暂存区恢复到工作文件
 54 
 55 git reset -- . # 从暂存区恢复到工作文件
 56 
 57 git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
 58 
 59 git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做                                    git ci -am "some comments"
 60 
 61 git ci --amend # 修改最后一次提交记录
 62 
 63 git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象
 64 
 65 git revert HEAD # 恢复最后一次提交的状态
 66 
 67 查看提交记录
 68 
 69 git log git log <file> # 查看该文件每次提交记录
 70 
 71 git log -p <file> # 查看每次详细修改内容的diff
 72 
 73 git log -p -2 # 查看最近两次详细修改内容的diff
 74 
 75 git log --stat #查看提交统计信息
 76 tig
 77 
 78 Mac上可以使用tig代替diff和log,brew install tig
 79 
 80 
 81 Git 本地分支管理
 82 查看、切换、创建和删除分支
 83 
 84 
 85 git br -r # 查看远程分支
 86 
 87 git br <new_branch> # 创建新的分支
 88 
 89 git br -v # 查看各个分支最后提交信息
 90 
 91 git br --merged # 查看已经被合并到当前分支的分支
 92 
 93 git br --no-merged # 查看尚未被合并到当前分支的分支
 94 
 95 git co <branch> # 切换到某个分支
 96 
 97 git co -b <new_branch> # 创建新的分支,并且切换过去
 98 
 99 git co -b <new_branch> <branch> # 基于branch创建新的new_branch
100 
101 git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
102 
103 git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支
104 
105 git br -d <branch> # 删除某个分支
106 
107 git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
108  分支合并和reba
109 git merge <branch> # 将branch分支合并到当前分支
110 
111 git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
112 
113 git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
114  Git补丁管理(方便在多台机器上开发同步时用)
115 
116 
117 git merge <branch> # 将branch分支合并到当前分支
118 
119 git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
120 
121 git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
122 
123  Git暂存管
124 git stash # 暂存
125 
126 git stash list # 列所有stash
127 
128 git stash apply # 恢复暂存的内容
129 
130 git stash drop # 删除暂存区
131 
132 Git远程分支管理
133 
134 git pull # 抓取远程仓库所有分支更新并合并到本地
135 
136 git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并
137 
138 git fetch origin # 抓取远程仓库更新
139 
140 git merge origin/master # 将远程主分支合并到本地当前分支
141 
142 git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支
143 
144 git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
145 
146 git push # push所有分支
147 
148 git push origin master # 将本地主分支推到远程主分支
149 
150 git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
151 
152 git push origin <local_branch> # 创建远程分支, origin是远程仓库名
153 
154 git push origin <local_branch>:<remote_branch> # 创建远程分支
155 
156 git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支
157 
158 Git远程仓库管
159 git remote -v # 查看远程服务器地址和仓库名称
160 
161 git remote show origin # 查看远程服务器仓库状态
162 
163 git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址
164 
165 git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库
166 
167 创建远程仓库
168 
169 git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库
170 
171 scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上
172 
173 mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库
174 
175 git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址
176 
177 git push -u origin master # 客户端首次提交
178 
179 git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track
180 
181 git remote set-head origin master # 设置远程仓库的HEAD指向master分支
182 
183 也可以命令设置跟踪远程库和本地库
184 
185 git branch --set-upstream master origin/master
186 
187 git branch --set-upstream develop origin/develop

 五、遇到问题和解决方案

1、出现如下图所示,说明你安装的本地git客户端的版本太低

解决方案:

a、点击鼠标右键,点击“Git Bash Here”,进入如图

b、输入命令 git update(git update-git-for-windows),将Git客户端更新到最新。

2、提交到远程仓库的时候,提示:fatal :remote origin already exists。  解决方案:删除远程仓库;输入命令:git remote rm origin

3、首次操作需要输入用户名和密码,就按提示输入用户名和密码即可

4、在docs命令窗口看到下边的提示:

$git config --global user.name "Jhon" 

$git config --global user.email Jhon@example.com"

解决方案:

按照上面的提示,输入

>git config --global user.name "这里是你github的用户名" 

>git config --global user.email 这里是你注册github的邮箱

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

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

相关文章

代码练习错误记录

更新数据库时报错 Exception in thread "main" java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near WHERE ID1 at line 1原因&#xff1…

Maven高级(一)--分模块设计与开发

一.Maven回顾 Maven是一款构建和管理java项目的工具。 如果我们需要开发一些中大型的项目&#xff0c;仅凭基础知识难以应付&#xff0c;所以我们接下来还需要学习Maven提供的一些高级功能&#xff0c;这些功能在中大型项目应用是非常多的。 Maven的高级内容包括&#xff1a;【…

vue3向对象中添加属性

使用场景&#xff1a;后端返回一个数组对象结构&#xff0c;会出现可能需要前端自己向对象中添加一个新的字段 在vue2中我们常常会遇到明明已经改变了数据&#xff0c;视图却没有实时更新这样的问题 这时vue2就提供了一个方法就是$set this.$set(this.userInfo, age, 12)但是在…

计算机组成原理综合实验设计:基于proteus的小型CPU的设计

基于proteus的小型CPU的设计 摘要 本文详细介绍了该小型CPU的设计模板及预估实现的功能&#xff0c;然后对模块的原理进行详实的概述。之后对项目设计进行了分析&#xff0c;从原理图和电路设计图方面进行了完整的呈现。在介绍完基本的设计框架后&#xff0c;本文对项目中的每…

Linux系统编程:文件描述符和重定向

目录 一. 文件描述符 1.1 什么是文件描述符 1.2 OS如何通过文件描述符找到指定文件 1.3 文件描述符的分配规则 二. 重定向 2.1 重定向的现象和底层原理 2.2 通过系统接口dup2实现重定向 三. 总结 一. 文件描述符 1.1 什么是文件描述符 Liunx操作系统为用户提供了四…

微积分习题课

目录 例题1&#xff1a; 例题2&#xff1a; 解法2&#xff1a; 例题3&#xff1a; 例题4&#xff1a; 方法2&#xff1a; 例题5&#xff1a; 例题6&#xff1a; 例题7&#xff1a; 例题8&#xff1a; 例题9&#xff1a; ​编辑 例题1&#xff1a; 例题2&#xff1a; 解法2&…

二元函数的泰勒展开

定理如下&#xff1a; 证明如下&#xff1a; 注意&#xff1a; 证明的核心要点是转化为关于新的变量的一元函数。

【Linux】进程间通信 -- 匿名管道 | pipe系统调用

什么是通信&#xff1f;为什么要有通信&#xff1f;如何实现&#xff1f;管道通信匿名管道 pipe系统调用读写特征管道的特征: 什么是通信&#xff1f; 进程具有独立性&#xff0c;我们现在的进程间需要通信&#xff0c;那么这个成本一定不低 数据传输&#xff1a;一个进程需要将…

@FeignClient源码浅析

Spring如何识别FeignClient 从EnableFeignClients 出发&#xff0c;寻找Spring如何识别FeignClient 从源码中查看到Import(FeignClientsRegistrar.class) Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) Documented Import(FeignClientsRegistrar.class) pub…

PyQt结合OpenCV实现实时人流量统计

1. 废话篇&#xff08;可跳过&#xff09; 之前学的基本都是Web端的技术。前两天的面试&#xff0c;让我深入的去学习一下 Qt 技术&#xff0c;了解完概念之后&#xff0c;才知道我之前接触的类 TkInter 技术&#xff0c;有点安卓开发的味道。。。 2. 人流量统计效果图 3. 业务…

L1-027 出租(Python实现) 测试点全过

题目 下面是新浪微博上曾经很火的一张图&#xff1a; 一时间网上一片求救声&#xff0c;急问这个怎么破。其实这段代码很简单&#xff0c;index数组就是arr数组的下标&#xff0c;index[0]2 对应 arr[2]1&#xff0c;index[1]0 对应 arr[0]8&#xff0c;index[2]3 对应 arr[…

Php Jenkins phpunit配置

目录 作用 前提 安装 安装xUnit插件 win10重启Jenkins 全局环境设置 创建项目配置 描述 源码管理 构建触发器 构建步骤 插件安装 工作空间 php代码phpunit文件示例 项目根目录配置 phpunit.xml Protect/Tests/test_start.php composer.json 作用 jenkins 自动…

【docker部署安装ApiSix】

docker安装ApiSi 常见问题-提前查阅 1-端口被占用 确保所需的所有端口&#xff08;默认的 9080/9091/9443/2379/9000&#xff09;未被其他系统/进程使用 #查询端口占用情况 netstat -antp |grep 9443# 如果端口冲突可尝试修改apisix的端口配置&#xff0c; # 但不建议&#x…

0305kali linux配置运行-docker-macos aarm64

文章目录 1 下载运行2 配置2.1 配置系统环境2.2 配置SSH服务2.3 安装工具 3 问题总结结语 1 下载运行 拉取kali linux镜像 docker pull kalilinux/kali-rolling该镜像为“纯净版”系统&#xff0c;没有任何工具&#xff0c;体积小。下面当我们运行起来之后&#xff0c;到容器中…

GlusterFs 分布式复制卷(Distributed-Replicate)性能测试

目录 fio工具参数解释 Glusterfs 和NFS 性能测试 顺序写&#xff1a; 随机写&#xff1a; 顺序读&#xff1a; 随机读&#xff1a; 随机读写&#xff1a; 参数说明&#xff1a; 测试结论&#xff1a; 与NFS对比 压测对比结果 NFS和GlusterFs的优缺点 NFS的优点 NFS…

基于卷积神经网络VGG的猫狗识别

&#xff01;有需要本项目的实验源码的可以私信博主&#xff01; 摘要&#xff1a;随着大数据时代的到来&#xff0c;深度学习、数据挖掘、图像处理等已经成为了一个热门研究方向。深度学习是一个复杂的机器学习算法&#xff0c;在语音和图像识别方面取得的效果&#xff0c;远远…

综合能源系统(1)——综合能源系统基本定义与内涵

综合能源系统关键技术与典型案例  何泽家&#xff0c;李德智主编 综合能源系统基本定义 综合能源系统(Integrated Energy System&#xff0c;IES)的概念最早产生于热电联产领域&#xff0c;侧重于热电系统的协同优化&#xff0c;而后逐渐扩展丰富&#xff0c;涉及电、热、冷…

DEVICENET转MODBUS-TCP网关应用案例

远创智控YC-DNT-TCP连接到DEVICENET总线中做为从站使用&#xff0c;连接到 MODBUS-TCP 总线中做为主站或从站使用。是自主研发的一款 DEVICENET 从站功能的通讯网关。 YC-DNT-TCP常用拓展图 技术指标 网关的 MODBUS 接口可通过拨码选择做为主站&#xff08;客户端&#xff09…

QNAP威联通NAS搭建SFTP服务,并内网穿透实现公网远程访问

文章目录 前言1. 威联通NAS启用SFTP2. 测试局域网访问3. 内网穿透3.1 威联通安装cpolar内网穿透3.2 创建隧道3.3 测试公网远程访问 4. 配置固定公网TCP端口地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址4.3 测试使用固定TCP端口地址远程连接威联通SFTP 转载自远程内…

【算法集训之线性表篇】Day 05

文章目录 题目思路代码实现效果 题目 将两个有序顺序表合并为一个有序顺序表&#xff0c;函数结果返回值为顺序表。 思路 我们可以利用二路归并排序算法中的Merge函数思路&#xff0c;设置两个指针i&#xff0c;j&#xff0c;分别记录在顺序表a和b中的访问位置&#xff0c;再…