您的位置:首页 > 其它

廖雪峰Git教程学习笔记。持续更新中。。。

2016-08-14 22:28 721 查看
首先,附上完整教程链接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

在Windows上安装Git,网上所以下msysgit,安装就行了。

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"


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

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit


如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

第二步,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/


这就把Git仓库建好了。

把一个文件放到Git仓库只需要两步:

第一步,用命令git add告诉Git,把文件添加到仓库:

git add readme.txt


执行上面的命令,没有任何显示,说明添加成功。

第二步,用命令git commit告诉Git,把文件提交到仓库:

git commit -m "wrote a readme file"


修改内容并提交:

首先,用git status 查看仓库当前状态,可以看到是否有文件修改,有哪些文件修改。

然后,用 git diff 命令查看那些地方修改,确定无误,提交代码。

$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.


最后,用 git add 以及 git commit 将代码提交到仓库。

以上是最基本的,下面简单介绍一下 git 使用中重要命令作用及使用方法:

git log 命令 —— 显示从最近到最远的提交日志

$ git log --pretty=oneline
3628164fb26d48395383f8f31179f24e0882e1e0 append GPL
ea34578d5496d7dd233c827ed32a8cd576c5ee85 add distributed
cb926e7ea50ad11b8f9e909c05226233bf755030 wrote a readme file


git reset命令:

git reset --hard HEAD^
HEAD is now at ea34578 add distributed


上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

当然,也可以指定回到未来的某个版本:

git reset --hard 3628164
HEAD is now at 3628164 append GPL


除此之外,Git提供了一个命令git reflog用来记录你的每一次命令:

git reflog




git add 命令就是把代码从本地工作区中同步到暂存区,而

git commit 命令就是把暂存区中的代码同步到当前分支。

master分支是Git自动为我们创建了唯一一个分支,当前分支不一定是 master 分支。

git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别。

命令
git checkout -- readme.txt
意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次 git commit 或g it add 时的状态。

git reset HEAD file
以把暂存区可以把暂存区的修改撤销掉(unstage),重新放回工作删除文件有除文件有:

选择:

一是确实要从版本库中删除该文件,那 git rm 删掉,并且git commit

gitrmtest.txtrm‘test.txt′gitrmtest.txtrm‘test.txt′ git commit -m “remove test.txt”

现在,文件就从版本库中被删除了。

另一种情况是删错了,因为版本库里还有很轻松地,所以可以把误删的文件恢复到最新版本:

$ git checkout – test.txt

git checkout 实是用版本库`其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以都可以“一键还原”。

本地作了提交,就可以通

$ git push origin master


Git用了一段时间后再用SVN的赶脚

换了一家公司,版本管理用的是SVN,才发现Git是简直就是太方便了,现在用SVN感觉特别蹩脚,原理性的概念不多说,网上一堆。对于实际开发来说,SVN基本上是一个功能开一个分支,当然Git也基本如此。但是实际情况是这样的,项目组的SVN服务器不怎么好使,时不时关机什么的,提交一次代码要和领导说一次,也不好意思经常麻烦领导,就一次提交代码实现多个小功能,很多代码,这样一来就很容易乱了,基本上为了清楚一点只能是手动在代码上打标签。如果是GIt的话就不一样了,我本地有一个分支,将代码提交到本地分支,甚至可以创建另外一个bug分支等等,和主分支服务器连不连得上基本没有影响。

当然,Git的好处不只是这一点,这只是项目中碰到的一种情况,其中辛酸苦与泪,经历过就知道了,最好不要经历,哈哈哈哈。。。

—— —— 2018.2.3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git