GitHub入门

来源:互联网 发布:python包怎么安装 编辑:程序博客网 时间:2024/06/06 01:11

之前只是在github上下载过项目,最初还以为github就是一个开源的网站呢,原来它主要是从事代码托管和版本控制的,现在因为信息安全工程的老师要求代码要提交到github上以供检查,刚好借此机会学习一下,具体如何使用github:

  • 首先要在github上注册一个帐号,最好还要把新手简介给看一下,实现其要求的helloworld输出,对github有一个初步的了解,大概了解一下github的工作流程,还有一些基本概念,比如repository,branch,commit,pull request,merge的概念。
  • 然后我们还要学习一下Git的知识,我们要知道github就是一个用git来做版本控制的项目托管平台,而git就是一个版本控制的工具。

- 下面我们来系统的介绍一个git工具

这里推荐一个网站寥雪峰老师的官方网站
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
我这里就简单的对这个网站的一些可以直接用到的东西拿出来,想要更好理解的,请直接看寥雪峰老师的网站。
-首先要安装Git工具(我这里是linux系统)所以只介绍这一个, 别的操作系统请看寥老师网站。
sudo apt-get install git

  • 创建一个版本库就是仓库(repository)
    mkdir learngit
    cd learngit
    这里也就是创建里一个目录,然后通过下面的命令,将其变成Git可以管理的仓库
    git init
    这时候目录下,会多一个.git的目录,这个目录git用来跟踪管理版本库的,不可以随便改
  • 往版本库中添加文件(添加的文件必须在仓库目录下)
    git add readme.txt(是将文件添加入暂存区)
    注意这里我们默认readme.txt在learngit这个目录或者子目录下
    git commit -m “wrote a readme file”(是将暂存区所在的文件添加入所在的分支)
    用命令git add告诉Git,把文件添加到仓库,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录
  • 我们可以使用git status命令查看结果,git status命令可以让我们时刻掌握仓库当前的状态
  • git diff 文件名 用来查看文件做里哪些修改
  • git log 命令显示从最近到最远的提交日志
  • HEAD表示当前版本(commit id) HEAD^表示上一个版本
  • git reset –hard HEAD^ 表示回退到上一个版本
  • git reset –hard commit id 表示回溯到commitid所在的版本
  • git reflog 用来记录你的每一次命令 //可以用来查询要回溯版本的commit id
  • git checkout – file可以丢弃工作区的修改
    git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
    总之,就是让这个文件回到最近一次git commit或git add时的状态。
  • 删除文件:git rm file 删除掉文件 然后git commit进行提交
    如果是资源管理器误删的话,可以使用git checkout – file 进行文件恢复

本地git仓库与GitHub中仓库进行链接

   1. 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。   2.登陆GitHub,打开“Account settings”,“SSH and GPG Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,即可。为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。3.将本地仓库于github上的仓库进行关联git remote add origin git@github.com:username/test.git遇到的问题:1.fatal: 远程 origin 已经存在。 路径写错,origin已经创建,不能够重复创建,因此现在要  git remote rm origin 删除origin 重新创建。 2.put 项目时error: src refspec master does not match any.错误,发现原因分析引起该错误的原因是,目录中没有文件,空目录是不能提交上去的 。 3.git commit 进行项目提交时遇到错误 unable to auto-detect email address 解决办法: 找到工程目录的.git文件夹,打开之后找到config文件,在最后边加上一句话 [user] email=your email name=your name

把本地库的内容推送到远程库上

git push -u origin master
出现里错误::更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。 提示:再次推送前,先与远程变更合并(如 ‘git pull …’)。
解决办法:
git fetch origin //获取远程更新
git merge origin/master //把更新的内容合并到本地分支
执行第二条语句时,有出线错误,fatal: 拒绝合并无关的历史
解决方法:git pull origin master –allow-unrelated-histories
此时推送终于完成。
以后每次
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
以后只要本地作了提交,就可以通过命令: git push origin master,进行推送即可。

从远程库克隆

  • 命令:git clone git@github.com:username/gitskills.git

分支

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建+切换分支:git checkout -b name

合并某分支到当前分支:git merge name

删除分支:git branch -d name

先介绍到这里,GItHub入门的目的肯定是达到了,以后多多使用,在进行总结。

原创粉丝点击