文章目录
0、总览
总结:其实只需要进行下面几步就能把本地项目上传到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
文件会报错,解决办法看第10步)。
1、新建本地版本库
使用命令行mkdir test
创建;
或者直接windows下创建。
2、初始化本地仓库
cd test
git init
此时test
里面多了个.git
文件夹,它是Git
用来跟踪和管理版本库的。如果看不到,是因为它默认是隐藏文件,需要设置一下让隐藏文件可见。
3、添加源码到工作区(working directory)
这时候可以把项目粘贴到这个本地Git仓库里面(粘贴后可以通过git status来查看你当前的状态),然后通过git add
把项目添加到仓库(或git add .
把该目录下的所有文件添加到仓库,注意点是用空格隔开的)。在这个过程中你其实可以一直使用git status
来查看你当前的状态。
这里提示虽然把项目粘贴过来了,但还没有add
到Git
仓库上,然后我们通过git add .
把刚才复制过来的项目全部添加到仓库上。
4、提交源码到本地仓库
用git commit
把项目提交到仓库。
-m
后面引号里面是本次提交的注释内容,这个可以不写,但最好写上,不然会报错。
本地Git仓库这边的工作做完了,下面就到了连接远程仓库(也就是连接Github),由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下:
5、创建SSH KEY
先看一下C盘用户目录下有没有.ssh
目录,有的话看下里面有没有id_rsa
和id_rsa.pub
这两个文件,有就跳到下一步,没有就通过下面命令创建:
$ ssh-keygen -t rsa -C "youremail@example.com"
然后一路回车。这时就会在用户下的.ssh
目录里找到id_rsa
和id_rsa.pub
这两个文件:
6、github中关联ssh
登录Github
,找到右上角的图标,打开点进里面的Settings
,再选中里面的SSH and GPG KEYS
,点击右上角的New SSH key
,然后Title
里面随便填,再把刚才id_rsa.pub
里面的内容复制到Title
下面的Key
内容框里面,最后点击Add SSH key
,这样就完成了SSH Key
的加密。具体步骤也可看下面:
7、github中创建远程仓库
直接点New repository
来创建:
8、关联本地仓库和远程仓库
在Github
上创建好Git
仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git
仓库页面的提示,可以在本地test
仓库的命令行输入:
$ git remote add origin https://github.com/guyibang/TEST2.git
注意origin
后面加的是Github
上创建好的仓库的地址。
9、推送源码到远程仓库
git push -u origin master
由于新建的远程仓库是空的,所以要加上-u
这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:
git push origin master
上传项目的过程可能需要等一段时间,完成之后是这样的:
重新刷新Github
页面进入刚才新建的那个仓库里面就会发现项目已经成功上传了:
至此就完成了将本地项目上传到Github
的整个过程。
10、其他
另外,这里有个坑需要注意一下,就是在上面第七步创建远程仓库的时候,如果你勾选了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
就能成功了。