首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitHub的作用和一些常用命令梳理,通过学习本文,你将对GitHub有一个基本了解。

GitHub的作用和一些常用命令梳理,通过学习本文,你将对GitHub有一个基本了解。

作者头像
花狗Fdog
发布2020-12-21 14:33:27
1.6K0
发布2020-12-21 14:33:27
举报
文章被收录于专栏:花狗在Qt花狗在Qt花狗在Qt
前言:我是从什么时候开始了解并接触Github,Github是干什么的?

现在我大二,距离我敲下第一行HelloWorld,已经四年有余,快五年了(初三就买了本《C Primer Plus》,钱还是跟我哥借的,但挡不住我现在依旧是个菜鸡)。当时我写的代码放txt里面,是这样的:

在这里插入图片描述
在这里插入图片描述

我打算将它们保存下来,但是我发现根本就不靠谱,我记得很清楚,那个时候我还没有电脑,编程一直是在我二姑家里用电脑学习的,为什么说它不靠谱呢,电脑不是我一个人用,所以我无法掌控,随便一个重装系统,我的产物就灰飞烟灭了。但是很快我找到了新的存储,就是下面qq空间日志里面。

在这里插入图片描述
在这里插入图片描述

再后来,我上高一,家里为了我学习编程为我买了一台笔记本,那个时候花了5000多,那么一厚踏钱就全给人家了,也不知道自己的决定对不对。于是我又将保存代码的阵地从qq空间搬到了本地,就这样陆陆续续持续了三年,而我的CSDN账号也是在19年10月注册的,也就是大学刚开学,经常使用百度解决编程问题,那么csdn肯定是点击率最高的几个网站之一,但就是这样,使用了两年多csdn的我,竟然连个账户都没注册!!!这不可思议,但好在咱进度不错,注册之后就一发不可收拾,疯狂水文,这一次我又将代码搬到了csdn上面,我将代码作为文章保存发布,将代码打包成资源发布,申请不到一年,于今年9月申请了博客专家并成功通过。然后就是我们文章的主角Github,我第一次真正注册并使用是在今年的1月15日,在这之前,我只是有了解过Github,大概知道是用来保存代码的,但当时我并不能感觉到它的强大,虽然所以人都说它强大。

在这里插入图片描述
在这里插入图片描述

记得当时查资料,花了好一段时间,才将GitHub配置好,当我将本地代码送至远程仓库的那一刻时,我忍不住发了一个朋友圈:Github真香!你可能觉得我前面说了一堆废话,但我觉得它是我成长的一个记录,一个过程,就好像我简介里面的那句话: 可执行文件不是你的财富,修改过程中的经验才是。 当你从头走过来,才能发现其中的美好,现阶段当你认为一些东西不重要时,我觉得那就是不重要的,当然学习除外啊(手动狗头)。

Github是一个git的服务器提供商 帮我们共享代码(托管代码) 也是一个开源平台,可以用来下载很多知名开源项目的源代码,在我们修改项目的时候,我们可以创建一个分支,在修改完成后将他合并到主分支,进行版本管理。

类似的版本(代码)托管服务平台: 码云(gitee.com):是开源中国社区团队推出的基于Git的快速的、免费的、稳定的在线代码托管平台,不限制私有库和公有库数量.

Coding(coding.net): 是CODING 旗下的一站式开发平台,提供 git/svn 代码托管,免费支持私有库(限定)和公有库

还有我们不得不提的CSDN新推出的codechina(手动狗头)

上面是一个比较书面的介绍,看看就好了,我用通俗易懂的话告诉你,它可以干什么:


一.注册一个GitHub账户

这个就是Github的首页,在体验之前,还请各位看官下载谷歌浏览器,我之前就是因为使用其他浏览器被坑惨了!

在这里插入图片描述
在这里插入图片描述

我们先来创建一个账户,点击Sign up,进行账户注册。

在这里插入图片描述
在这里插入图片描述

下面的 Email perferences 选项默认勾选,意思是让github偶尔可以通过邮箱给你发送一些更新等等。

在这里插入图片描述
在这里插入图片描述

注册成功后,会进入GitHub的欢迎页面,这时别着急,请留意你的邮箱,github会给你发送一条邮件以此来验证你的电子邮件,并让你使用刚才设置的密码登录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

欢迎页,你可以设置一些属性,例如你是学生还是老师,你有没有编程经验等等,用github干什么,基本上可以忽略,我们继续往下看。


二.创建一个仓库和删除仓库

1.创建仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.删除仓库

点击Settings,然后拉到最下面。

在这里插入图片描述
在这里插入图片描述

输入仓库名确认,即可删除仓库。

在这里插入图片描述
在这里插入图片描述

三.git配置和连接

如何让自己电脑上的代码同步到Github上所创建的仓库中呢?需要下载git,点我下载,选择对应的系统,对应的版本即可。

在这里插入图片描述
在这里插入图片描述

