git的基本介绍(windows)
2015-12-24 09:09
316 查看
看廖雪峰老师的网站学习的git,做了一些总结。
1. windows 安装 git
下载安装,从http://msysgit.github.io下载,然后按默认选项安装。
在git安装目录里找到GitBash,设置:
$git config –globaluser.name “your name”
$git config–globla user.email “email@sxamlpe.com”
-global指本机所有git仓库都会使用这个配置,也可以单独指定某个仓库的不同用户名和Email地址。
2. 创建版本库
在windows一个文件件下右键,git init即可将该文件夹设置为本地的git仓库。.git目录就是仓库信息,是git跟踪管理版本库的,尽量不要修改这个目录里面的内容。
添加需要提交的文件:git add XXX.XXX
把添加的文件提交进git仓库:git commit –m “XXX” -m后面是本次提交的注释
也可以多次add 和 commit多个文件:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
3. 状态及修改内容
使用 git status 查看文件的状态,提交到本地仓库,是否已经提交到远程仓库。
使用git diff 可以查看文件被修改的地方。
4. 版本回退
使用git log查看提交日志。
需要友情提示的是,你看到的一大串类似3628164...882e1e0的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。
回退版本:
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
要回退,可以使用gitrest命令:git rest
现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到appendGPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:
$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
5. 工作区与版本库
被git init的文件夹为git仓库,其中里面的子文件夹被称为工作区,.git文件夹为版本库(.git文件夹也许是隐藏的)。
git提交分两步,
第一步是git add,是把文件添加进去,实际上是把文件修改添加到暂存区;
第二步是gitcommit提交更改,实际上是把暂存区的所有内容提交到当前分支。
git status 可以查看文件的提交状态:
如果文件的状态为modified,则该文件是commit后有修改的文件;
如果文件的状态为Untrackedfiles,则该文件是新添加未commit的文件。
git的跟踪方式不是跟踪文件,而是跟踪修改。add进缓存区的文件,commit时才会提交,如果一个文件修改了,或者新增了一个文件,但是没有add进缓存区,commit时是不会提交这样的修改和新增的(新增其实也算是一种修改)。
6. 撤销修改
git checkout – file 可以撤销工作区的修改,此时有两种情况:
一种是文件自修改后还没有放到暂存区,撤销修改后就回到和版本库一样的状态;
一种是文件已经添加到暂存区,现在,撤销修改就回到添加暂存区后的状态。
也就是说,撤回到离文件时间最近的一次commit或add后的状态。
如果要撤销的文件已经被add到了暂存区,还没有commit,则可以使用gitreset HEAD file撤销。
git rest既可以回退版本,也可以把暂存区的修改会退到工作区。当我们用HEAD时,表示会退到最新的版本。
1. windows 安装 git
下载安装,从http://msysgit.github.io下载,然后按默认选项安装。
在git安装目录里找到GitBash,设置:
$git config –globaluser.name “your name”
$git config–globla user.email “email@sxamlpe.com”
-global指本机所有git仓库都会使用这个配置,也可以单独指定某个仓库的不同用户名和Email地址。
2. 创建版本库
在windows一个文件件下右键,git init即可将该文件夹设置为本地的git仓库。.git目录就是仓库信息,是git跟踪管理版本库的,尽量不要修改这个目录里面的内容。
添加需要提交的文件:git add XXX.XXX
把添加的文件提交进git仓库:git commit –m “XXX” -m后面是本次提交的注释
也可以多次add 和 commit多个文件:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
3. 状态及修改内容
使用 git status 查看文件的状态,提交到本地仓库,是否已经提交到远程仓库。
使用git diff 可以查看文件被修改的地方。
4. 版本回退
使用git log查看提交日志。
需要友情提示的是,你看到的一大串类似3628164...882e1e0的是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。
回退版本:
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
要回退,可以使用gitrest命令:git rest
现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到appendGPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:
$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
5. 工作区与版本库
被git init的文件夹为git仓库,其中里面的子文件夹被称为工作区,.git文件夹为版本库(.git文件夹也许是隐藏的)。
git提交分两步,
第一步是git add,是把文件添加进去,实际上是把文件修改添加到暂存区;
第二步是gitcommit提交更改,实际上是把暂存区的所有内容提交到当前分支。
git status 可以查看文件的提交状态:
如果文件的状态为modified,则该文件是commit后有修改的文件;
如果文件的状态为Untrackedfiles,则该文件是新添加未commit的文件。
git的跟踪方式不是跟踪文件,而是跟踪修改。add进缓存区的文件,commit时才会提交,如果一个文件修改了,或者新增了一个文件,但是没有add进缓存区,commit时是不会提交这样的修改和新增的(新增其实也算是一种修改)。
6. 撤销修改
git checkout – file 可以撤销工作区的修改,此时有两种情况:
一种是文件自修改后还没有放到暂存区,撤销修改后就回到和版本库一样的状态;
一种是文件已经添加到暂存区,现在,撤销修改就回到添加暂存区后的状态。
也就是说,撤回到离文件时间最近的一次commit或add后的状态。
如果要撤销的文件已经被add到了暂存区,还没有commit,则可以使用gitreset HEAD file撤销。
git rest既可以回退版本,也可以把暂存区的修改会退到工作区。当我们用HEAD时,表示会退到最新的版本。
相关文章推荐
- SQL Server 2008 清空删除日志文件
- linux下 配置JDK环境变量
- rac 中添加控制文件冗余
- Ubuntu安装SourceInsight说明
- linux的常用易忘命令
- 纯菜鸟逐步认识SVN
- 数据抓取之性能优化第一弹
- VIM常用命令
- 圣斗士星矢 斗士之魂
- Android Zxing 二维码扫码性能优化
- dubbo_负载均衡算法_一致性算法
- Eclipse 中包结构展开有两种方式
- 20151224001 GridView 多按钮的各种使用方法
- Chocolat.js – 响应式的 jQuery Lightbox 插件
- log4J 日志信息log4j.xml配置说明
- 蓝桥杯-翻硬币(贪心)
- 繁琐的MONGODB --是否要放弃MONGODB是个值得深思的问题
- Odoo开发教程(一):使用pycharm搭建开发调试环境
- javaEE之---------过滤敏感词(filter)
- 遍历数据库,删除包含指定列的表的行数据-