git的基本介绍(windows)

来源:互联网 发布:网络机顶盒怎么装 编辑:程序博客网 时间:2024/05/15 11:10

看廖雪峰老师的网站学习的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时,表示会退到最新的版本。

0 0
原创粉丝点击