GitHub使用入门及常用命令

注册

  • GitHub注册地址:https://github.com/

链接到本地

  • 首先在本地创建ssh key,进入Git bash,输入如下命令:

$ ssh-keygen -t rsa -C "[email protected]"

  • “ ”中间需要输入自己注册GitHub的邮箱
  • 之后会要求确认路径和输入密码,使用默认的一路回车就行
  • 运行结果如下:


    1.jpg
  • 第一次还需要设置username和email

$ git config --global user.name "your name"

  • email:

$ git config --global user.email "[email protected]"

  • 为了验证是否成功,在git Bash下输入:

$ ssh -T [email protected]

  • 运行结果如下:


    2.png
  • 在C盘用户下的.ssh目录里找到id_rsa和id_rsa.pub这两个文件
  • 将id_rsa.pub里面的内容复制
  • 打开GitHub,在右边找到Settings


    image.png
  • 点击SHH and GPG keys,New SHH keys


    image.png
  • 点击New SHH keys,Title可以随便填,将刚才复制的key粘贴在Key中,点击Add SSH key


    image.png
  • 这时候会跳出界面,确认密码


    image.png
  • 在Git Bash中通过git remote add origin命令,从本地连接到要连接的Git Hub仓

$ git remote add origin https://github.com/...

  • 这个http://....在这个位置


    image.png
  • 运行结果如下:


    image.png
  • 连接上了


    image.png

从本地上传文件到GitHub

  • 首先在本地要上传的仓库(文件夹)下,进入git Bash

  • 要上传如下两个文件:


    image.png
  • 通过git init命令,让新建的文件夹成为git可管理的仓库,输入如下命令:

$ git init

  • 该命令执行成功后,会在目录下生成一个.git的隐藏文件。
  • 通过 git add . 命令,把该目录下的所有文件加入到本地暂存区中,输入如下命令:

$ git add .

  • 格式:git空格add空格.
  • 该命令后面有一个“.”,执行成功后不会有任何提示
  • 运行结果如下:


    3.png
  • 通过命令:git commit -m "文件名",把本地暂存区中的文件提交到本地历史区,输入如下命令:

git commit -m "文件名"

  • 运行结果如下:


    image.png
  • 只有在本地历史区中的内容才能提交到github。执行该命令后,所有的文件都还在本地,不影响GitHub。
  • 因为我在GitHub上新建repository的时候勾选了Initialize this repository with a README(就是创建仓库的时候自动给你创建一个README文件),所以要多输入一个命令:


    image.png

$ git pull --rebase origin master

  • 运行结果如下:


    image.png
  • 最后,如果github仓库的文件夹为空时,输入如下命令:

$ git push -u origin master

  • 远程仓库不为空时,输入如下命令:

$ git push origin master

  • master是分支的名字
  • 运行结果如下:


    image.png
  • 再看自己的GitHub,就可以看到已经上传的文件:


    image.png

从本地远程删除Github中的文件

  • 首先找到GitHub的clone链接,如图:


    image.png
  • 将链接复制,在本地Git Bash中,输入如下命令:

$ git clone https://github.com/***

  • git clone + 复制的链接
  • 将整个仓库clone到本地
  • 通过git init命令,在clone下来的本地仓库里进行初始化

$ git init

  • 通过git rm 命令,删除文件或文件夹
  • 删除文件:

$ git rm "生命游戏.cpp"

  • 删除文件夹:

$ git rm -f "***"

  • 运行结果如下:


    image.png
  • 通过 git commit - m "**" 命令提交上述操作:

$ git commit -m "生命游戏.cpp"

  • 输入一次命令两个删除操作都提交了
  • 运行结果如下:


    image.png
  • 最后推送所有文件到远程仓库

$ git push origin master

  • 运行结果如下:


    image.png
  • 第一次添加远程origin时,需要语句"-u"
  • 这时候再看GitHub,文件已经被删除


    image.png

