1.git:分布式版本管理工具
a)与svn的区别:中心化版本管理工具
b)git文件的三个区域和三种状态:工作区(modified/untracked),暂存区(staged),对象区(本地仓库区commited)
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重新初始化提交
所有评论(0)