Github之BASH使用教程

GitHub简介:

Git 是基于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS,Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的分支、合并、跟踪的能力。

安装 GIT 客户端

GITHUB 官网有上提供 GITHUB for Windows 应用程序,关于 GITHUB for Windows 的使用非常的方便,图形界面同时也提供了 GIT Bash。要求必须是 Windows7 及以上的操作系统,如果您使用的 Windows XP 的系统,就只能安装其他 GIT 客户端了。本人博客资源中也有GITHUB for Windows的软件。

配置 SSH KEYS

要使用SSH协议连接 GITHUB,首先需要生成 SSH KEYS。生成的密钥是两个文件,一个公钥一个私钥。公钥需要提交给GITHUB 官网您的账号中。关于如何生成 SSH Keys,请看如下步骤示例:

检查 SSH keys

$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist

生成 keys

$ ssh-keygen -t rsa -C "[email protected]"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

然后按照提示输入密码,最后出现如下提示则说明生成成功。

Your identification has been saved in /c/Users/you/.ssh/id_rsa.
# Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]

将生成的新秘钥加入 SSH 客户端

# start the ssh-agent in the background
$ ssh-agent -s
# Agent pid 59566
$ ssh-add ~/.ssh/id_rsa

复制公钥

复制公钥可以打开文件复制,也可以使用命令,建议使用命令复制,否则可能出现无法授权的问题。如下命令:

$ clip < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard

将公钥加入到 GITHUB 账号

登录 GITHUB 在 Settings->SSH keys 菜单下添加,将剪切板的内容粘贴到 Key 文本框中,名称可以随意填写。到现在为止,配置工作已经完成。

GIT BASH 命令详解

git init

初始化 GIT,只有初始化了以后才可以使用 GIT 相关命令。在初始化之前,可以先创建一个文件夹。如下示例

$ mkdir lmlphp
$ cd lmlphp
$ git init

git clone

获取远程项目,并下载到本地。远程库的地址在 GITHUB 项目中会有提供。下面是我测试时显示的内容,若执行成功,则将显示同下面类似的内容。

C:\Users\May\Documents\GitHub\test> git clone [email protected]:leiminglin/LMLPHP.g
it
Cloning into ‘LMLPHP‘...
Warning: Permanently added ‘github.com,192.30.252.128‘ (RSA) to the list of know
n hosts.
remote: Counting objects: 210, done.
remote: Total 210 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (210/210), 66.48 KiB | 15.00 KiB/s, done.
Resolving deltas: 100% (102/102), done.
Checking connectivity... done.
C:\Users\May\Documents\GitHub\test>

git branch

git branch 命令用于创建分支,查看分支。查看分支可以使用参数-a,-v,-r等,a代表所有,v代表版本信息,r 代表显示远程分支。下面的例子使用“git branch develop”创建了一个新的分支。

C:\Users\May\Documents\GitHub\test> cd .\LMLPHP
C:\Users\May\Documents\GitHub\test\LMLPHP [master]> git branch -av
* master                 405960a session_write_close() when fatal error occured
  remotes/origin/HEAD    -> origin/master
  remotes/origin/develop 405960a session_write_close() when fatal error occured
  remotes/origin/master  405960a session_write_close() when fatal error occured
C:\Users\May\Documents\GitHub\test\LMLPHP [master]> git branch develop
C:\Users\May\Documents\GitHub\test\LMLPHP [master]> git branch -av
  develop                405960a session_write_close() when fatal error occured
* master                 405960a session_write_close() when fatal error occured
  remotes/origin/HEAD    -> origin/master
  remotes/origin/develop 405960a session_write_close() when fatal error occured
  remotes/origin/master  405960a session_write_close() when fatal error occured
C:\Users\May\Documents\GitHub\test\LMLPHP [master]>

git checkout

