所谓伊人,在水一方

0. 前言参考文章1:GIT和SVN之间的五个基本区别参考文章2:git全面入门教程1. Git常用命令总结(所有命令可以再后文中找到详细内容)

命令 命令意义

git add 文件名–>git commit -m “注释内容” 在git仓库中加入文件

git status 查看仓库当前的状态

cat 文件名 查看文件文本内容

git log 显示对文件内容操作的历史记录

git reset –hard HEAD^ 回退到上一个版本

git reset –hard 4424ad1847b766d2d9 回退相应的版本号

git reflog 显示改变文件内容的文本标识

rm 文件名 删除文件

git remote add origin git@服务器名:用户名/仓库名.git 关联远程仓库

git push origin master 推送本地master分支的最新修改

git remote -v

git clone git@服务器名:用户名/仓库名.git 克隆一个本地库

git checkout -b dev ★创建dev分支,然后切换到dev分支

git branch 查看当前分支

git checkout master 切换分支

git merge dev 合并dev分支

git log –graph –pretty=oneline –abbrev-commit 查看分支合并情况

git push origin dev 推送本地dev分支到remote的origin

git tag v1.0 打一个新标签

git tag 查看所有标签

git config –global color.ui true 让Git显示颜色

git config –global alias.sta status 配置别名,配置status别名为

2. 概述2.1 git版本控制软件

所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,前面我们举的例子只是为了演示,如果要真正使用版本控制系统,就要以纯文本方式编写文件。

2.2 常用版本控制软件

CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。

CVS及SVN都是集中式的版本控制系统,Git是分布式版本控制系统。和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

###2.3 git注意因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。##3. 实践操作###3.1 基础操作**3.1.1 安装git后的配置**git config –global user.name “Your Name”git config –global user.email “email@example.com”

3.1.2 创建git版本库 创建一个版本库非常简单,,首先,选择一个合适的地方,创建一个空目录:

mkdir learngit git init //★★命令把这个目录变成Git可以管理的仓库//上个命令运行完后,当前目录下多了一个.git的目录,如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见

3.1.3 版本库内容操作

在git仓库中加入文件readme.txt实际上就是把文件修改添加到暂存区(概念见后面)

git add readme.txt //★第一步,用命令git add告诉Git,把文件添加到仓库。git commit -m “wrote a readme file” //第二步,用命令git commit告诉Git,把文件提交到仓库。-m后面输入的是本次提交的

说明

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。工作区(Working Directory)就是你在电脑里能看到的目录。但是.git不是工作区是git的版本库,里面存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。实际上就是把暂存区的所有内容提交到当前分支 说明:因为commit可以一次提交很多文件,所以你可以多次add不同的文件。可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改

git add file1.txt git add file2.txt file3.txtgit commit -m “add 3 files.”git status://查看仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。git diff//查看differencecat readme.txt //读取readme.txt文档内容

每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

git log//显示对文件内容操作的历史记录:提交标识、作者、日期、保存时的注释git log –pretty=oneline //不显示作者日期,每次改动显示为一行,且只显示提交标识、保存时的注释

3.1.4 Git回退 在Git中,用HEAD表示当前版本,也就是最新的提交3628164…882e1e0,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset –hard HEAD^//★★回退到上一个版本git log//★★查看日志发现,最后一个版本标识已经没有了///想要再回到回退前的版本git reset –hard 4424ad1847b766d2d9 //★★只要找到相应的版本号,绘图相应版本即可。版本号没必要写全,前几位就可以了,Git会自动去找git reflog//显示改变文件内容的文本标识

第一次修改 -> git add -> 第二次修改 -> git commit:第二次的修改将没有被提交

人生就像是一场旅行,遇到的既有感人的,

所谓伊人,在水一方

相关文章:

你感兴趣的文章:

标签云: