git的使用教程

2017-07-08  本文已影响0人  鲍先森

一、简介

1.版本控制系统

cvs、svn: 集中式,需要中央服务器支持
git: 分布式,中央服务器辅助交换,不必须。(作者:linus)
所有的版本控制系统只能跟踪文本文件的改动,比如TXT文件,网页,所有程序代码等等,图片,视频无法跟踪其文件变化。
强烈建议所有文本使用标准的UTF-8编码,所有语言使用一种编码,没有冲突,又被所有平台支持。
注意:千万不要使用window自带的记事本编辑任何文件,原因自行百度。

2.安装

download from https://git-scm.com/downloads
全局配置

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


二、创建仓库

使用git合作开发项目,首先得新建一个git的公共仓库即远程仓库。

1.初始化一个空的git仓库

mkdir test
cd test
git init //初始化

tips:
显示Initialized empty Git repository in D:/test/.git/即初始化成功。
add多个文件时,可以多次add,也可以git add file1.txt file2.txt,这样更为方便。
当前目录多了一个.git的,此目录是用来跟踪版本管理库的,注意不要动此文件夹。

2.向仓库提交文件

echo "our first git repository">>file //新建一个供提交的文件
git add file //将文件信息添加到git仓库的索引库中
git commit -m "the first file to commit" //提交到仓库中

tips:
显示[master (root-commit) 0c72641] the first file to commit
7 1 files changed, 1 insertions(+), 0 deletions(-)
8 create mode 100644 file
-m后为输入的是本次提交的说明,最好用意义。

3.一些常用命令

git status命令可以让我们时刻掌握仓库当前的状态。现在我们来修改之前提交的test文件,之后运行git status,查看结果:

 D:\test>git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
      modified:   test.txt
no changes added to commit (use "git add" and/or "git commit -a")

git diff命令可以帮助查看文件距上次修改了什么内容,运行git diff test.txt,查看结果:

  D:\testGit>git diff file
  diff --git a/file b/file
  index 1928b89..1207063 100644
  --- a/file
  +++ b/file
  @@ -1 +1,5 @@
  -"our first git repository"  //删除的内容
  +jfhsfiiisnjchdskgsssssssssssssss  //增加的内容

git log查看提交日志(作者、修改时间、修改内容)。如果嫌显示的日志太多,可以加上参数--pretty oneline
git reset --hard HEAD^^回退到上一次commit的版本,需要注意是 HEAD后面有两个^号,如果要回退到上上一个版本则要使用四个 ^号,这里本人亲测,可能版本不同对应的个数不同,仅供参考!当然如果回到上一个版本有想回到当前版本,同样使用git reset --hard commitId这里commitId为当前版本的id,可以通过git reflog命令查看之前每次提交生成的id。

4.工作区和暂存区的概念

为了便于大家理解,这里引入一张图:

0.jpg

打开本地仓库的根目录即为工作区,而前面提到的.git文件夹为git的版本,版本库最重要的就是称为stage的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。由此不难理解为什么可以通过HEAD指针实现版本之间来回穿梭!
理解上面版本库和工作区的概念,就可以理解下面一些指令,


5.远程仓库

以上已经学了git的基本操作,学会这些远远不够,下面介绍git真正强大的地方。实际工作情况往往是这样,一台电脑充当服务器的角色,其他人都从这个服务器仓库里克隆一份到自己的电脑,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。

添加远程仓库
从远程库克隆

准备好远程仓库后执行:
git clone git@github.com:huangzhongren/test.git
这样可以克隆一个本地库,然后可以修改本地仓库。

6.分支管理

  1. 查看分支:git branch(本地分支)
    • 查看所有分支: git branch -a
    • 查看远程分支: git branch -r
  2. 创建分支:git branch <name>
  3. 切换分支:git checkout <name>
  4. 创建+切换分支:git checkout -b <name>
  5. 合并某分支到当前分支:git merge <name>
  6. 删除分支:git branch -d <name>
    通常我们在合作开发时,往往不是在主分支master上直接操作,master分支一般都是用来发布的稳定的分支,干活都在dev分支上,到最后版本发布时在进行合并!当然你也可以创建其他的分支,例如bug修改分支,feature功能添加分支,也可以创建自己隐藏的分支。
    在测试提出bug修改需求时,而你又不想把手中没有完成时开发提交,这时你就可以使用git stash命令将当前的‘工作现场’隐藏起来,然后切换到需要修改bug的分支例如master分株,创建并切换到一个bug分支issue1,修改之后提交,在切换到master分支,使用git merge -no-ff -m 'merge bug fix' issue1合并bug,此时master的分支就被修改了,如果想回到之前的工作现场,使用git stash pop命令恢复之前的工作现场。
上一篇 下一篇

猜你喜欢

热点阅读