目录
前言:一直想通过github分享经验和代码,但上传管理的时候经常会踩坑,试过github for windows和pycharm上传的方法,虽然可视化操作很直观,但是各种坑,很麻烦,最后还是坚定决心采用git来管理github代码,上手之后美滋滋。做个笔记以免忘记,同时分享给同样踩坑的人。
一、git上传代码至github
官网下载链接:https://git-scm.com/
选择对应的版本,然后直接默认安装就行。下载好之后,搜索一下,发现有三个git相关的应用程序Git Bash、Git GUI和Git CMD。我们要用的是Git Bash,这是git的命令行窗口,点击它。
→
① 创建本地版本库(即文件夹)
然后我们需要新建一个文件夹,用来存放要上传的代码文件,创建路径可以自行选择,我这里选择D:\github-projects,在该目录下创建test文件夹,然后进入这个文件夹中。
② 将文件夹变成git可管理的仓库
这时test文件夹里就多了个.git文件夹,它是Git用来跟踪和管理版本库的,因为它默认是隐藏文件,如果看不到的话就在“查看”中将“隐藏的项目”前面勾选,就可以看到了。
之后把要上传到gitHub的文件,全部复制到test这个目录下。比如我将“test1.py test2.py test3.txt”这三个文件复制到该目录下。
然后通过“git add .”把文件添加到缓存区(注意".",前面是有空格的,"."代表这个test这个文件夹目录下的全部文件都要提交。)
(也可以通过“git add 文件名“,来提交指定的文件,如“git add test3.txt”
)
然后通过git status命令,查看当前的状态:
可以看到上面三个文件都提交上去了
然后,使用命令git commit -m "XXX" ,把文件提交到本地仓库,XXX代表你要写的注释
③ 连接远程仓库(就是连接github)
由于本地Git仓库和Github仓库之间的传输是通过SSH加密的,所以连接时需要设置一下。
创建SSH KEY:先看一下C盘用户(user)目录下有没有.ssh目录,有的话看下里面有没有id_rsa和id_rsa.pub这两个文件。有的话就跳到下一步,没有就通过下面命令创建:
$ ssh-keygen -t rsa -C "youremail@example.com"
然后一直回车,就会在.ssh目录里找到id_rsa和id_rsa.pub这两个文件。
④ 添加SSH key
登录Github,点击右上角的头像图标,然后点进Settings里面
再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密。
⑤ 在Github上创建Git仓库
点New repository来创建一个仓库,按照图中指示创建
创建之后的效果为:
如果没有勾选这个的话
创建后的效果是这样的:
一般都会勾选比较好啦,后面处理会有些不一样
⑥ github的git仓库与本地仓库关联
回到之前的git bash命令行界面,在本地的test仓库中输入:
后面的网址是HTTPS或SSH地址,选哪个都行
⑦ 把本地库的所有内容传到github上
$ git push -u origin master
由于新建的git仓库是空的,所以要加上-u这个参数。然后进去GitHub test这个仓库刷新下就会有上传的文件了。
如果远程仓库不是空的,例如之前勾选了Initialize this repository with a README,那么上面的命令就会报错。这是由于新创建的仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并,再上传
$ git pull --rebase origin master
$ git push origin master
以上就完成了利用git将本地文件上传到Github的全过程。
二、总结和拓展
① 初次上传代码
用代码总结一下git将本地文件上传到Github的全过程:
# 在github上面创建仓库test(有README)
$ cd D:/github-projects
$ mkdir test
$ cd test
$ git init
# 复制文件到本地仓库test
$ git add .
$ git status
$ git commit -m "XXX"
$ git pull --rebase origin master
$ git push origin master
② 加多个文件
如果在使用过程中还需要增加多一个文件,采用以下操作:
$ cd D:/github-projects/test
$ git init
$ git add test4.txt
$ git status
$ git commit -m "adding"
$ git remote add origin https://github.com/yip522364642/test.git
$ git push -u origin master
③ 删除文件
删除文件,采用以下操作:
$ cd D:/github-projects/test
$ git init
$ git pull origin master
$ dir
$ git rm -r --cached test4.txt
$ git commit -m "del"
$ git push -u origin master
④ 大文件上传
上传大文件(超过100M),需要下载git LFS(https://git-lfs.github.com),默认安装就行,然后在某个本地仓库下进行操作:
$ cd d:/github-projects/test
$ git lfs install
$ git lfs track "big-file"
$ git add .gitattributes
$ git commit -m ".gitattributes file"
$ git push -u origin master
$ git add big-file
$ git commit -m "big-file"
$ git push
(提交大文件踩过很多次坑,一定要按照步骤慢慢来!!!)