Git简单使用教程

Git被评价为全世界最先进的分布式版本控制系统,没有之一的那种。

为什么这么说呢?看一下他官网下面那两排图标自然就懂了。

本文主要以Windows平台来说明怎么使用Git。

安装Git

安装很简单,一路默认就好了,直接到在开始菜单里面看到Git Bash就说明安装成功了。给两个下载地址:官方下载国内镜像

配置Git

1、配置默认路径

查看Git Bash的属性,“目标”删掉“--cd-to-home”,“起始位置”填入默认路径

2、配置用户名和邮箱地址

git config --global user.name "yourName"    --global参数表示全局
git config --global user.email "yourEmail@example.com"

基础概念

Git和其他版本控制系统有些不同,他有一个暂存区的概念,这里我们先约定几个名词:

1、工作区(Working Directory):就是指你的工程目录

2、版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

3、暂存区(Stage):存储在版本库内,工作区提交文件给暂存区,再从暂存区提交给版本库。

4、远程库(Remote):一个存在远程机器上的版本库。目前比较好的远程库有Github、码云 

基础指令

如果不是多人协作项目,只是个人的版本控制,看完这一段的内容就够了

在当前目录创建版本库

git init

将文件提交到暂存区

git add <fileName>

将暂存区内容提交到版本库

git commit -m "version information"    -m参数表示版本信息

查看版本状态

git status

查看版本库历史记录

git log --pretty=oneline    --pretty=oneline参数表示一行显示

选择版本,在Git里面,每一个版本都有一个唯一编号(commitId)

git reset --hard HEAD^    退回到上一个版本
git reset --hard HEAD^^    退回到上两个版本
git reset --hard HEAD^10    退回到上十个版本
git reset --hard <commitId>    跳转到任意版本

查看操作历史记录

git reflog

比较文件的差异

git diff HEAD -- <fileName>

放弃工作区的修改

git checkout -- <fileName>

从版本库删除文件

git rm <fileName>

远程仓库

Git的远程库的连接方式分为两种,一种是HTTP协议模式,这种模式每次连接都需要帐号和密码验证,并不是官方推荐的方式。另一种是GIT协议模式,这种模式需要将SSH公钥提交到远程库。

下文以Github的GIT协议为例,说明如何连接远程库。

1、本地生成SSH KEY

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

2、把生成出来的id_rsa.pub公钥填到Github的官网

    注1:SSH可以添加多个,如果你有多台电脑的话
    注2:Github的项目是公开的,如果要私有的话需要交费,国内的码云和Github类似,提供5人以下的私有项目。

将本地库推送到远程库

git remote add origin git@github.com:user/repo.git    origin为远程库默认名
git push -u origin master    -u参数首次推送使用,可以将本地库和远程库关联起来    master为本地库默认名

从远程库克隆到本地库

git clone git@github.com:user/repo.git

从远程库获取最新版本到本地库

git pull

查看远程库信息

git remote -v

删除远程库信息

git remote rm origin

分支

分支是Git的难点,也是Git比其他版本控制强大的原因。

查看分支

git branch

创建分支

git branch <name>

切换分支

git checkout <name>

创建并切换分支

git checkout -b <name>

合并某分支到当前分支

git merge <name>

删除分支

git branch -d <name>

查看分支合并图

git log --graph

保存工作现场

git stash

回到工作现场

git stash pop

放弃一个没有被合并过的分支

git branch -D <name>    大写D是强行删除的意思

推送分支

git push origin <name>

创建远程分支

git checkout -b <name> origin/<name>

建立本地分支和远程分支的关系

git branch --set-upstream <name> origin/<name>

分支提交历史整理成直线

git rebase

标签

给版本一个明确标签,有助于后期维护。

创建标签

git tag <tagName>

创建历史标签

git tag <tagName> <commitId>

查看标签信息

git show <tagname>

删除标签

git tag -d <tagName>

推送标签

git push origin <tagName>

推送所有标签

git push origin --tags

删除远程标签

git push origin :refs/tags/<tagName>

其他

1、忽略特殊文件.gitignore

我们不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

git add -f <fileName>    强制添加文件到Git,不管是不是被忽略
git check-ignore -v <fileName>    检测文件是否被忽略

2、配置别名

git config --global alias.st status

3、查看配置信息

cat .git/config    版本库
cat .gitconfig    全局
posted @ 2018-09-18 11:34  TanSea  阅读(277)  评论(0编辑  收藏  举报