github网站介绍、并使用git命令管理github(详细描述)

本章学习:html

  • 1)熟悉github网站
  • 2)经过git命令远程管理github,
  • 3)git命令使用ssh key密钥无需输入帐号密码 

 


 1.首先咱们来熟悉github网站linux

1.1 注册githubgit

登陆http://github.com/,而后点击sign up,来注册帐户:github

 

注册好了,以及验证邮箱后,而后进入github主页:bash

 

1.2点击start a project(启动第一个项目)服务器

 

1.3建立好后,就会跳转到刚刚建立好的test2仓库(项目)主页,以下两张图所示ssh

  • 图1:

 

  • 图2:

 

先来介绍下上图经常使用的几个单词ide

  • repostory

  仓库,也就是项目的意思,有多个项目就表明有多个仓库post

  • star

  收藏项目,收藏的数目越多,说明项目越好学习

  • fork

  将源做者的项目克隆一份到本身的项目中

  • pull request

  拉请求,指如上图的pull request.

  好比:别人经过fork你的项目后,并改进了项目,向你发送了new pull request请求,

  而后你点击pull request按钮,进去后,会出现以下图所示:

       

  再点击Merge pull request,则能够将改进的内容合并到本身的项目里,

  • watch

  关注项目,当你关注的某个仓库更新时,便会通知在你的github主页上

  • lssues

  问题,点击进去就能够看到全部人提出的问题,好比项目有bug等.

  当本身想发表问题时,则点击lssues->new lssues,以下图所示:

        

1.4接下来,咱们点击仓库主页的create new file,来建立一个文件:

 

提交后,便会返回咱们test2仓库主页里:

 

而后点击commits提交按钮,即可以看到刚刚建立main.c的详细信息:

 

PS:当咱们错误删除了一个文件,也能够经过commits按钮,来找到之前删除的文件

1.5 学习如何来更改仓库名称和删除仓库

在仓库主页里点击settings(仓库设置),以下图所示(以test3为例):

 

而后便会跳转到下个界面,就能够更改仓库名称了:

 

继续往下翻,就能够找到删除仓库了:

 

2.使用git管理github

2.1安装git

下载地址:https://www.git-scm.com/download/win

(若慢的话,则进入http://www.wmzhe.com/soft-38801.html下载)

下载好后,直接默认安装便可,若只喜欢命令行模式,则在组件界面取消git gui here便可,以下图所示:

 

安装好后,以下图所示,便可经过linux命令来操做git命令:

 

若在linux上安装git,直接输入:

apt-get install git

(linux下载时,若出现error:403,能够试试vi /etc/resolv.conf,将nameserver地址改成: 114.114.114.114)

 

2.2 配置git

git config --global user.name "lifeyx"               //我的帐号 git config --global user.email 123456@qq.com         //我的邮箱地址

 上面的--global选项,表示之后管理git库时,默认使用上面的用户信息,也能够经过git config -l 来查看配置信息

2.3 git命令介绍

1)介绍以前,首先来说解下git的3个区域以下图所示

 

上图的git仓库,是指本地仓库,不会更新到远程仓库(github网页上的仓库),须要使用git push -u origin master命令才行

2)而后来说解下git经常使用命令

git init

对当前目录进行git管理,该目录便会成为工做区,并在当前目录下会出现个.git隐藏目录.

该.git里会保存git所须要的数据和资源,也就是git仓库和暂存区都会保存在.git里

 

git clone https://github.com/lifeyx/test2.git

克隆复制远程仓库到当前目录,生成test2文件夹,里面会自动建立.git目录,并保存远程仓库信息

该远程仓库地址经过下图的红框里获取:

 

 

git status

查看工做目录下文件的状态,是否add添加到了暂存区,如下图为例:

 

 

 

git add file

将工做区修改的文件添加到暂存区,也可使用git add .  将全部修改的文件进行添加

 

git rm file 

将暂存区的文件删除掉,若工做区文件存在,则须要使用git rm -f file来强制删除掉

 

git commit -m “提交描述”

将暂存区里的文件提交到本地仓库,若暂存区某个文件被删除掉,则会删除仓库里的文件

 

git commit -am “提交描述”

-a:跳过暂存区,git自动将工做区里记录的全部文件添加到暂存区并一块儿提交,从而跳过git add步骤

 

git reset HEAD^1

撤销commit,若是想修改commit时的文件,则使用上面命令撤销

 

git remote add origin https://github.com/lifeyx/test3.git

添加远程仓库(origin),也就是关联本地仓库和github仓库,该远程仓库地址经过下图的红框里获取:

 

 

git push origin master

推送(同步)数据到远程仓库,如果本地上传,必须先使用上个命令来指定远程仓库地址(origin),

如果从远程仓库克隆复制的,则不须要,由于.git里会自动保存远程仓库地址.

2.4  git管理远程仓库-实例1

实例1步骤,经过建立新的远程仓库,而后将本地的数据推送(同步)到远程仓库里

1)首先建立新的远程仓库,以test3为例

 

而后找到远程仓库地址为: https://github.com/lifeyx/test3.git

 

2)进入github命令行,输入

mkdir test3 cd test3 echo "项目描述test3" >> README.md git init //初始化git
 vi 1.txt                       //建立1.txt
 git add README.md //添加README.md 
 git add 1.txt                 //添加1.txt
 git commit -m "第一次提交文件"   //提交到本地仓库
 git remote add origin https://github.com/lifeyx/test3.git  //链接远程仓库地址
 git push origin master       //上传到远程仓库地址,并输入帐号密码

