本地仓库
行为 | 命令 | 备注 |
---|---|---|
初始化 | git init | 在本地的当前目录里初始化git仓库 |
拉取远程仓库 | git clone 地址 | 从网络上某个地址拷贝仓库(repository)到本地 |
查看当前状态 | git status | 查看当前仓库的状态 |
查看不同 | git diff | 查看当前状态和最新的commit之间不同的地方 |
git diff 版本号1 版本号2 | 查看两个指定的版本之间不同的地方。这里的版本号指的是commit的hash值 | |
添加文件 | git add -A | 在commit之前要先add |
撤回stage的东西 | git checkout – . | 这里用英文句号表示撤回所有修改 |
提交 | git commit -m “提交信息” | 提交信息最好能体现更改了什么 |
删除未tracked | git clean -xf | 删除当前目录下所有没有track过的文件。不管它是否是.gitignore文件里面指定的文件夹和文件 |
查看提交记录 | git log | 查看当前版本及之前的commit记录 |
git reflog | 查看HEAD的变更记录 | |
版本回退 | git reset –hard 版本号 | 回退到指定版本号的版本,该版本之后的修改都被删除。同时也是通过这个命令回到最新版本。需要reflog配合 |
远程仓库
行为 | 命令 | 备注 |
---|---|---|
设置用户名 | git config –global user.name “你的用户名” | |
设置邮箱 | git config –global user.email “你的邮箱” | |
生成ssh key | ssh-keygen -t rsa -C “你的邮箱” | |
添加远程仓库 | git remote add origin 你复制的地址 | 设置origin |
上传并指定默认 | git push -u origin master | 指定origin为默认主机,以后push默认上传到origin上 |
提交到远程仓库 | git push | 将当前分支增加的commit提交到远程仓库 |
从远程仓库同步 | git pull | 在本地版本低于远程仓库版本的时候,获取远程仓库的commit |
可以用一张图直观地看出以上主要的命令对仓库的影响。
对照查看两张图:
- Workspace:即工作区,逻辑上是本地计算机,还没添加到repository的状态;
- Staging:即版本库中的stage,是暂存区。修改已经添加进repository,但还没有作为commit提交,类似于缓存;
- Local repository:即版本库中master那个地方。到这一步才算是成功生成一个新版本;
- Remote repository:则是远程仓库。用来将本地仓库上传到网络,可以用于备份、共享、合作。