Windows下使用Git Bash上传项目到GitHub
说明:
1、本章节不讲如何安装,不讲用户信息配置。
2、主要针对初学者,为了便于理解,尽量按我自己的分析,写得易于理解一些。本文分为两块,一块为第一次上传项目,和已上传过的项目如何下载,并如何再次提交。
3、本文主要重点在通过命令行的方式,环境在Windows 7,不涉及在Linux如何去操作的命令,也不会涉及到客户端的操作。希望这样不会被分散注意力。
4、之前有参考过一些博客,但大家碰到的问题不尽相同,只是希望能帮上忙吧。
简而言之,没有分支的话,在GitHub上先建个仓库后,以下命令足够:
git clone https://github.com/sujiujiu/mybbs.git
git add .
git commit -m "注释"
git push
命令解释详情如下:
第一部分 初次上传
1、先在GitHub网页端创建一个项目(仓库),包括README.md。这个不做多说,很简单,但是一定要建。因为本地没有的话,一会可能会报如下的错误:
2、随便在一个盘新建一个文件夹,比如我在E盘,文件夹名字叫GitHub。
3、我们打开Git Bash,cd到这个目录下。比如我的,在E盘,先cd到E盘下,cd e:
,再进去,cd github
,不区分大小写。
4、将网页端已建好的项目下载下来,通过git clone 网址,在你GitHub新建的项目里就有。
我的是https://github.com/sujiujiu/mybbs.git
,
所以就是
git clone https://github.com/sujiujiu/mybbs.git
。这时会自动生成你网页端已有的项目中的文件,如README.md
、.git
文件夹、.gitignore
文件。如果你没有勾选最后一个,就没有。文件夹忘了截图,反正就是这么三个文件就对了。
5、当你clone下来之后,是一个目录,要cd到这个目录里面去,否则将报如下错:
6、初始化一个仓库,(一般情况下,clone下来都会有),如果是右键进入的Git Bash,可省略:
git init
最后一行的意思就是在这个目录下创建并初始化了一个git的仓库。
7、将修改添加到暂存区:
git add .
提交所有的文件,add和后面的小点是有空格的,然后可能会出来很长的信息,也可能不会出现任何信息(说明没有任何问题)。
8、添加注释,
git commit -m "message"
message就是你这次提交的内容,或者修改了什么,不过是个注释,让人能看懂而已。
如果是第一次上传项目,则所有的文件显示为红色,如图:
9、最后执行
git push -u origin master
如果没有分支,也可以省略push后的命令:
git push
待你看到100%的字眼就知道弄完了,如图所示:
10、如果你是通过远程的方式,那么在push前使用:
git remote add origin https://github.com/sujiujiu/mybbs.git
这里是我的项目地址,你改成你的就好了。这个命令的作用在于你可以使用它将远程的仓库与本地的项目建立连接,但一定要在push命令之前 。
如果提示你已经存在就算了,我的就是,不用管,直接下一步吧,或者你也可以先执行,然后再执行下面这条命令:
git remote rm origin
git remote rm
命令用于删除远程主机。这条命令等于就是重新连接。
我之前提示所有已更新,可我到网页端看并没有成功,后来重新弄了一遍。
如果这一步提示如开头error:failed to push som refs to……
之类的错误,那是因为你本地没有README.md文件,你可以尝试新建一个,再执行
git pull origin master
之后再重复push的命令。但如果仍不成功,建议重来,这就是为什么我们需要第三步的原因。我们需要下下来然后提交,而不是自己在本地创建。如果你有多个版本,那么就可以再建一个目录。
如果不小心上传错了分支,先pull下那个分支,或重新remote那个分支,
git remote add origin https://github.com/sujiujiu/mybbs.git
git rm -r --cached
git commit -m "remove xx"
git push -u origin master
第二部分 更改完提交
将文件下载下来,并修改完再上传。如果代码在你当前使用的机子上没有,需要下下来,就这样:
1、同上第二步,切换到你所想要放文件的文件夹。
2、如上第三步,使用命令克隆下来。
git clone https://github.com/sujiujiu/mybbs.git
。
如果是自己的项目,这里直接修改完本地,然后
git add .
git commit -m "注释"
git push
3、而如果是公司的,通过远程的方式获取,则有两种方法:
第一种:
1、获取远程更新
git fetch origin
2、把更新的内容与网页端的合并。
git merge origin/master
第二种:使用pull(pull=fetch+merge)
git pull origin master
而如果在本地已经有了,那么你可以先用这条命令查看哪些文件被改动了:
git status
然后使用命令提交你所改动的文件
git add +你改动的文件
再添加注释
git commit -m "message"
最后提交都用这个
git push origin master
我又碰到了一个问题,就是我上传完之后纳闷的发现,我明明是Python的项目,它却给我分类到了javascript。
就去Google了一下,原因是因为Github是根据项目里文件数量最多的文件类型来当做项目类型,那没办法,Python代码本来就少,前端项目数目自然会超过Python的代码。
普遍有两种解决办法:
一种是将项目中的静态文件放到别处用连接导入即可,这种使用的不多。
另一种使用的较多,就是通过使用
.gitattributes
配置文件,将静态文件如.js、css、html当作你想要的那门语言来统计。
用法基本就是这样:
*.js linguist-language=Python
因为考虑到既然我的是被替换成了JavaScript,只要改js部分就可以了,css和HTML可能不算特别多,所以只改了js,你也可以全都改了,写法一样,星号就是所有的js文件我让它强制性被当成Python处理。
因为在Windows下并不好创建这个文件,你想想它的格式就知道了,按Windows的命名法它没有名字,只有后缀名,我看很多都是用命令行创建,比如touch/echo什么的,但其实GitHub官网上就可以创建文件啊。反正都上传上去了,为何我们还要去本地改了再提交呢?
然后输入文件名和文件内容就可以了。
参考链接:
1、http://www.cnblogs.com/ruofengzhishang/p/3842587.html这篇其实已经讲的蛮清楚了,是我自己遇到了一些别的问题,所以一直在重复。
2、http://blog.csdn.net/kingzone_2008/article/details/8533868这个命令讲的很详细,但没有init,我开始照着做差点忘了,而上面那个没有add,纯当我是结合了一下吧。
3、http://www.ruanyifeng.com/blog/2014/06/git_remote.html这个是git具体每条命令的作用,我其实也是在写博客的时候想要知道那些命令的写法及作用才搜到的,之前也没用到,不过挺有用的。
4、http://dyhdyh.com/archives/161.html修改Github上仓库的项目语言的解决办法
本文来自博客园,作者:苏酒酒,转载请注明原文链接:https://www.cnblogs.com/sujiujiu/p/15370032.html