github.com基本功能
仓库Repository
收藏Star
收藏他人的项目方便下次查看克隆Fork
克隆他人的仓库到自己的账户(独立于原来的那个)(分支)发起请求Pull Request
将自己的分支‘推荐’给他人,他人可以选择合并关注Watch
事务卡片Issue
提出bug,与其他用户交流Github主页、仓库主页与个人主页
Git基本命令
配置/初始化
git软件安装好后,需要使用命令行进行简单的配置(设置用户明和邮箱)
然后在你项目的文件夹内建立git仓库
git config --global user.name "username"
git config --global user.email user@example.com
//初始化全局用户名和邮箱
git config --list
//查看你的配置信息
git init
//在当前目录下建立git仓库
一些基本命令
这是使用git的一些基本命令。能够完成将编辑修改过的文件提交到本地仓库这种最基本的功能。
git add <file>
//将新文件添加到暂存区/将文件的修改提交到暂存区
git rm filename
//删除暂存区的文件
git checkout -- <file>
//撤销
/*将工作区的某文件还原到与暂存区(如果没有提交到暂存区,则是仓库的最新版本)一样的状态,即使是工作区理的这个文件被删除了也是可以的*/
git commit -m "提交描述"
//将所有暂存区的修改提交到仓库
git status
//查看状态
还有一些实用命令
git reset HEAD <file>
//这是将暂存区的修改撤销,清空暂存区
/*这里HEAD表示的是"最新版本"(其实是当前分支的当前版本)*/
git diff HEAD -- <file>
//查看工作区的文件与最新版本的区别
Git远程仓库
git远程仓库连接
远程仓库和本地仓库主要可以使用ssh和http两种协议来连接。
ssh
- ssh下远程仓库的地址
格式为git@server-name:path/repo-name.git
例如git@github.com:zhaochao1234/mygit.git
- 建立ssh连接需要首先在用户主目录里生成ssh密钥
首先在主目录下用以下命令生成密钥:
ssh-keygen -t rsa -C "youremail@example.com"
运行这个命令需要openSSH等程序的支持,通常的计算机默认都安装了;
引号里时填写你的邮箱地址。
然后目录里会生成一个名为.ssh
的文件夹,文件夹里有id_rsa
,id_rsa.pub
两个文件,它们分别是私钥和公钥,公钥是你可以让别人知道的。
接着我们要把公钥的文本添加到你的GitHub账户里去,具体是在账户的settings对应的位置添加。
一个GitHub账号可以添加多个公钥,以便于用户能在多台主机上工作。 - 在ssh协议下,在第一次push或者clone时,会收到一个警告,我们选择"Yes",那么github服务器的公钥就会被本机加入信任列表,在以后的clone或push中,便不会受到警告了。
http
- http下远程仓库的地址在github中就是仓库页面的地址例如
https://github.com/zhaochao1234/mygit.git
。 - 通常对于初学者来说,使用http协议要更加简单一些,因为它是不需要像配置但是每次push时都要输入用户名密码。
推送到远程仓库
远程库的名字通常设置为origin
以下所有的命令的<url>选项,既可使用ssh协议的地址,又可使用http协议的地址,客户端将自动以对应的方式与远程仓库连接。
git remote add origin <url>
//添加远程仓库(将其名字设置为origin)
git push origin master
//将本地仓库的当前版本推送到远程origin仓库的master分支
添加远程仓库后,如果使用一次git push -u origin master
命令进行推送,这个-u
是将本地与远程的master分支自动关联了,此后每次提交只要git push
就可以了。
如果是使用ssh协议,如果不是在生成密钥是设置了密码,那么在push时是不用输入密码的;但如果是使用HTTP协议,那么在每次push时都要输入用户名和密码。
克隆远程仓库
git clone <url>
//克隆远程仓库到本地仓库
如果使用ssh协议,由于需要密钥,所以是用户本人才能够成功;但如果时使用http协议,你可以从github上克隆任意的public项目到本地。
克隆远程仓库到本地
利用GitHub建立主页
能够利用GitHub搭建网页,你可以通过建立一个suername.github.io仓库用来搭建一个个人主页,还能为你的一个任意的仓库搭建一个项目站点。
搭建个人主页
创建
username.github.io
仓库
这个仓库的名称只能是"用户名.github.io
"的格式仓库目录里必须有index.html文件,否则这个主页是无法打开的
访问主页的地址即是仓库的名称,即
username.github.io
搭建项目主页
可以在项目的setting设置页面中快速搭建一个项目主页
也可以通过README.md文件实现快速搭建
这个主页表现为这个项目的一个名为gh-pages的分支
主页的访问地址是
username.github.io/repositoryname
git版本回退
事实上,我们每次commit一次,都是创建了一个新的版本。git将各个版本穿成一条时间线。git的基本功能之一就是能实现版本回退。
需要补充的几点:
-
HEAD
是一个指针,指向的版本表示当前版本(当前分支的),如果还没有回退过的的话,就是指的最新版本。HEAD^
是指当前版本的上一个版本,HEAD^^
上两个版本,HEAD~100
上100个版本; - 每个版本都有一串
commit id
,是计算机自动生成的; - 这里说的回退具体是指叫将
HEAD
指向指定版本,并将指定版本的内容替换到工作区,并清空暂存区;
git log
//查看个版本的信息
git reset --hard <版本>
//回退到指定版本
/*<版本>既可以用commit id(版本号)[的前几位]来表示,也可以用HEAD,HEAD^,HEAD^^,HEAD~100等关键字来表示*/
git reflog
//查看所有的历史命令
/*这对切换到未来(HEAD之后的版本)的版本有很大帮助,因为git log是无法显示未来版本的,而且形如"HEAD^"式的表示法也只能表示之前的版本*/