学习了廖雪峰老师的git教程,自己也想根据自己的理解做一些总结,以便初学者快速学习。


git是分布式版本控制系统

一. git安装
1.在Ubuntu,Debian  通过sudo apt-get install git 就可以直接安装
   老一点的Debian和Ubuntu 用sudo apt-get install git-core
2.Mac OS X上安装git
    一是安装homebrew,然后通过homebrew安装Git.
    第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择 菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
3.在Windows上安装git
  msysgit是Windows版的Git,从https://git-for-windows.github.io下载
  安装完成后,在开始菜单里找到“Git”->“Git Bash"

安装完成后需要设置
git config --global user.name "your name"
git config --global user.email "email@example.com"


git config命令的--global参数

二.创建版本库(仓库)

初始化一个git仓库 git init 

三.把文件放到git仓库

git add file
git commit -m ""

四.版本回退

回退到上一个版本:
git reset --hard HEAD^
回退到上上个版本:
git reset --hard HEAD^^
回退到8个版本:
git reset --hard  HEAD~8
回退,穿梭到指定的append GPL的commit id(git log 可以查看提交历史,以便确定要回退到哪个版本)
$ git reset --hard 3628164

五.工作区和暂存区

前面说了把文件放到仓库里面分成2步
运用工作区和暂存区的解释:
git add file       就是将文件从工作区放到暂存区
git commit -m ""      就是将暂存区里的文件放到仓库里



六.文件修改,撤销修改,删除文件


文件修改之后,放到版本库
git add filename
git commit -m ""


撤销修改

1.git checkout -- file 有两个作用
一种是还没有放到暂存区,将工作区的文件回退到版本库的状态
另一种是已经放到暂存区后又做了修改,将工作区的文件回退到暂存区的状态
换言之 git checkout -- file 就是将工作区的修改文件回退

2.如果您已经将文件git add 到暂存区 但还没有commit,用命令git reset HEAD file 将暂存区中的文件撤销掉,重新回到工作区,工作区修改git checkout -- file

3.如果已经提交到版本库,用git reset --hard HEAD^

删除文件

1.从版本库中删除文件
git rm file
git commit -m ""

2.将工作区中的文件删除
git checkout -- file


七.远程仓库

1.添加远程仓库
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

2.推送到master分支
第一次推送:git push -u origin master
以后推送:git push origin master

3.从远程仓库克隆
git clone git@server-name:path/repo-name.git

八.分支管理

1.创建和合并分支

git branch 查看分支
git branch <name> 创建分支
git checkout <name>切换分支
git checkout -b <name> 创建并切换分支
git merge <name>合并分支
git branch -d <name> 删除分支

场景1:开始在master分支,后来需切换到develop分支开发,开发完成后需切换到master分支上,删除develop分支

git checkout -b develop  //创建并切换分支

git add file
git commit -m  //提交修改

git checkout master //切换到master分支

git merge develop //将develop分支合并到master

git branch -d develop //删除develop分支

场景二:在develop分支开发,但是在上个提交点有个bug 急需解决,并且目前开发的东西一时半会解决不了

git stash //将工作区暂存

git checkout -b bug1.0
git add file
git commit -m ""
git checkout develop
git merge bug1.0
git branch -d bug1.0  //bug已经解决,从新回到develop分支的工作区

将stash内容恢复,有两种方法:
1.git stash apply 恢复,但是回复后,stash内容并不删除,你需要用git stash drop
2.git stash pop恢复的同时把stash内容删掉

场景三:多人协作开发

git remote        //查看远程库
git remote -v   //查看远程更详细的信息

推送分支:
git  push origin master
git puah origin develop

抓取分支:
git checkout -b develop origin/develop

如果提交有冲突,你需要将最新的提交从origin/develop抓取下来
git pull
git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置devorigin/dev的链接:
git branch --set-upstream dev origin/develop
git pull



九.自定义git

在安装git的时候,我们已经配置了user.nameuser.email,实际上,Git还有很多可配置项。

git config 是对git 进行配置,而配置都写在配置文件里面

git有三个配置文件:
1.仓库级配置文 件:该文件位于当前仓库下,路径.git/ ,文件名为.gitconfig,这个配置中的设置只对当前所在仓库有效
2. 全局级配置文件:win7下面路径,在用户目录下,以个人的PC机为例,其路径为:C:\Users\zuoyu.ht,文件名为.gitconfig
3. 系统级配置文件:本地git的安装目录下,git安装路径为例:D:\Program Files\Git\etc,文件名为:gitconfig

用git config命令查看配置文件

命令参数 –list, 简写 -l

格式:git config [–local|–global|–system] -l
查看仓库级的config,即.git/.config,命令:git config –local -l
查看全局级的config,即C:\Users\zuoyu.ht\.gitconfig,命令:git config –global -l
查看系统级的config,即D:\Program Files\Git\etc\gitconfig,命令:git config –system -l

使用git config命令编辑配置文件
编辑的英文单词是什么,没错,edit
命令参数 –edit, 简写 -e
格式:git config [–local|–global|–system] -e
查看仓库级的config,即.git/.config,命令:git config –local -e,与–list参数不同的是,git config -e默认是编辑仓库级的配置文件。
查看全局级的config,即C:\Users\zuoyu.ht\.gitconfig,命令:git config –global -e
查看系统级的config,即D:\Program Files\Git\etc\gitconfig,命令:git config –system -e


增加一个配置项
参数 –add
格式: git config [–local|–global|–system] –add section.key value(默认是添加在local配置中)
注意add后面的section,key,value一项都不能少,否则添加失败。比如我们执行:git config –add cat.name tom

获取一个配置项
有时候,我们并不需要查看所有配置的值,而是查看某个配置项的值,怎么做呢?
命令参数 –get
格式:git config [–local|–global|–system] –get section.key(默认是获取local配置中内容)
我们先往global配置中写入一个cat.name=Tomcat的配置项,再使用git config –get cat.name看看得到的是什么


删除一个配置项
命令参数 –unset
格式:git config [–local|–global|–system] –unset section.key
相信有了前两个命令的使用基础,大家举一反三就知道改怎么用了,来,我们试试删除local配置中的cat.name































Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