1.git:分布式版本管理工具

a)与svn的区别:中心化版本管理工具
b)git文件的三个区域和三种状态:工作区(modified/untracked),暂存区(staged),对象区(本地仓库区commited)
微信截图_20200326010944
c)三种状态变化撤消操作:

2.常用操作:

git init 
git config 
git add <file>
git commit 
git push
git pull
git clone
git remote 
git status
git rm
git log 
git diff
git reset
git branch
git checkout
git merge

3.使用本地库初始化常见使用流程

4.使用远程库克隆常见使用流程

5.git init:在当前目录初始化一个本地仓库

```
mkdir git-test  //创建本地目录
cd git-test    
git init 
```

6.git config:添加仓库的配置文件,通常配置操作者名称和邮箱,有三种级别

git config --local user.name 'tang'    //本地项目变量,当前.git/config下的配置,优先级最高
git config --local user.email '123@qq.com'

git config --global    //用户变量,当前登录用户,在~/.gitconfig下,优先级次之
git config --system    //系统变量,当前系统级别,在 /etc/gitconfig下,级别最低

7.git add:添加文件进入缓存区。其中注意的:git add .与git add -A区别;

a)文件差异:"."监控新增和修改的文件,"-A"监控所有文件包括新增,修改,删除的文件。另:"-u"监控修改和删除的文件
b)目录差异:"."监控当前目录及子目录的文件,"-A"不管当前在哪个目录,会监控整个仓库的文件。

8.git commit:把缓存区的文件提交到本地仓库,会生成分布式ID用来区分提交

git commit -m 'log...'
git commit --amend -m '修正log...' //修正上一次提交的日志

9.git status:查看当前仓库的状态,经常用,能及时了解仓库各文件的状态

10.git log:查看commit的日志

a)查看最后的几次:git log -2 //最后两次
b)commit xxxx:这是用分布式ID生成器,用来区分各自的提交

11.git diff:对比更改

a)git diff –name-only:列出所有更改的文件名称
b)git diff file_name:查看文件中更改的内容

12.git branch:查看/创建分支

git branch dev //创建分支
git checkout dev
touch dev.txt
git commit -am 'dev.txt'
git push origin dev  //把本地分支推送到远程仓库中,如果不需要不用这步
git checkout master  //切回master分支 
git branch //查看当前分支
git merge dev   //把dev分支合并到当前所在的master分支
git branch -d dev //如果临时分支不需要,可删除

13.git reset :撤销更改,在add后的撤销操作都用这个来解决,只是选项的不同

a)–mixed默认,用在staged回退且不删除更改
b)–soft,用在commit本地仓库回退时,也不删除更改,并能一步步回退
c)–hard,用在commit本地仓库回退时,直接删除更改,回到旧版本。
d)具体操作请看后面19的撤销操作

14.git checkout:切换分支或者撤消工作区更改

a)切换分支:git checkout dev
b)把修改的文件撤消回修改之前:git checkout index.php

15.git的https和ssh两种通讯方式

16.常见的关键字origin,其实是默认的远程仓库在本地的别名,可以自定义为其他名字。

17.常见关键字HEAD:指向当前工作区版本的指针

a)查看当前所在的版本:git log //默认最上面一个即是当前工作区的版本号
b)所以切换分支非常快,只是修改HEAD指针的指向
b)通过修改指针可以撤消操作:git reset –mixed HEAD,常用于暂存区回退当前版本到工作区

18.忽略文件:

touch .gitignore

19.撤销更改,参考:https://www.jianshu.com/p/c2ec5f06cf1a

a)处于工作区域的更改也就是刚修改的:git checkout <file> //如果用点表示所有,回退到修改前
b)处于暂存区域的也就是add:git reset --mixed HEAD <file> //不填写file,表示所有文件,回退到工作区,这里也说明在暂存区其实已经进入version版本管理了
c)处于本地仓库区域的也就是commit:git reset --soft <commit_id>//退到指定版本,本地的修改及提交日志会不会被删除,如果再要回退,走上面两步;而–hard会删除回到上一版本commit状态会放弃目前本地的所有改变
d)已经处于pushed的:建议使用git reset --hard <commit_id>拿到指定版本代码,删除.git重新初始化提交

Logo

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

更多推荐