Git入门及常见命令

Git起步

Git是什么?

我们都知道,Git是目前世界上最先进的分布式版本控制系统(没有之一)。

简单来说,Git就是让我们编写代码的时候可以存储各个版本代码,并且也可以回退到任何历史版本的一种控制系统。

Git有哪些功能?

1.备份文件

类似于用优盘网盘备份电影。我们的代码也需要备份。修改完了以后提交给版本库进行保管,哪一天代码没了也可以找回来。 
比如我们打游戏就要存档,万一挂了还可以从上个存档的地方重玩。 

2.记录历史

Git相较于网盘,更加有利于保存代码。网盘只能保留最新的状态,文件覆盖了,历史文件的就没了。而git在保存覆盖的时候,可以清楚的记录你是哪一天哪个时候哪个用户保存的代码,增加了什么,删除了什么,备注信息等等都有记录。

3.回到过去

当然,Git记录了历史日志,当然是为了可以回到过去。你每一次的保存都有日志记录,你可以回到历史的任何版本。

4.团队协作

Git可以创建很多分支,支持多个人一起协作,并且对冲突处理的也很好。

5.开源协作

在GitHub上可以看到很多别人的项目,也可以发表自己的项目,增强交流沟通。

安装Git

1.在window上安装Git

有高人已经把模拟环境和Git都打包好了,名叫 msysgit ,只需要下载一个单独的exe安装程序,其他什么也不用装,绝对好用。 
msysgit 是Windows版的Git,从 http://git-scm.com/ 下载,然后按默认选项安装即可。 
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

2.在linux上安装Git

首先,你可以试着输入git,看看系统有没有安装**Git**: 

$ git 
 program 'git' is currently not installed. You can install it by typing: 
sudo apt-get install git 

像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装**Git**。

如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入: 

 ./config   
make   
sudo make install   

这几个命令安装就好了。 

3.在Mac OS X上安装Git

如果你正在使用Mac做开发,有两种安装Git的方法。 
  第一种是安装 homebrew ,然后通过homebrew安装Git。先打开网站 http://brew.sh/。 拷贝对应脚本到终端下安装homebrew.然后在终端执行 brew install git命令。
  第二种方法更简单,也是推荐的方法,就是直接从 AppStore 安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

设置配置

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

git config --global user.name "zfpx"     
git config --global user.email "zfpx@126.com"   

因为Git是分布式版本控制系统,所以每个机器都必须自报家门:你的名字和Email地址。 
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。在这里,我们配置的环境中Git已安装好,我们课程提供也是在Linux系统中命令进行操作 。

 开始Git

对于git的工作流以及基本分区,这里简单介绍一下有那几个常用区

以上的专有名词在这里解释一下:

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

1.创建工作区

在自己的目标文件空白处右键,选择Git Bush(安装git-scm后会有此选项),打开命令行。

使用管理员身份打开系统cmd命令行也可,按住shift键的同时,点击右键在此处打开命令行窗口即可进入当前文件的命令行。

$ git init     //创建一个工作区

这时候当前目录下就有一个.git方法,这个目录是Git来跟踪管理版本库的,最好别改动。如果没有看到.git目录,那可能因为这个目录默认是隐藏的,设置一下即可。

2.添加文件

$ echo 111 > index.html            //清空index.html并且写入111
$ echo 222 >> index.html          //往index.html文件中添加222

添加了内容后看可以通过下面代码查看文件内容

$ cat index.html            //查看index文件内容

同时也可以通过以下代码查看当前文件的状态,git 的 status 方法可以常用,了解当前的状态。

$ git status                   //查看当前状态 
$ git status -s                //查看当前状态(第一列绿色字母含义是:暂存区中和版本库中的文件的改动;第二列红色字母含义是:工作区和暂存区的文件改动)

用git的add命令可以把文件添加到仓库中暂存区

$ git add index.html  //把index.html文件添加到暂存区 
$ git add .       //将工作区所有文件提交到暂存区

当然,提交到暂存区的文件也可以撤销

$ git rm --cached index.html        //将刚提交到暂存区的东西撤销

3.提交文件

Git可以通过git commit来讲代码提交到仓库

$ git commit -m "初始化index.html"    //将暂存区提交到历史区(引号中的是上传描述)
$ git commit -am "添加了 xxx"         //直接将暂存区提交到历史区,不需要add步骤

上传后的上传日志可以通过git log查看

$ git log                    //查看历史区的上传日志
$ git log --oneline             //查看历史区的上传日志(单行显示)
$ git log --graph               //查看历史区的上传日志(图形化显示)
$ git reflog                    //查看所有的提交

当然,也可以查看当前每个区的区别

$ git diff                    //查看工作区与暂存区的区别
$ git diff head                  //查看工作区与历史区的区别
$ git diff --cached              //查看历史区与暂存区的区别

4.版本回退与删除文件

git可以通过 reset 来回退到历史版本

$ git reset --hard e8007ab        //回退到编号为e8007ab的历史版本
$ git reset --hard HEAD^          //回退到上一个版本

以上代码中,e8007ab是历史版本的编号的前7位。

git可以通过 rm 来删除对应文件

$ rm index.html                //删除文件
$ git checkout -- index.html   //删除文件后(误删),尚未上传暂存区,可以这样撤销
$ git rm index.html            //删除文件后(确定删除),并上传暂存区

到这里,你基本已经可以掌握了 git 的基本用法了,可以使用 git 来存储各个版本的代码,也可以回退到各个历史版本。但是,开发避免不了团队协作,git 在团队协作中也起了很大一部分作用。

Git团队协作/分支

1.Git的分支系统

git 的分支系统非常的好用,有了 git 的分支,你可以在你们团队的项目创建一个你自己的分支,然后在这里编写你的代码,等到开发结束后再合并到原来的分支上,不会影响别人,也可以方便自己。是团队开发的重要保证。

下面附上关于 branch 的主要代码:

# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 列出所有本地分支和远程分支
$ git branch -a

# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]

# 新建一个分支,并切换到该分支
$ git checkout -b [branch]

# 新建一个分支,指向指定commit
$ git branch [branch] [commit]

# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]

# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

 

对于 git 的学习我暂时只到这里,日后还需要学习,感觉各路大神指点指点。

参考网站:   Git 系列教程   http://bbs.duchengjiu.top/read.php?tid=42&fid=5

      阮一峰的Git常用清单   http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

posted @ 2017-11-13 15:49  董肥肥  阅读(1979)  评论(0编辑  收藏  举报