Git 学习指南

Git 学习指南


介绍

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地管理任何或小或大
的项目。git也是当下最流行的分布式版本管理系统,掌握git还是很有必要的,

对于学习git评语:学习半小时,装逼好几年。

其实真正要用好git必定是在团队开发实际遇到问题才能够掌握其技巧。

备注

首先这里要明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比
如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉
你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。

Git 的安装

git的安装非常的简单,windows下安装git完全不用配置,安装过程其甚至已经帮
我们把环境变量都配置好了,安装完之后可以在在命令行窗口打上git --version 查看是否安装好了。
git --version
git --help(任何服务器一定要掌握它们的辅助命令)

成功安装完git之后首先的一步就是要配置用户名和用户邮箱
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.com"

创建版本仓库

使用git来管理项目第一步就是要创建自己想管理的项目仓库,使用git init 命令来初始化git项目。

在指定目录下使用git init 命令即表示将当前目录作为仓库管理,里面会包
含.git目录(里面包含该仓库的一些git版本管理相关信息)。

命令总结

git init(初始化版本仓库命令)
git add file(添加文件命令)
git commit -m "提交注释"(提交文件到当前分支)

//文件提交到git版本仓库通常都需要这两步骤

时光穿梭机

使用git可以任意在各个版本之间快速切换,在学习时光穿梭机之前先要理解几个概念。

暂存区概念

工作区:本机电脑能看到的工作目录
暂存区:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区
远程仓库:远程git服务器上

//文件提交过程也是先在工作区创建,然后add增加到暂存区中,最后commit到
当前分支,如有必要就push到远程仓库中。

暂存区的概念很重要,看到一个比喻比较形象,说暂存区就像购物时,你看中的某个
商品于是你将其添加到购物车,但是如果你没有付款的话,那么这商品最终还是不
属于,即你没有对它的使用管理权。

命令汇总

git status(查看git项目文件状态)
git diff    [fileName] (查看文件修改情况,如果不指定文件名那么就显示所有文件修改情况)
git log     [fileName] (查看文件提交命令)
git reflog  [fileName] (查看文件所有更改命令)
git reset --hard 版本号
git reset --hard HEAD^ (该命令在window下可能会出问题 ^这个符号会当特殊符号处理,可以使用"HEAD^"来处理)

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是改变HEAD指针的指向。

流程

1、新增文件是在工作区的
2、使用git add命令会将文件添加到暂存区
3、使用git commit命令会将文件从暂存区添加到当前分支中


理解Git是如何跟踪修改的,每次修改,如果不add到暂存区,那就不会加入到commit中。

撤销修改

1、当只在是工作区修改还没有提交到暂存区,直接使用如下命令即可
git checkout -- fileName

2、如果工作区已经修改并且已经提交到暂存区,那么需要两个步骤。
git reset HEAD fileName
git checkout -- fileName

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,
分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一
节,不过前提是没有推送到远程库。

删除文件

1、删除版本仓库里的文件
    git rm fileName
2、工作区误删文件,想从版本仓库恢复文件到工作区
    git checkout -- fileName

远程仓库

Git作为分布式版本管理系统,远程仓库是其一个区别于集中式版本管理系统的很大特征,这也是Git的一大优势。

要想使用远程仓库

1、自己搭建服务器(学习就没必要了,公司一般都会搭建)
2、使用Git托管平台(github或gitlab)

github使用:
首先需要配置ssh key 
ssh-keygen -t rsa -C "youremail@example.com"

本地关联远程仓库(麻烦不推荐这样的步骤)

要关联一个远程库,使用命令git remote add origin git@server-
name:path/repo-name.git;关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;此后,每次本地提交后,只要有必要,就可
以使用命令git push origin master推送最新修改;

从远程clone仓库到本地(推荐,简单方便)

git clone repUrl
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

分支管理

可以说分支管理是我个人最喜欢的git功能特性,非常适合迭代和敏捷开发。

Git鼓励大量使用分支:
git branch                          查看分支
git branch <branchName>             创建分支
git checkout <branchName>           切换分支
git checkout -b <branchName>        创建+切换分支
git merge <branchName>              合并某分支到当前分支
//多加注意我之前一直弄错。
git branch -d <branchName>          删除分支


当遇到合并分支冲突时候一定要找到代码开发者来一起解决冲突,然后再提交不要擅自删除人家代码。

分支策略

在我看来企业中应该有这些分支
master:生产稳定版
test:测试环境版本
dev:日常开发分支/bugfix修复分支



查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

Git核心命令

Git核心命令流程图

有两个命令打死也不能忘记,从第一次调用 Git 到每天的日常微调及参考,这个两个命令就是: config 和 help 命令

总结

只要是工具类的产品掌握使用它们肯定是不难的,如果很难的话那么肯定是这个工具类做的还不够好不用怀疑你自己的智商。
更多的时候是在实践中学会和掌握它们。

备注:关于git,推荐先完全使用命令行来工作,等非常熟悉了之后可以借助图形化工具
(通常到此时你已经觉得图形化工具已经无法提高你的效率了,你还是觉得终端效率更高,但是图形化工具能够更方便的管理和查看历史记录).

参考

1、https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5
2、http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
3、https://github.com/
4、https://git-scm.com/
5、http://backlogtool.com/git-guide/cn/

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值