Git 和 Github 使用教程

来源:互联网 发布:数据库添加语句 编辑:程序博客网 时间:2024/03/29 16:46

目录:

  • Git 是什么?

  • Git 安装

  • 工作区和暂存区的概念

  • 创建版本库, 版本提交, 提交历史, 版本切换, 管理修改

  • GitHub 使用

  • 远程仓库

  • 标签管理


1. Git 是什么?

Git 是目前世界上最先进的分布式版本控制系统。也就是:Git 可以帮我们自动记录每次保持地文件改动, 并且可以与他人合作同时修改,然后再进行合并。
SVN 与 Git 的最主要的区别:

  1. Git 是分布式版本控制系统,版本分布在各地;SVN 是集中式版本控制系统,版本库是集中放在中央服务器的

  2. Git 把内容按元数据方式存储,而SVN是按文件。

  3. Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 GIT 缺少的最大的一个特征。

  4. Git 的内容完整性要优于 SVN:Git 确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

2. Git 安装

Git 各版本下载地址:https://git-scm.com/downloads

Windows 下安装一直 next 到安装,完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具 Git GUI。

Linux 下安装:Debian/Ubuntu :

sudo apt-get install git

CentOS/RedHat 安装:

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install git

启动 Git :创建一个空的文件夹,在空白处右键; 在 Linux 直接可以进行 git 命令操作。

配置用户名称和电子邮件

$ git config --global user.name "Your Name"
$ git config --global user.email email@example.com


3. 工作区、暂存区

工作区、版本库中的暂存区和版本库之间的关系:


工作区:
就是你在电脑里能看到的目录,比如我的 test 文件夹就是一个工作区
暂存区:
工作区有一个隐藏目录 .git,这就是 Git 的版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master分支所代表的目录树。图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个"游标"。

Git 工作流程:

创建仓库;修改文件;添加到暂存区;提交到版本库。

只有先 add 到暂存区, 才能被 commit 到版本库。

4. Git 的基本使用

版本库又名仓库,英文名 repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

仓库操作

   初始化一个仓库              git init
修改的文件添加到缓存      git add file
缓存内容提交到仓库          git commit -m "commit instructions"

在当前目录下新建一个文件 file.txt, 然后提交到版本库。


仓库状态

查看当前仓库的状态          git status
对比工作区和缓存区          git diff
对比工作区与版本库          git diff HEAD -- file

修改 file.txt 的内容但不保存到缓冲区,然后用 git status 查看仓库的状态。

用 git add 保存到缓冲区,,再次查看仓库状态。

用 git commit 把修改提交到版本库, 就会显示已经全部提交。
版本切换

查看提交历史                   git log
查看命令历史                   git reflog      #包括提交, 回退等
回退到前面的版本            git reset HEAD~1     #1表示前一个版本, 2表示前两个版本, 类推
跳转到指定版本                git reset commitid #commitid 是提交版本号

查看提交历史

版本回退与跳转

管理修改

丢弃工作区的修改         git checkout -- file     
丢弃缓冲区的修改         git reset HEAD file      #回到add之前的状态
        删除文件               git rm file

如果修改已经被 add 添加到暂存区, git reset HEAD -- file 可以放弃保存, 回到 add 之前的状态。


5. GitHub 使用

GitHub  提供 Git 仓库托管服务。在GitHub上免费托管的Git仓库,任何人都可以看到(但只有你自己才能改)。由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的,所以设置如下:

  • 创建SSH Key。 在用户主目录下,如果有 .ssh 且目录下有 id_rsa 和 id_rsa.pub 这两个文件,直接跳到下一步。如果没有,打开 Git Bash (或 Shell)创建SSH Key:

$ ssh-keygen -t rsa -C youremail@example.com

你需要把邮件地址换成你自己的邮件地址,然后一路回车。如果创建成功,可以在用户主目录里找到 .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文件的内容。

新建一个仓库


这个仓库就是下面这个样子

接下来我们看看怎么用 Git 来获取 GitHub 仓库的内容, 在本地修改之后把提交推送到 GiuHub 上。

6. Git 连接 GitHub 远程仓库

关联一个远程仓库        git remote add origingit@github.com:xgf13469/MyRepos.git        #ssh 传送
  推送本地仓库             git push origin master
克隆一个远程仓库        git clone https://github.com/xgf13469/MyRepos.git      #https 传送


提交之后, 推送本地仓库

在 GitHub 上面可以看到文件已经被推送。

7. 标签管理

标签是版本库的一个快照:发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。

标签更容易理解,切换版本时使用也更方便。

参考文献:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001373962845513aefd77a99f4145f0a2c7a7ca057e7570000
http://blog.csdn.net/free_wind22/article/details/50967723
http://www.runoob.com/git/git-tutorial.html

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小车登记证丢了怎么办 个体户地税逾期未申报怎么办 公司社保本丢了怎么办 社保红本子掉了怎么办 三证合一后逾期怎么办 个体执照没办国税地税怎么办 丰巢APP注册没工牌号怎么办 农业银行k宝证书过期怎么办 个体户网上申报税没定期怎么办 遇到不给开票的商户怎么办 奶茶店电脑下单怎么办 个体户营业执照注销怎么办清税业务 注册公司没有办公地点怎么办 变更莒业执照法人怎么办手续 欠了几十万贷款怎么办 杭州公司跨区迁址怎么办 公司同市内跨区迁址怎么办 合同写错了字怎么办 农行卡转工行卡怎么办 外地人在北京交社保退休怎么办 身份证掉了单位宿舍怎么办居住证 广州租住单位宿舍怎么办居住证 公司u盾丢了怎么办 北京办了居住卡怎么办延期 商铺被陌生人注册左公司怎么办 营业执照年检登录密码忘了怎么办 欠人家钱没钱还怎么办 欠钱实在没钱还怎么办 党关系丢了10年怎么办? 离婚后生孩子怎么办出生证明 注册公司没有注册地址怎么办 银行流水不够2倍怎么办 个体户小店怎么办五险 姓和名五行相克怎么办? 三星s7刷机后计算器没有了怎么办 线雕鼻子山根鼓怎么办 在日本没有日币怎么办 明知合同回扣特别高怎么办 医院药品断货了怎么办 空腹吃菠萝胃疼怎么办 小孩黑户口怎么办上户