【不遮遮掩掩】Github上传本地代码以及常见问题解决方案

2019.20.18更新:

把完整命令打一遍吧,不然看完太累了不是

//初始化文件夹
git init
//初始化目录,把基本文件下载下来,如ignore文件
git pull --rebase origin master
//把当前目录下所有文件上传
git add .
//添加注释
git commit -m "test"
//添加远程库
git remote add origin https://github.com/misland/Fuji.git
//拉取最新文件
git pull origin master
//向git推送文件
git push -u origin master

2018.9.30更新

一直以来有个问题没有解决,那就是首次上传时总是出问题,提示版本不对,刚开始都是用笨方法强制提交,现在用的比较多了感觉不是那么回事,于是今天就以搜了一下,还真找到了解决办法,这个大神写的,其实想想也是,在git上建好仓库后有ignore和read.md文件,但是在本地init后并没有这两个文件,首次上传时还不知道要忽略哪些文件呢,也就会报版本不对的问题,解决办法就是大神说的,执行以下命令即可:

git pull --rebase origin master

执行完后本地就有ignore文件和license文件了,再次执行提交命令就不会再报错了,感谢这些无私分享的大神~

先絮叨几句,本来没打算写这篇文章的,最近想把自己学习安卓时写的代码上传到github,以备后面忘记时再回来复习,所以找github相关的文章想学下如何玩这东西,正好前天看到一个哥们新发了一篇文章讲如何上传代码的,就想认真对照着的他写的自己也实践一下,结果文章里面关键部分的截图各种涂抹,含糊其辞,根本没法学习。又去网上搜了其它几篇相关文章,最后成功了,但是在过程中也是几经波折,遇到了两个问题费了好久才解决,并且还是在不同文章里面找到的,所以想汇总起来方便想学习的同学学习。

  ok,言归正传,要想将代码上传到github首先得在git上建个自己的库吧,不然你上传到哪里?建库什么难的,只有一个问题,license请设置成公开的,如下图

【不遮遮掩掩】Github上传本地代码以及常见问题解决方案

至于为什么,后面的问题里面会有解释,先不要急。另外就是请把你的库的地址记下来,进入你建好的库,右上角会有按钮Clone or download的,点它!然后在出来的框里点击复制按钮复制地址,如下图

【不遮遮掩掩】Github上传本地代码以及常见问题解决方案

  接下来下载github客户端(地址),安装~

安装完毕后关闭,然后进入你的代码所在的文件夹,右键,选择Git Bash Here后弹出git命令行对话框,如下图

【不遮遮掩掩】Github上传本地代码以及常见问题解决方案

被涂抹掉的部分是我的电脑名,不用在意。

  到这里你有没有一个问题?我要往github上传东西,现在github连我是谁都不知道,它怎么知道我要往哪上传呢?你说的很对,它要是知道就见鬼了。所以咱们要告诉github咱们的用户名和邮箱,在命令行里分别输入以下命令并回车,分别输入并回车,分别输入并回车,重要的事情说三遍。

git config --global user.name "wtf"
git config --global user.email "wtf@wtf.com"

以上两行一看应该就明白了,全局设置用户名和邮箱的,因为可能并不是仅仅在这一个文件夹里上传代码,以后或许还会上传其它代码呢。一般注册github应该都是用邮箱注册的吧,user.name就是你在github的昵称了,注册时都会填的,千万别告诉我你没有哦。这样设置完github才知道你是哪位大神。

  好了,准备工作做好了,弄好正式上传代码吧,依然是命令行对话框内,依次输入以下命令并回车

第一步:git init

这句话是初始化,相当于通知git我要在这里做代码处理工作啦,你做好准备吧。

第二步:git add .

注意后面有个点呀,这句话就是把当前文件夹下的所有文件都上传到github,当然你也可以只上传一个文件,在后面继续输入要上传的文件的名称就行了。比如:git add "wtf.txt"

第三步:git commit -m "test"

将添加的文件提交到库,这里并不是真的要提交,而是类似于数据库里面的事务一样,先存着,最后一次性执行,因为这时github知道你要上传到哪个库吗?后面引号里面的是注释,不用多说了吧。

第四步:git remote add origin https://github.com/misland/Fuji.git

 到这里知道为什么建好库后要把地址保存下来了吧,这句话的作用是将本地代码与咱们前面建的库联系起来,到这里github才知道你是谁,要往哪上传代码。

 第五步:git pull origin master

对不起,这句话什么意思我也不知道- -

第六步:git push -u origin master

这句话相当于数据库里面事务的提交方法,将所有的更改上传到服务器,这里是把所有的文件上传到github上。如果是第一次上传代码会弹出一个框让你输入github的用户名和密码验证身份,想想也是,要是谁都能往你的库里上传代码不是全乱套了?不得不吐槽下看着真的好像是让输windows的用户名和密码啊(谁让你的英语那么菜的?)。如果成功执行,你再进去github网站,打开你刚才建的库,就会发现里面已经有文件了,到这里就算大功告成了!

 

  当然,你或许会遇到问题,先别急,看看下面的问题是否包含了你遇到的问题。

问题和解决方案

问题一:Couldn't find remote ref master

如果前面四步都没什么问题,到了第五步遇到这个问题了,那么还记得建库时让你设置成公开的吗,如果不是公开的就会提示这个问题了,显然你是无法继续执行下面的步骤的。改成公开的就可以了。

问题二:Please enter a commit message to explain why this merge is necessary.

 【不遮遮掩掩】Github上传本地代码以及常见问题解决方案

我第一次遇到这个东西时是懵逼了,不知道如何操作,虽然我能看懂下面的话的意思,是让输入提交代码的注释。

按键盘上的i键,进入输入模式,第一行的文本就是提交代码的注释,改成你想加的注释,当然也可以不改。改完后按键盘上的esc键,退出输入模式,输入":wq"回车,搞定!这个东西困了我好久有木有!!!【不遮遮掩掩】Github上传本地代码以及常见问题解决方案

如何提交修改的代码

依然是进入到代码所在文件夹,依然是右键选择Git Bash Here,若你不想麻烦一个个的上传文件,从上面第二步开始执行就好了,如果只想提交一个文件,那就从第三步开始,只需在这一步标注标明文件名就可。

如:git commit -m "新加一个文件" "bobo.txt"

好了,到这里本篇就结束了,目前只是学会了上传代码和修改代码,分支合并这些功能还没用到,所以目前还没学,如果到时遇到问题就再来探讨。如果在实践的过程中遇到问题也可在评论里说下一起来解决。最后祝每位爱学习的同学都能顺利学到想要的东西,出任CTO,迎娶白富美,走向人生巅峰~