常用命令

  1. git status
    查看哪些文件处于什么状态。
  2. vim + 文件名
    编辑文件。
  3. git add
    把工作时的所有变化提交到暂存区。
  4. git rm --cached + 文件名
    将远程仓库的文件删除,保留在本地仓库,使其不被版本控制。
  5. 日志
    git log命令:
    image.png

多屏控制显示方式:
空格 : 向下翻页
b : 向上翻页
q : 退出
git log --pretty=oneline命令:

image.png

git --online命令:
image.png

git reflog命令:
image.png

这个命令显示了移动到某个版本需要移动多少步。

6.版本前进和后退:
(1)基于索引值


image.png

图片中的head是指针,head指针当前指向了第一个版本。前面黄色的一列就是每一条记录的索引值,这个索引值并不完整,但是在版本前进和后退的时候,使用这一小段索引值就可以进行版本前进和后台了。
命令:
git reset --hrad +索引值

image.png

当前head指向:
image.png

前进也是一样的~
(2)使用^符号
使用这个方法只能后退。
后退一个版本:
image.png

后退多个:
image.png

也就是一个异或符号后退一个版本。
(3)使用~符号
取代后退多个版本使用多个异或符号的方法:
使用~
image.png

数字代表后退多少个版本。
~符号也是只能后退。
比较一下(1)(2)(3)方法,更推荐方法(1)。

  1. git help + 命令
    查看帮助文档。
  2. git reset命令:
  • --soft参数
    仅仅在本地库移动head指针


    image.png

    也就是本地库看起来往后,看起来好像是暂存区和工作区往前了。


    image.png
  • --mixed参数
    在本地库移动head指针
    重置暂存区


    image.png

    image.png

    这时候显得工作区往前了,实际上是本地库和暂存区往后了。


    image.png
  • --hard参数
    在本地库移动head指针
    重置暂存区
    重置工作区
    hard则是一起动。


    image.png
  1. rm + 文件名命令:
    删除文件
  2. 比较文件
    git diff + 文件名
    如果没有参数是和暂存区进行比较:
    image.png

    和本地库版本进行比较:
    image.png

    和历史版本进行比较:
    image.png

    不带文件名可以比较多个文件:
    image.png
  3. 分支
    查看现在所有的分支:
    git branch -v
    image.png

    创建分支:
    git branch + 分支名
    image.png

    切换分支:
    git checkout + 分支名
    image.png

    合并分支:
    切换到接收修改的分支上(被合并的分支)
    执行git merge + 分支名

示例:
当前分支有两个:一个是hot_fix,另一个是master
要把hot_fix上修改的内容合并到master上
先切换到master分支
然后把hot_fix分支的内容merge到master上


image.png

12.解决分支合并产生的冲突
两个分支在同一个位置都有修改,合并的时候就会产生冲突,这时候就由自动合并转为手动合并:


image.png

可以看到状态发生了改变,但是没有产生额外的文件:


image.png

打开文件发现有了一些新的标记:
image.png

其中HEAD是当前分支的内容,下面是另外一个分支的内容。

手动修改文件,保留需要的部分,然后保存退出。


image.png

执行git add后:
image.png

会提示,还需要git commit
image.png

commit的时候如果带文件名会出错,但是可以写日志信息。

13.在本地保存远程仓地址
复制仓库地址:

image.png

git remote -v:查看地址别名
给地址起一个别名保存起来:
git remote add + 别名 +地址
image.png

  1. 推送
    git push + 别名 + 分支名
    image.png
  2. 克隆
    命令:git clone + 地址
    作用:
    把远程仓库下载到本地
    创建origin远程地址别名
    初始化本地库

16.拉取
pull = fetch + merge
git fetch [远程库地址别名][远程分支名]
git merge[远程库地址别名/远程分支名]
git pull[远程库地址别名][远程分支别名]

你可能感兴趣的:(GitHub使用入门及常用命令)