上面是官方的下载地址,下载还是不尽人意的,每秒11kb…给大家找了国内的(点击下载) 然后一路next,等待安装完毕,不出意外鼠标右键会显示 Git GUI HereGit Bash Here GUI是对应的图形版本,Bash是对应的命令行版本。如果是不喜欢命令行的小伙伴可以使用GUI,如果喜欢简洁,神秘感可以使用Bash,狗子我还是推荐命令行的,毕竟可以学到很多东西。

在这里插入图片描述
在这里插入图片描述

下面也会用Bash 帮助大家学习,如果感觉到bash黑框框字小,可以按住ctrl+鼠标滚轮缩放哦。

1.设置用户名和邮箱

git config --global user.name "xxxxxxx" xxxxx代表你的用户名

git config --global user.email "xxxxxxxx" xxxxx代表你的邮箱


2.生成密钥(SSH Key)

ssh-keygen -t rsa -C "xxxxxxx" xxxxx代表你的邮箱

出现上图,就说创建成功啦,再去用户主目录里找到.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露,id_rsa.pub是公钥,可以公开。

在这里插入图片描述
在这里插入图片描述

接下来到GitHub右上角,打开“Account settings”–“SSH Keys”页面,然后点击“Add SSH Key”,填上Title(随意写),在Key文本框里粘贴 id_rsa.pub文件里的全部内容。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.验证是否成功

$ ssh -T git@github.com

如果是初次设置,会出现一个yes/no的选项,直接选择yes即可。

在这里插入图片描述
在这里插入图片描述

如果出现hi xxxx 表明你已经成功。


4.将本地的仓库关联到github上

使用Bash ,选择一个你代码所要存储的位置,找到你刚创建的仓库并点击code,复制下面的SSH,并输入以下命令:

git clone git@github.com:FdogMain/fdogtest.git

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

之后,你所指定的路径下会生成一个和仓库同名的文件夹,里面包含了一个.git文件夹和刚才我们创建的README.md文件。

在这里插入图片描述
在这里插入图片描述

至此,git和GitHub连接成功。


四.命令操作

1.将master改为main

我们写点简单的代码,并放在fdogtest文件夹下,并在bash演示如何上传我们的代码,在这之前有一些更改,有兴趣的话可以了解一下。

从2020年10月1日开始,Github将所有“master分支”一律改名为“main分支”。且最初在 Git 中写下“master”一词的开发者 Petr Baudis 也于 6 月份在社交网站上表明立场称,自己当年不该使用“master”这个可能给别人造成伤害的词语。并表示,他曾多次希望可以将“master”改成“main”(和“upstream”)。不过直到现在,才由 GitHub 开始主导替换工作。 如果是全新建立的话,默认的说明里就已经改为了main,就不用担心了。在此之前建立的还是显示master。 如下图:

在这里插入图片描述
在这里插入图片描述

那么如何将GitHub项目的默认分支从master迁移到main?

使用以下命令将master分支移到main:

git branch -m master main

使用以下命令将新命名的main分支推送到GitHub(假设这是您的远程存储库):

git push origin main

使用以下命令将HEAD指向main: git symbolic-ref refs / remotes / origin / HEAD refs / remotes / origin / main

现在,您需要将“main”设置为GitHub上您项目的默认分支。为此,登录进入到您的GitHub帐户,打开项目的存储库,点击“设置” |>“分支”。在左侧边栏中,点击“分支”,然后从下拉列表中选择“Main”作为默认值。点击“更新”,出现提示后,点击“我了解”。现在,>回到终端,执行以下命令:

git push origin --delete master

这应该就可以了。


2.上传代码

Git本地有四个工作区域,分别是工作区,暂存区,版本区(也叫仓库区),远程仓库。

在这里插入图片描述
在这里插入图片描述

git status 该命令用于查看在你上次提交之后是否有对文件进行再次修改。 你所写的代码都在工作区,也就是文件夹下。

git add -A 提交所有变化 git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件 执行上述命令后,代码进入暂存区。

git commit -m ‘注释’ 将暂存区内容添加到本地仓库(版本区)

git push origin mian 将本地版本库推送到远程服务器

在这里插入图片描述
在这里插入图片描述

代码提交流程:

  • git status 查看工作区代码相对于暂存区的差别
  • git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
  • git commit -m ‘注释’ 将缓存区内容添加到本地仓库
  • git pull origin main先将远程仓库main中的信息同步到本地仓库main中
  • git push origin mian 将本地版本库推送到远程服务器,
  • origin是远程主机,main表示是远程服务器上的main分支和本地分支重名的简写,分支名是可以修改的。

3.下载别人的代码

第一种就是在GitHub官网下载。

在这里插入图片描述
在这里插入图片描述

第二种是利用SHH,在你的Bash里面输入:

git clone git@github.com:FdogMain/FdogMusicPlayer.git 即可下载。友情提示:http比ssh慢一点~~~


4.如何查看历史版本

比如我现在对代码分别进行了两次更新,我要发送至远程仓库,commit 分别是第二次提交和第三次提交,那么我如何查看我的历史版本呢?

git log 查看历史版本

git log -x 查看最新的x个版本信息

git log -x filename 查看某个文件filename最新的x个版本信息(需要进入该文件所在目录)

