Git与github基本操作

来源:互联网 发布:深圳发展中公司 知乎 编辑:程序博客网 时间:2024/05/19 14:55

一.  git安装与简单配置

1.      git的安装

首先进入git的官方网站git-scm.com

下载自己电脑对应的git版本,然后点击安装即可


点击上图的红色部分进行下载

安装的时候直接默认即可

找到你的Git安装位置,把快捷方式中的git bash发送到桌面,以后我们使用的就是git bash进行的操作


2.      git的基本配置

打开git bash 为自己配置一个用户名和邮箱

输入命令:git config –global user.name name  (name这里你可以输入任意你喜欢的名字)

然后输入命令:git config –global user.email hello@163.com   (这里的   hello@163.com 是你注册github账号用到的注册邮箱,关于github接下来的文章会提到)

 

为git的命令配置别名

比如我们给checkout取别名co输入命令:git config –global alias.co checkout

比如我们给branch取别名br 输入命令:git cnfig –global alias.br branch

我们在以后的学习中会经常的时候git commit –m “xxx” 其中xxx是你输入的一些备注信息,这里我想把commit –m 取一个别名cm,输入命令:git config –global alias.cm “commit -m”

我们还经常使用的一个命令是git push origin master 那么我想为这个命令取一个别名pom,输入命令:gitconfig –global alias.pom “push origin master”,这样做之后我们每次想输入git pushorigin master 的时候就只需要输入git pom即可,其他的别名的使用类似

3.      获取git仓库

获取git仓库有两种方式分别使用git init 是初始化一个git仓库,另外一个命令是git clone从github上面下载一个git仓库

首先打开git bash 然后使用cd命令进入我们使用的一个目录下面然后输入命令:git init hello  (这里面的hello是我们给这个仓库取得一个名字),这样一个git仓库就建好了

但是这里我们使用比较多的是,把一个本地已有的一个文件夹初始化成git仓库,该如何做呢,首先我们使用cd命令进入到我们我们需要初始化的文件夹,然后直接输入命令:git init即可

4.      git的一些基本命令操作

我这里在一个文件下面新建了一个git仓库,输入命令:git init hello,作为以后的演示仓库

查看git仓库的状态,首先使用cd命令进入一个hello仓库下,然后新建一个文件,输入命令:touch a,这个新建文件的过程我们也可以在Windows下的对应的文件下,即这个仓库下面新建,然后输入git status


这个时候我们发现a是一个红色的标记,上面的英文解释是当前仓库下面有一个文件a,但是该文件没有git追踪

为了是a被记录,我们输入下面的命令:git add a

意思就是让该git仓库记录下这个文件

再次输入git status,就发现刚刚的那个a已经被记录下来了


 

此时我们想删除一个文件又该怎么做呢,这个时候使用的命令:git rm a,此时如果我们输入ls就会发现这个目录下面什么都没有了

这里需要解释的一点是,当我们在一个仓库下面新建一个文件时,这个是我们的工作区,如果我们使用git add a之后,这个a就被添加到我们的暂存区,意思就是它此时还不是git的一个文件,只有当我们使用git commit –m “xxx”之后才把这个文件提交了

二.  Git远程协作,github代码托管

1.      Git秘钥的配置

首先进入到github的官网,用邮箱注册一个账号,接下来要做的就是配置秘钥,进入到git bash 然后输入命令:ssh-keygen –t rsa –C “hello@163.com”(这个里面的邮箱和github上面的注册账号保持一致),然后根据提示回车或者输入密码,这些密码最好和你github的登录密码保持一致。当出现下图的图样时,就表示你的秘钥生成成功。


然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码(下面的灰色字体部分大家不用管)

输入如下命令让git bash 记住刚刚输出的密码:ssh-agent –s

然后输入如下命令:ssh-add ~/.ssh/id_rsa,输入一次密码,然后秘钥就保存了

下面的工作是将生成的密码记录到自己的github账号上面去,我们在本地中找到C盘-用户-主用户文件夹下,找到.ssh文件夹,然后记事本打开一个文件id_rsa.pub,(git bash下,输入命令:vim ~/.ssh/id_rsa.pub),然后复制里面的内容。随后进入到自己的github上面去,添加key,打开github账号后,找到settings选项,然后找到ssh选项,添加key,


把刚刚的内容粘贴到上面即可,然后还要给这个秘钥起一个名字。

这样你的秘钥在本地的配置和github上面的配置就成功了。

2.      Git上传代码到github上面

首先我们需要在github上面创建一个仓库,然后找到该仓库的一个URL,如下图所示,复制该URL然后进入到git bash的终端,将刚刚创建的仓库clone下面,输入下面的命令:git clonehttps://github.com/NeilZhy/SmallProject.git  (这个地址我的地址,大家根据自己的实际地址进行改动)


这样之后那个仓库就clone下来了。

