github
是程序猿的代码托管平台,也是基于git的开源分布式版本控制系统。然而,当你登录github官网时,它并无为你准备一个很好的代码上传的系统,这是由于它是基于git
的分布式版本管理系。那么,如何更快更有效的将本地代码上传到github
呢?首先,咱们须要在本地安装git
,这样才能在本地环境中使用git
命令行,(例如:$ git add index.html
)其次是要链接到你的github
帐户上,这样才能把你的代码文件上传上去,而每一次的更改都会造成一个版本记录,这样对团队协做是颇有帮助的。html
这里主要讲的是mac
系统,windows
也是同样的,只不过mac
是在终端下进行,而windows
是在cmd
下进行的。安装git
,这里推荐安装Apple
公司的Xcode
,Xcode
集成了Git
,最新版的Xcode
已经默认安装好了git
。完成安装以后,就可使用 git
的命令行工具。git
固然,首先你须要注册一个github
帐户。github
在cmd
或者终端下输入如下命令行:shell
git config --global user.name trigkit4 git config --global user.email 345823102@qq.com
固然,这是个人帐户信息,你须要将他们换成你本身的。windows
这是一种传输代码的方法,速度快又安全。SSH
是目前较可靠,专为远程登陆会话和其余网络服务提供安全性的协议。安全
在终端或cmd
输入如下命令行:网络
ssh-keygen -t rsa -C "345823102@qq.com"
固然,邮箱依然换成你注册github
时所用的邮箱。以下图所示:app
路径选择 : 使用该命令以后, 会出现提示选择ssh-key
生成路径, 这里直接点回车默认便可, 生成的ssh-key在
默认路径中;
密码确认 : 这里咱们不使用密码进行登陆, 用密码太麻烦;就一路回车下去ssh
在mac os X
下前往文件夹,/Users/本身电脑用户名/.ssh
。分布式
windows
应该是(C:\Documents and Settings\Administrator\.ssh
(或者 C:\Users\本身电脑用户名\.ssh
)中)。
而后用记事本打开id_rsa.pub
,将里面的所有代码复制到github
的SSH
中。
id_rsa.pub
文件内容 :
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDS0qLtpontavr43AQntX4oBOsg2R3QlWubMYvfgJsIDX6NWd5RaIDLBLEMwIFLDcpvpQKvk5S/bTy4vTuWqeY6fkQ/tZBKksQn1WuYDcSfjLF8BuPMfdkboTh9NaKESKnsiWdranEVbmB5vOAHm8T+HFGdzG7Tz4ygzCnTwvdpBYrd/4jgeazws2d7CuMeuyb+FxdDTQy9YmJJm+82ypfR//bLyzRJo3SYadnPO3VdOAZCO1Isky+p/0nNN/obC4t2y2+oHBAqJV9h37f9S8UShgDmZoVLicRi4poni0i70xj+t/hnOsT8fmEc+vM9USyN+ndawz2oWjikKgln1jOB 345823102@qq.com
登录github
网站,点击Settings
——SSH keys
——点击右侧的Add SSH key
,接下去你懂得。
验证是否配置成功 :
复制以下代码:
ssh -T git@github.com
而后出现以下信息:
Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts. Hi hawx1993! You've successfully authenticated, but GitHub does not provide shell access.
验证时可能让你输入YES
,当出现以上信息时,说明配置成功,能够链接上GitHub
;
第一步,在本地建立一个版本库,代码以下:
$ mkdir test #test是你的文件夹的名字 $ cd test #进入test所在目录 $ pwd #pwd命令用于显示当前目录 /Users/trigkit4/test #这是在个人Mac上的目录
第二步,经过git init
命令把这个目录变成Git
能够管理的仓库:
$ git init
而后会输出如下信息:
Initialized empty Git repository in /Users/trigkit4/banner/.git/
这里的.git
目录是Git
用来跟踪管理版本库的,默认是隐藏的。
第三部,接着,在github
上建立一个你本身的new repository
,而后下一步,
mkdir test cd test git init # initialize your git repository touch README # create a file named README git add README # add README to cache git commit -m 'first commit' # commit your files to local repository
而后咱们将本地的文件传送至github
中,使用以下命令:
git remote add origin https://github.com/yourname/test.git git push -u origin master
git clone git://github.com/yourname/test.git git clone git://github.com/yourname/grit.git mypro#克隆到自定义文件夹
git add *#跟踪新文件 rm *&git rm *#移除文件 git rm -f *#移除文件 git rm --cached *#取消跟踪 git mv file_from file_to#重命名跟踪文件 git log#查看提交记录 git commit#提交更新 git commit -m 'message' git commit -a#跳过使用暂存区域,把全部已经跟踪过的文件暂存起来一并提交 git commit --amend#修改最后一次提交 git reset HEAD *#取消已经暂存的文件 git checkout -- file#取消对文件的修改(从暂存区去除file) git checkout branch|tag|commit -- file_name#从仓库取出file覆盖当前分支 git checkout -- .#从暂存区去除文件覆盖工做区
git branch#列出本地分支 git branch -r#列出远端分支 git branch -a#列出全部分支 git branch -v#查看各个分支最后一个提交对象的信息 git branch --merge#查看已经合并到当前分支的分支 git branch --no-merge#查看为合并到当前分支的分支 git branch test#新建test分支 git checkout test#切换到test分支 git checkout -b test#新建+切换到test分支 git checkout -b test dev#基于dev新建test分支,并切换 git branch -d test#删除test分支 git branch -D test#强制删除test分支 git merge test#将test分支合并到当前分支 git rebase master#将master分之上超前的提交,变基到当前分支
第一个:
error: src refspec master does not match any. error: failed to push some refs to 'https://github.com/yourname/test.git'
输入以下代码:
$ cd myproject $ git init $ git add . $ git commit -m 'initial commit' $ git push origin master
第二个:
git push -u origin master fatal: unable to access 'https://github.com/ZeyuChen/TPlus.git/': SSLRead() return error -9806
这种错误就是https
挂了,解决方案就是在project
目录里面的.git/config
文件里面,修改repo
的url
链接,从https
修改成git协议就能够了。
原本是url = https://github.com/ZeyuChen/TPlus.git
修改成
[remote "origin"] url = ssh://git@github.com/ZeyuChen/TPlus.git fetch = +refs/heads/*:refs/remotes/origin/*
再次push
就ok了。
如今咱们有了本地和远程的版本库,让咱们来试着用用Git的基本命令: git pull:从其余的版本库(既能够是远程的也能够是本地的)将代码更新到本地,例如:'git pull origin master'就是将origin这个版本库的代码更新到本地的master主枝,该功能相似于SVN的update git add:是 将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交以前所须要执行的一步,例如'git add app/model/user.rb'就会增长app/model/user.rb文件到Git的索引中,该功能相似于SVN的add git rm:从当前的工做空间中和索引中删除文件,例如'git rm app/model/user.rb',该功能相似于SVN的rm、del git commit:提交当前工做空间的修改内容,相似于SVN的commit命令,例如'git commit -m story #3, add user model',提交的时候必须用-m来输入一条提交信息,该功能相似于SVN的commit git push:将本地commit的代码更新到远程版本库中,例如'git push origin'就会将本地的代码更新到名为orgin的远程版本库中 git log:查看历史日志,该功能相似于SVN的log git revert:还原一个版本的修改,必须提供一个具体的Git版本号,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本号都是生成的一个哈希值