3)查看结果

 

 

2.5 git管理远程仓库-实例2

实例2步骤,就是经过克隆来将远程仓库下载到本地,而后本地修改数据后,并推送(同步)数据到远程仓库

1)经过之前的远程仓库test2为例

以下图所示,能够看到test2仓库更新时间都是处于1天前的:

 

而后经过上图的绿色按钮,找到test2地址为: https://github.com/lifeyx/test2.git

2)进入github命令行,输入

git clone https://github.com/lifeyx/test2.git   //下载test2仓库
 cd test2 //进入仓库
 vi 1.txt                                       //建立1.txt
 git add 1.txt                                  //添加1.txt
 git commit -m "次日提交文件"                   //提交到本地仓库
 git push origin master                     //上传到远程仓库地址,并输入帐号密码

PS:

因为git clone会自动生成.git隐藏目录,因此上面无需git init命令初始化。

并且.git目录里保存了远程仓库地址,因此上面无需git remote命令链接远端。

3)查看结果

 

 

3.每次上传到远程仓库地址时,都要输入帐号密码,是否是很麻烦?

接下来便经过ssh key密钥,使主机与服务器链接链接, 这样就不用每次输入帐号密码

3.1生成ssh key

首先经过ls ~/.ssh命令,查看是否已有ssh key,如有的话,先备份,而后经过rm -rf ~/.ssh来删除

1)输入,建立密钥

ssh-keygen -t rsa -C "123456@qq.com"    // "..."里输入邮箱号

2)而后会提示设置密码,直接连按3个回车,表示密码为空

3)将新生成的key添加到ssh-agent中

eval  "ssh-agent -s" ssh-add ~/.ssh/id_rsa

4)若显示Could not open a connection to your authentication agent.,则继续输入

ssh-agent bash ssh-add ~/.ssh/id_rsa

以下图所示,出现Identity added字段,则表示写入成功,ssh key公钥便保存在id_rsa.pub文件中了:

 

5)而后经过cat ~/.ssh/id_rsa.pub 将ssh key公钥打印出来,并复制

 

3.2将复制的ssh key公钥添加到github中

 

跳转页面后,title标题随意写,将ssh key复制到key框里便可

3.3测试ssh key

输入ssh git@github.com,以下图所示,显示Hi  youname! ,则表示成功了

 

 

3.4成功后,就可使用git协议来下载仓库. 仍是以test2仓库为例

1)首先查看test2仓库的ssh协议的地址(以前是http协议地址)

 

如上图所示,点击红框后, 前缀https://变为了git@

2)而后进入github命令行,来测试

git clone git@github.com:lifeyx/test2.git    //下载test2仓库
 cd test2 //进入仓库
 vi 2.txt                                   //建立2.txt
 git add 2.txt                             //添加2.txt
 git commit -m "次日提交文件"             //提交到本地仓库
 git push origin master //无需输入密码来上传

 

4.git管理仓库

打补丁:

git diff > new.patch

若是是当前仓库有了新文件,想把新文件也打进补丁(新文件必须须要git add以后才行),则输入:

git diff --cached  > new.patch

 

查看状态:

Git status   

 

查看本地修改的哪些东西

git diff Makefile      //以查看上图的Makefile为例

添加暂存区

git add kernel/arch/mips/xburst/soc-x1000/chip-x1000/ap60pro/ap60pro/board.h //添加到暂存区
 git add . //添加全部修改过的文件

 

撤回修改过的文件

git checkout Makefile            //撤回Makefile的修改,若是是以前不存在的文件,则会撤销失败

将暂存区里的文件撤回到 修改文件中

git reset HEAD u-boot/drivers/video/jz_lcd/jz_lcd_v13.c  //将jz_lcd_v13.c从暂存区撤销掉

提交到本地仓库

git commit  -m  "ap60pro update: compatible with old and new screens" //添加到本地仓库(但未上传) -m 后面跟提交的信息描述

撤销commit提交

git reset HEAD^1

同步远程仓库(当别人在远程仓库进行修改后,本地没有更新时)

git pull --rebase origin master

上传远程仓库

git push origin master //上传远程仓库,因为是使用git clone,因此不须要使用git remote链接远程仓库  //若是git push失败,打印: error: failed to push some refs to 'git@192.168.1.8:X1000.git',则使用git pull 同步一次

查看提交远程仓库的历史记录

tig      //以下图所示:

其中” [master] {origin/master} {origin/HEAD} Merge branch 'master' of 192.168.1.8:X1000”,是使用git pull解决分支不一样(Merge branch)时候提交的

 

若是想查看提交的某一次具体信息,也可使用”git show  [hash值]“来查看

git show示例:

1)经过tig,找到近期提交一次的记录hash值:

2)使用git show 17c7a097834439d0e9bf659e5e71ce313832c032,即可以查看具体提交的内容了

 

 git pull若是打印error: You have not concluded your merge (MERGE_HEAD exists).时

1. 直接commit,再提交一次,以后再pull或merge就能够顺利进行。
2.放弃本地其它修改,直接覆盖,输入: 

git reset --hard

git pull

 

查看每一行是哪次提交最后修改的

git blame filename  

 

列出文件的全部修改记录

git log -p filename   

相关文章
相关标签/搜索