git log --pretty=oneline 查看历史所有版本信息,只包含版本号和记录描述

在这里插入图片描述
在这里插入图片描述

5.如何滚回历史版本

git reset --hard HEAD^ 回滚到上个版本

git reset --hard HEAD^~2 回滚到前两个版本

git reset --hard xxx(版本号或版本号前几位) 回滚到指定版本号,如果是版本号前几位,git会自动寻找匹配的版本号

git reset --hard xxx(版本号或版本号前几位) filename 回滚某个文件到指定版本号(需要进入该文件所在目录)

在这里插入图片描述
在这里插入图片描述

再次使用git log命令查看时,第三次提交已经没有了。


6.回退到历史版本如何再滚回去

git log -g 查看之前操作的commit信息

在这里插入图片描述
在这里插入图片描述

找到你需要滚回的版本之后,按q退出,然后使用下面的命令滚回到你想滚回的版本。

git reset --hard 46f3ecbdfd18153d3b575c768f84c5d8d16c764c 后面的一串是commitID。


7.如何查看自己的代码量

1.统计个人新增/删除代码量

git log --author="_Your_Name_Here_" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

2.统计所有人新增/删除代码量

git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

3.某时间段代码统计

git log  --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat:  --since ==2019-2-12 --until=2019-2-15 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done

4.统计整个项目代码量

git log --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

五.分支详解

分支的作用对于团队的作用太大了,当多人进行一个项目的开发,开发过程中,不可避免的要进行多人协作,当A,B两人被安排了不同的任务,在不同的分支上进行开发,互相之间不会影响,当A,B两人的任务完成后,测试无误,再合并到主分支中。一般情况下,开发都不会直接在主分支mian(以前是matser)上进行,都会创建一个新的分支,主分支的代码通常都是稳定的,可以直接发布或者被fork。

1.使用新分支

查看当前分支

git branch

创建新分支

git branch XX

切换分支

git checkout XX

在这里插入图片描述
在这里插入图片描述

然后我们在新的分支下更新一下我们的代码,将我们的G1分支代码上传至远程仓库。

在这里插入图片描述
在这里插入图片描述

中间出了一个小插曲,使用git push 命令,提示: fatal: The current branch G1 has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin G1 翻译过来是: 致命:当前分支G1没有上游分支。 若要推送当前分支并将远程设置为上游,请使用 git branch --set-upstream origin G1 出现上述问题,说明远程并没有感知到本地新建的这个分支,如果提示执行 git branch --set-upstream origin G1 命令后本地与远程的关联要是仍旧没有建立成功,则再次执行 git push -u origin G1 即可成功建立本地与远程的关联。

接着我们打开Github,点击分支。

在这里插入图片描述
在这里插入图片描述

我们可以看到刚才我们创建的分支G1,并且我们更新的代码也只在G1,主分支mian是存在的。

在这里插入图片描述
在这里插入图片描述

刚好想到,上面使用过的git log 命令,它可以用来查看当前分支的提交,但是有一个弊端,它只能查看与当前分支有关的提交,如果你现在处于G1,那么你只能查看到在G1分支下的提交,如何查看全部分支下的提交呢?使用git log --graph --all即可。


2.合并新分支

点击New pull request(新的拉取请求)

在这里插入图片描述
在这里插入图片描述

在新的页面提交,显示从G1合并到main,绿色对勾代表可以合并,没有冲突,并且下面会显示分支中添加的内容。

在这里插入图片描述
在这里插入图片描述

在我们的拉取请求中可以看到刚才我们的请求。

在这里插入图片描述
在这里插入图片描述

点击 分支中添加代码

在这里插入图片描述
在这里插入图片描述

翻译过来

在这里插入图片描述
在这里插入图片描述

我们可以查看该分支内容并确定是否同意合并该分支。一种就是直接点击按钮,另一种就是使用命令行。 这是我自己合并自己的代码,如果你想要在别人的项目中提交分支,需要先fork别人的项目,然后会创建一个同名的项目,相当于分支,在这个分支你可以任意修改,然后按上面的方法进行。 大家可以点击点击这里,来体验以上过程,这是我建的一个仓库,也可以直接在搜索栏搜fdogtest进行体验。


六.常用命令

在这里插入图片描述
在这里插入图片描述

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.注册一个GitHub账户
  • 二.创建一个仓库和删除仓库
    • 1.创建仓库
      • 2.删除仓库
      • 三.git配置和连接
        • 1.设置用户名和邮箱
          • 2.生成密钥(SSH Key)
            • 3.验证是否成功
              • 4.将本地的仓库关联到github上
              • 四.命令操作
                • 1.将master改为main
                  • 2.上传代码
                    • 3.下载别人的代码
                      • 4.如何查看历史版本
                        • 5.如何滚回历史版本
                          • 6.回退到历史版本如何再滚回去
                            • 7.如何查看自己的代码量
                            • 五.分支详解
                              • 1.使用新分支
                                • 2.合并新分支
                                • 六.常用命令
                                相关产品与服务
                                代码托管
                                CODING 代码托管(CODING Code Repositories,CODING-CR)是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档