赞
踩
版本控制系统(VCS)是将『什么时候、谁、对什么文件做了怎样的修改』这样的信息以版本的形式保存并进行管理的系统。
简单来说,版本控制系统会去记录它所管理的文件的『历史版本』。
版本控制系统 “不是网盘,而胜似网盘” :
Git 并非唯一的版本控制系统,它的前辈是 Subversion 。2014 年 Git 的市场占有率首次超过 Subversion ,成为主流。
Git 相较于 Subversion 的先进之处在于:
Subversion 中的版本信息仅存在于中央仓库,而 Git 中所有的本地库中都有完整的历史版本信息。
Subversion 中的 “分支” 很重,创建分支、删除分支、合并分支等分支相关操作很慢,而 Git 中的分支很轻,分支操作是 Git 的拳头特性
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网
互联网
最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。由于开发机大多数情况都是windows,所以本教程只讲解windows下的git的安装及使用
打开Git命令界面,在使用 git 之前需要使用 config 命令配置下用户名和用户邮箱:
git config --global user.name "<用户名>"
git config --global user.email "<邮箱>"
git config --global push.default simple
git config --global core.editor notepad
在使用 git 之前创建 SSH Key,未来会使用到:
ssh-keygen -t rsa -b 4096 -C "备注"
# 一路回车
cat ~/.ssh/id_rsa.pub
『备注』通常是 2 种风格:
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力。
创建一个版本库非常简单。首先,选择一个合适的地方,创建一个空目录,在该文件夹中执行 git init,就可以让 Git 完成管理前的准备工作。
$ git init
执行成功后,你会看到类似如下信息:
Initialized empty Git repository in ...
Git 会在它管理的文件夹下创建名为 .git 的子文件夹,这个文件夹也就是逻辑上的『本地仓库』。它里面会存放被 Git 所管理的文件的相关信息(例如,历史版本)。
注意:你不要自己去操作 .git 目录,更不要随意将 .git 目录删除。这个目录下的内容是 Git 来使用和操作的。
当你执行完 git init 命令之后,当前目录就位于 Git 的监管范畴内,这个目录中的文件的变动(新创建的、被删除的、内容有更新的)都会被 Git 察觉。
Git 会将文件(文件夹)的状态分成以下 3 类:
状态 | 说明 |
---|---|
tracked被追踪 | tracked 状态意味着 Git 正在关注着这个文件。 你对这个文件的任何改动,都会被 Git 发现。Git 会进一步要求你提交你的改动,或撤销你的改动。 |
ignored被忽略的 | ignored 状态意味着 Git 完全不管这个文件,在 Git 看来它就跟不存在一样。 |
untracked不被追踪的 | untracked 状态是所有文件的初始状态。 逻辑上,它是 tracked 和 ignored 状态『之前』的一种状态,逻辑上,它是一种临时状态:你既没有要求 Git 监管它,又没有要求 Git 忽略它。 对于这个文件,Git 也是一脸懵逼不知道接下来该不该监测文件的变动,正因为如此,untracked 是一种临时状态,不应该长期存在。 |
注意
这里有 2 点需要强调的是:
所有的文件的初始状态都是 untracked 。
在正常情况下,文件不应该长期处于 untracked 状态,应尽快转变为 tracked 或 ignored 。
对于新创建的文件,它们都是处于 untracked 状态的,接下来它们应该尽快通过下述 2 种方法之一切换成 ignored 状态,或 tracked 状态。
untracked
└──> ignored
必须先在 Repo 文件夹中创建一个名为 .gitignore 的文件(必须是这个名字),
然后把要忽略的文件逐一列在这个文件中,一个文件一行,支持通配符。
windows上创建.gitignore文件:
先任意创建一个文件,例如:1.txt
在cmd中输入:ren 1.txt .gitignore
untracked
└──> tracked
可以使用 git add + git commit 命令,将它提交给 Git 监管即可。
git add
git add hello.txt
git commit -m "日志信息" 文件名
git reflog 查看版本信息 git log 查看版本详细信息
git reset --hard 版本号
首先修改hello.txt然后再次提交,我们可以看到有两次提交
现在将版本穿梭到第一次提交也就是my first commit
版本穿梭需要通过id,如果想要穿梭到my first commit,则需要通过id=1cd410d
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。