一.Git是什么:分布式版本控制系统
- git对比svn;svn是集中式版本控制系统
二.Git工作机制
三.Git常用命令
- 创建仓库
git init - 设置用户签名
git config --global user.name "name"
git config --global user.email "email
2.git add
- 把文件夹下的index.txt文本放在暂存区
$ git add index.txt - 把文件夹下的ceshi文件夹放在暂存区(暂存区不能放空文件夹)
$ git add ceshi/ - 把文件夹下的所有文件添加到暂存区
$ git add .$ git add --all
3.git commit
- 把暂存区的内容放到历史区
$ git commit -m "注释" - 查看当前历史区版本信息
$ git log
4.git reset
- 回退到上一次提交的版本
$ git reset --hard HEAD^ - 回退到上上次提交的版本
$ git reset --hard HEAD~2- 使用
--soft就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。 - 如果使用
--hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。
- 使用
- 查看操作记录
$ git reflog
5.git revert
git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西
四. Git分支
-
查看当前属于哪个分支
$ git branch -a -
创建分支
$ git branch dev -
切换分支
$ git checkout dev -
合并分支
$ git merge dev -
删除本地分支
$git branch -D
五.远程仓库
- 添加远程仓库
git remote add origin your_remote_git_repo - 推送本地的内容到远程仓库
-
将本地 master 分支推送到 origin 远程分支
git push -u origin master
git push origin master
-
第一次使用时,带上 -u 参数,再将本地的 master 分支推送到远程新的 master 分支的同时,还会把本地的 master 分支和远程的 master 分支关联起来
- 从远程仓库获取最新内容
git fetch origin master
git pull origin master-
git fetch和git pull之间的区别: -
git fetch是仅仅获取远程仓库的更新内容,并不会自动做合并。 -
git pull在获取远程仓库的内容后,会自动做合并,可以看成git fetch之后git merge
-
- 查看远程仓库信息
git remote [-v] - 删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支
git push origin :master