其实 github 的帐号早就开通了,但是一直都没怎么上传代码,这次为了找工作,为了向他们展示一下我平时所写的代码,我打算把原本存放在桌面的所有的小项目都上传到github上。。。。。。
接下来我要记录一下上传代码到github的流程。(顺便提一下,我现在发现终端里使用命令行去执行操作是非常方便的事情。我爱上了命令行了啦,嘻嘻嘻。。。)
第一步:要安装git和配置。
如果是使用Mac做开发,有两种安装Git的方法。
方法一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
方法二就是安装Xcode,Xcode集成了Git,不过它还没有帮你安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点击“Install”就可以完成安装了。
Xcode可以从AppStore上直接下载安装。。
第二步:进入到本地项目根目录下,执行git命令。
cd desktop/Learning/小玩意儿
第三步:将项目的所有文件添加到仓库中
git add .
如果想添加某个特定到文件,只需要把.换成该特定的文件
第四步:将add的文件commit到仓库
git commit -m "注释语句"
第五步:去github上创建自己的repository。具体做法是:
点击New repository 后取个新名字后,再点击create repository,就会进入一个新的页面,这样就可以拿到创建的新仓库的https 地址(就是新页面的URL)。例如:https://github.com/MelissaHu/Menue
第六步:将本地的仓库关联到github上
git remote add origin https://github.com/MelissaHu/Menue
第七步:上传github之前先pull一下,执行如下命令:
git pull origin master
此目的是看代码是否更新(特别是团队一起工作,或者独立开发使用不同机器的时候),你需要把最新的代码pull到本地库里。
第八步:上传代码到 github的远程仓库,执行如下命令:
git push -u origin master
执行完后,中间可能需要你输入Username和Password,你只需要输入 Github的帐号和密码就Ok了,如果上传成功,你就可以在网页上看到。
最后记录一下 执行过程中学到了知识点:
1.在上传代码的过程中其实涉及到两个repository,一个是remote repository(在远程服务器上),另一个是local repository(在自己的工作区上)。
2.git clone 是会根据你指定的remote server/repository/branch,拷贝一个副本到你本地,在git push之前,你对所有文件的改动都是在你自己本地的local repository来做的,你的改动(local branch) 和remote branch 是独立的,并行的。
3.在clone完成之后,git会自动为你将此远程仓库命名为origin,并下载其中所有的数据,建立一个指向它的master分支的指针,我们用远程仓库名这样的形式来表示远程分支,所以origin/master指向的是一个remote branch,但是你无法在本地更改其数据。
4.git push origin master中origin指定了你要push到哪个remote。
master其实是一个“refspec”,正常的“refspec”的形式为”+<src>:<dst>”,冒号前表示local branch的名字,冒号后表示remote repository下 branch的名字。注意,如果你省略了<dst>,git就认为你想push到remote repository下和local branch相同名字的branch。
如:
$git push origin master:master (在local repository中找到名字为master的branch,使用它去更新remote repository下名字为master的branch,如果remote repository下不存在名字是master的branch,那么新建一个)
$git push origin master (省略了<dst>,等价于“git push origin master:master”)
$git push origin master:refs/for/mybranch (在local repository中找到名字为master的branch,用他去更新remote repository下面名字为mybranch的branch)
$git push origin HEAD:refs/for/mybranch (HEAD指向当前工作的branch,master不一定指向当前工作的branch,所以我觉得用HEAD还比master好些)
$git push origin :mybranch (再origin repository里面查找mybranch,删除它。用一个空的去更新它,就相当于删除了)