您的当前位置:首页正文

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

2024-01-22 来源:意榕旅游网
github⽹站介绍、并使⽤git命令管理github(详细描述)

本章学习:

1)熟悉github⽹站

2)通过git命令远程管理github,

3)git命令使⽤ssh key密钥⽆需输⼊账号密码

1.⾸先我们来熟悉github⽹站1.1 注册github

登录,然后点击sign up,来注册账户:

注册好了,以及验证邮箱后,然后进⼊github主页:

1.2点击start a project(启动第⼀个项⽬)

1.3创建好后,就会跳转到刚刚创建好的test2仓库(项⽬)主页,如下两张图所⽰

图1:

图2:

先来介绍下上图常⽤的⼏个单词

repostory

  仓库,也就是项⽬的意思,有多个项⽬就代表有多个仓库

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下载地址:

(若慢的话,则进⼊下载)

下载好后,直接默认安装即可,若只喜欢命令⾏模式,则在组件界⾯取消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 test3cd test3

echo \"项⽬描述test3\" >> README.md git init //初始化gitvi 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.git2)进⼊github命令⾏,输⼊

git clone https://github.com/lifeyx/test2.git //下载test2仓库cd test2 //进⼊仓库vi 1.txt //创建1.txtgit 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 bashssh-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.txtgit add 2.txt //添加2.txt

git commit -m \"第⼆天提交⽂件\" //提交到本地仓库git push origin master //⽆需输⼊密码来上传

4.git管理仓库

取消diff中的^M

git config --global core.whitespace cr-at-eol

.gitignore使⽤

touch .gitignore //主⽬录下⽣成.gitignore

然后编辑它:

target //忽略这个target⽬录

angular.json //忽略这个angular.json⽂件log/* //忽略log下的所有⽂件

css/*.css //忽略css⽬录下的.css⽂件

这样就可以忽略⽂件了 打补丁:

git diff > new.patch

如果是当前仓库有了新⽂件,想把新⽂件也打进补丁(新⽂件必须需要git add之后才⾏),则输⼊:

git diff --cached > new.patch

应⽤补丁,进⼊打补丁的位置

git apply 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 reset --hard ID 则回退到指定版本

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

1. 直接commit,再提交⼀次,之后再pull或merge就可以顺利进⾏。2.放弃本地其它修改,直接覆盖,输⼊: git reset --hardgit pull

查看每⼀⾏是哪次提交最后修改的

git blame filename

列出⽂件的所有修改记录

git log -p filename

因篇幅问题不能全部显示,请点此查看更多更全内容