这个时候我们可以在git bash下面进入到这个仓库下面,就会发现在github对应仓库的内容了,如果我们在github上面的仓库里面新建了一个文件,那么在本地的仓库如何获取呢,我们在git bash下的对应的仓库目录下输入git fetch,这样更新的文件就被下载下来了。

如果我们在github上面修改了一个文件,我们在本地同时修改了一个文件,这个时候我们想把本地的修改同步到github上面去,我们使用git add a.txt   (这里假设我在仓库里面新建的一个文件是a.txt),然后输入命令:git commit –m “哈哈”,再输入命令:git push,此时因为本地和github上面均有修改,这样会报错,此时git bash会提示我们使用git pull命令,这个命令的作用是,将github上面的内容下载下来,然后和本地的内容进行合并,此时又会提示让我们手动去修改,因为在本地和github上面的内容不一样。我们使用vim a.txt进行文件的修改(此时的a.txt是github修改和本地修改合并后的一个结果)。然后git add a.txt,然后git commit –m “哈哈”,最后再次使用git push就成功了。

 

总结:当我们把在本地生成秘钥之后,把秘钥在本地和github上面配置好之后,对于初学者来说用的最多的就是git clone xxx  (xxx部分是你的github上面的仓库的URL) ,然后在本地进入到这个仓库之后,把你的文件放在这个仓库下面之后,就可是使用git add a.txt,git commit –m “哈哈”,git pushorigin master 。使用上面的三步就可以是你的代码上传到你的github上面了。

三.  Github Pull Request—如何为一个开源项目做贡献

学习了上面的内容后,我们已经可以给自己的github上面上传代码了,那么我们不由的想问,如何查看一个别人的开源项目,又如何给这个开源项目做贡献呢,如何把自己的代码推送到别人的github账号上面去呢

1.      在github上面fork项目

首先登陆到自己的github账号上面去,然后搜索你想要fork的项目或者用户,这里我搜索的是一个用户,然后点击账户,进入到别人的github下面去


进入到别人的github下面之后,我们找到自己需要的一个仓库,然后点击进入该仓库,点击fork,这个时候,别人的项目就被下载到自己的github账号上面了。


既然这个项目已经被我们拷贝到自己的github下面了,我们想往里面添加内容,这个时候我们同样需要将其clone下来。打开终端,进入到一个你想将这个仓库clone下来的文件夹,然后输入命令:git clone xxx  (这个xxx是你fork下来的仓库的URL)。一般情况下,我们要为一个项目做贡献的时候,我们会选择新建一个功能分支,这里我们首先进入到这个目录下面,然后输入命令:git checkout –b xxx  (xxx是分支名,可以自己取)。我们可以把刚刚下载下来的仓库里面的内容进行一些修改,然后在上传,使用git add a.txt,然后git commit –m “测试”,然后是git push origin xxx (注意这里面的xxx要是你刚刚的分支名)。

然后登陆我们的github进行查看,进入到我们刚刚fork的仓库下面,然后点击下图的红色部分,点击xxx,就可以查看我们刚刚上传的代码了。


接下来我们需要创建一个New pull request,点击上图中第一个红框旁边的New pull request,这个时候我们可以查看和比较我们提交的一些内容和自己分支以及和我们下载的别人的分支的一个比较。然后点击下图的红色部分,因为一般默认的master分支,我们需要改成我们的xxx分支,就可以查看我们的具体上传的内容了。显示的代码部分主要是别人这个仓库的某一分支下的内容,和我们仓库下xxx分支下的一个差异内容。

我们点击Create pull request,给这个pull request添加一些基本的信息。


基本信息填写好之后,我们点击Create pull request,这个贡献就发送成功了。

这个时候我们登录对方的github账号,当然这个对方的账号其实是我的另一个账号,然后系统会提示有人给发送了一些代码,然后我们把这些代码合并,或者给对象提示,让他继续写。

 

下面我们想做一个优化,就是我们本地下载的是我们自己的github账号下的fork别人的仓库,那么我本地需要更新别人的代码,可以直接通过本地的一些指令去拉去别人的代码呢。

这次我们同样还是需要别人的那个仓库的URL,我们打开自己的git bash终端,进入一个自己想要下载的目录下,然后输入命令:git remote add aaa xxx (其中的aaa是我们取得一个名字,可以理解为别人仓库的名字,xxx就是刚刚赋值的URL)这里做的意思实际就是一个让本地的git bash记录一下这个URL。我们首先回到我们的主分支上面去git checkout master下次我们更新别人仓库的代码的时候,直接输入命令:git fetch aaa。这样之后别人的代码就被更新下来了。然后输入git merge aaa/master,这一步的意思是将下载下来的代码和本地的代码合并。

Remote可以理解为一个通讯录,这里补充几个关于remote的几条命令:git remote rename aaa hhh  这里是改名字的意思,gitremote  这里是查看有几个信息。git rmhhh  删除已有的信息。

4 1
原创粉丝点击