Git学习之基础<1>
来源:互联网 发布:如何使用淘宝积分 编辑:程序博客网 时间:2024/06/06 04:23
- 集中式版本控制系统:版本库是集中存放在中央服务器的;必须联网才能工作;
- 分布式版本控制系统:根本没有”中央服务器”;每个人的电脑上都是一个完整的版本库;
创建版本库:
什么是版本库呢?版本库⼜又名仓库,英⽂文名repository,你可以简单理解成⼀一个目录,这个 目录⾥面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任 何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
所有的版本控制系统,其实只能跟踪文本文件的改动,⽐比如TXT文 件,⺴⽹网⻚页,所有的程序代码等等,Git也不例外。Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文 件的改动的。
把⼀一个⽂文件放到Git仓库只需要两步。
1.第一步,用命令git add
告诉Git,把文件添加到仓库:
$ git add readMe.txt
- 第二步,用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"[master (root-commit) cb926e7] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt
如果git status
告诉你有⽂文件被修改过,⽤用git diff
可以查看修改内容。
版本回退:
执行 git commit
命令相当于提交一个新的版本;git log
命令以查看历史记录:
$ git logcommit 3628164fb26d48395383f8f31179f24e0882e1e0Author: Michael Liao <askxuefeng@gmail.com>Date: Tue Aug 20 15:11:49 2013 +0800append GPLcommit ea34578d5496d7dd233c827ed32a8cd576c5ee85Author: Michael Liao <askxuefeng@gmail.com>Date: Tue Aug 20 14:53:12 2013 +0800commit cb926e7ea50ad11b8f9e909c05226233bf755030Author: Michael Liao <askxuefeng@gmail.com>Date: Mon Aug 19 17:51:55 2013 +0800 wrote a readme file
git log
命令显⽰从最近到最远的提交日志,我们可以看到3次提交,最近的一次 是“append GPL”,上一次是“add distributed”,最早的一次是“wrote a readme file”。 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline
参数:
$ git log --pretty=oneline3628164fb26d48395383f8f31179f24e0882e1e0 append GPLea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributedcb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file
首先,Git必须知道当前版本是哪个版本,在Git中,⽤用HEAD表⽰示当前版本,上一个版本就是 HEAD^,上上⼀一个版本就是HEAD^^,当然往上100 个版本写100个^⽐比较容易数不过来, 所以写成HEAD~100。
回退版本使用git reset
命令,例如回退到上一个版本:
$ git reset --hard HEAD^HEAD is now at ea34578 add distributed
从新版本回退到旧版本,如果再想从旧版本回退到新版本怎么办呢?只要找到想要恢复的版本的commit id就好了。
$ git reset --hard 3628164HEAD is now at 3628164 append GPL
版本号没必要写全,前几位就可以了,Git会⾃自动去找。当然也不能只写前⼀一两位,因为Git 可能会找到多个版本号,就⽆无法确定是哪⼀一个了。
现在,你回退到了某个版本,关掉了电脑,第⼆二天早上就后悔了,想恢复到新版本怎么办? 找不到新版本的commit id怎么办?Git提供了一个命令git reflog⽤用来记录你的每一次命令:
$ git reflogea34578 HEAD@{0}: reset: moving to HEAD^3628164 HEAD@{1}: commit: append GPLea34578 HEAD@{2}: commit: add distributedcb926e7 HEAD@{3}: commit (initial): wrote a readme file
注意:
- HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使⽤用命 令git reset –hard commit_id。
- 穿梭前,⽤用git log可以查看提交历史,以便确定要回退到哪个版本。
- 要重返未来,⽤用git reflog查看命令历史,以便确定要回到未来的哪个版本。
- Git学习之基础<1>
- Git学习之基础<2>
- Git学习笔记之<Git基础>
- 【git学习二】git基础之git管理本地项目
- 【git学习三】git基础之git管理远程仓库
- 【git学习五】git基础之git分支
- git学习笔记(1)-git基础
- Git学习笔记之二《基础》
- git学习之二:文件控制基础
- Git详解之二 Git基础1
- Git详解之Git基础
- 【git学习四】git基础之git为项目打标签
- Git 学习之路->1
- Git系列学习(1)-基础配置
- git基础学习
- Git基础学习
- Git基础命令学习
- git基础学习
- C++中的 cout 和cin
- 数据结构—Java版链表相交问题的终极解决方案
- 黑马程序员--------Java基础-----数组和类
- hdu Travel
- cmd命令大全
- Git学习之基础<1>
- 刚开始学习测试的小感触
- Mybatis 引用不同映射文件的结果集
- 微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)
- ERROR JDBCExceptionReporter:234 - Table 'xxxxxxxx' doesn't exist hibernate无法自动创建表
- Java 加载配置文件的方式
- 数据库确保远程访问
- 采用广播接收者实现短信窃听器
- 《Google Java编程风格指南》代码注释与编码规范~总结