git checkout 命令用于创建分支和切换分支。*号代表当前分支,下面通过 checkout 命令切换到 develop 分支。"checkout"在英文中的意思是检出,但是也不难理解,GIT 中分支其实就是一个指向,速度很快;现在我的本地有两个分支,但是只有一份代码,当使用 checkout 命令切换分支并且两个分支的内容不同时,你会发现磁盘上的文件内容即刻发生了变化。checkout 命令还可以用来创建分支并切换到这个分支,使用 checkout -b 参数即可,下面的例子使用此命令创建了
newFeature 分支并切换到了这个分支。

C:\Users\May\Documents\GitHub\test\LMLPHP [master]> git checkout develop
Switched to branch ‘develop‘
C:\Users\May\Documents\GitHub\test\LMLPHP [develop]> git branch -av
* develop                405960a session_write_close() when fatal error occured
  master                 405960a session_write_close() when fatal error occured
  remotes/origin/HEAD    -> origin/master
  remotes/origin/develop 405960a session_write_close() when fatal error occured
  remotes/origin/master  405960a session_write_close() when fatal error occured
  C:\Users\May\Documents\GitHub\test\LMLPHP [develop]> git checkout -b newFeature
Switched to a new branch ‘newFeature‘
C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]> git branch -av
  develop                405960a session_write_close() when fatal error occured
  master                 405960a session_write_close() when fatal error occured
* newFeature             405960a session_write_close() when fatal error occured
  remotes/origin/HEAD    -> origin/master
  remotes/origin/develop 405960a session_write_close() when fatal error occured
  remotes/origin/master  405960a session_write_close() when fatal error occured
C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]>

git status

git status 命令用来查看当前分支状态。如下示例:

C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]> git status
On branch newFeature
nothing to commit, working directory clean

git pull

git pull 命令用来更新代码,该命令相当于 git fetch 和 git merge 的组合。需要注意的是,如果来源是远程分支 develop,则必须这样写“origin develop”,origin 后面有个空格。如果远程分支存在有和当前分支一样的名字,则可以不指定分支。如下示例:

C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]> git pull
Warning: Permanently added ‘github.com,192.30.252.130‘ (RSA) to the list of know
n hosts.
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details

    git pull  

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/ newFeature

C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]> git pull origin develop
Warning: Permanently added ‘github.com,192.30.252.130‘ (RSA) to the list of know
n hosts.
From github.com:leiminglin/LMLPHP
 * branch            develop    -> FETCH_HEAD
Already up-to-date.
C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]>

git add

git add 命令用来增加更新的内容,后面的参数为目录名或者文件名,一般在 git commit 命令之前使用。通过 git diff 可以查看有哪些不同之处,只有被增加的更新才会被提交到版本库。

git commit

git commit 命令用来提交更新。更新时需要提交注释,使用 -m 参数。GITHUB 提供的 GIT 客户端做的非常好,如果您忘记添加注释,它会弹出文本框让你填写。如下示例:

C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]> git commit -m "test"
On branch newFeature
nothing to commit, working directory clean

git push

git push 命令用来推送更新到远程库,此命令一般在 commit 命令之后使用。如果远程没有对应的分支名,则需要通过设置参数“--set-upstream”指定提交到哪个分支。如下示例:

C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]> git push
fatal: The current branch newFeature has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin newFeature

C:\Users\May\Documents\GitHub\test\LMLPHP [newFeature]> git push --set-upstream
origin develop
Warning: Permanently added ‘github.com,192.30.252.130‘ (RSA) to the list of know
n hosts.
Branch develop set up to track remote branch develop from origin.
Everything up-to-date

git revert

撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交

git reset

返回到某个版本,后面可接具体的版本号

git log

在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看。

git diff

git diff:是查看working tree与index file的差别的。

git diff --cached:是查看index file与commit的差别的。

git diff HEAD:是查看workingtree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

GIT BASH 的功能非常强大,使用也非常方便,特别适合大型项目多人同时开发。图形界面工具虽然方便简单,但是效率远远不能跟命令行相比。本文简单的介绍了 GIT BASH 的使用,更多的功能请使用 --help 命令查看,系统会使用浏览器打开 HTML 版本文档,描述的非常详细。

时间: 2024-11-10 16:09:01

Github之BASH使用教程的相关文章

bash入门教程

shell的种类: sh  - Bourne shell csh or tcsh - C shell korn - Korn shell bash - GNU Bourne-Again shell 1.最简单的列子 例子 #!/bin/bash # This is a very simple example echo Hello World echo Hello World 解释: 在 BASH 中 第一行的 "#!" 及后面的 "/bin/bash" 就表明该文件

GitHub For Windows 入门教程

GitHub For Windows 入门教程 GitHub是一款非常好用的代码管理工具,网上也有很多的教程,但是都比较老或者比较繁琐,在这里由于不需要太复杂的功能,给大家简单的介绍下GitHub For Windows客户端的基本用法~ 首先,下载GitHub For Windows客户端 下载地址:https://windows.github.com/ 点击DOWNLOAD 下载安装即可- 安装好后,需要用GITHUB的账户登录,没有的话去注册一个吧~地址:https://github.co

GitHub官方Markdown语法教程

说明:Markdown随着编译器不一样,语法也都不一样,但这份GitHub提供的官方教程,基本学会这份就够了. https://guides.github.com/features/mastering-markdown/ https://guides.github.com/pdfs/markdown-cheatsheet-online.pdf 原文地址:https://www.cnblogs.com/EasonJim/p/8463510.html

GitHub 新手使用详细教程

GitHub 新手使用详细教程 不忘初心,向死而生! 代码改变世界! GitHub,让社会化编程成为现实! 什么是GitHub? GitHub 是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开. Github 由 Chris Wanstrath , PJ Hyett 与Tom Preston-Werner 三位开发者在2008年4月创办.迄今拥有59名全职员工,主要提供基于git的版本托管服务. 注册 GitHub 账号 要想使用 gi

Github 第三方授权登录教程

Github 第三方授权登录教程 ####大致流程图 ####1.首先注册一个github帐号,Applications>Developer applications>Register a new application. ####2.填入参数 Application name--应用名称,随意填 Homepage URL--如上图可以填本地地址进行测试,127.0.0.1:port/xx/xx Application description--应用描述,随意填 Authorization c

GitHub上README.md教程

转自:http://blog.csdn.net/kaitiren/article/details/38513715#t0 最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文件的同学们. README文件后缀名为md.md是markdown的缩写,markdown是一种编辑博客的语言.用惯了可视化的博客编辑器(比如CSDN博客,囧),这种编程式的博客编辑方案着实让人眼前一亮.不过GitHub支持的语法在标准markdown语法的基础上做了修改,称为Githu

[转]GitHub上README.md教程

本文转载于CSDN,原博客地址:http://blog.csdn.net/kaitiren/article/details/38513715 最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文件的同学们. README文件后缀名为md.md是markdown的缩写,markdown是一种编辑博客的语言.用惯了可视化的博客编辑器(比如CSDN博客,囧),这种编程式的博客编辑方案着实让人眼前一亮.不过GitHub支持的语法在标准markdown语法的基础上做了

Mac下GitHub安装及使用教程

首先介绍下Git和Github Centralized Version Control Systems,简称 CVCS 集中化的版本控制系统 这类系统诸如 CVS Subversion以及Perforce. 这类系统都有一个集中管理的服务器,保存所有文件的修改版本,协同工作的同事通过客户端连接到这台服务器,取出最新的文件或者提交更改. Distributed Version Control System,简称 DVCS 分布式版本控制系统 这类系统诸如Git,Mercurial,Bazaar以及

Github 配置SSH keys教程

不知道什么原因,CSDN博客保存的时候会丢失图片和格式,请可以戳这里到我有道云笔记分享 今天特地把Github上的教程Github Generating SSH keys翻译成中文(并非全文翻译),因为自己的水平有限,有错误还请指出. SSH key 是为了确认你是项目的管理者或拥有者,然后可以不使用密码使用git.当然使用github的时候要用SSH链接,用https的话就无所谓了.  https可以clone任何人的project,但SSH只能clone属于你的,你必须是这个项目的拥有者.